Спеціалісти відділу інженерії програмного забезпечення активно використовують С++ через те, що мова має ряд безсумнівних переваг:
Проте не варто забувати, що чим більше сили, тим більше відповідальності. У порівнянні з мовами програмування високого рівня, на С++ простіше помилитися. Причому так, що компілятор не підкаже, і ви відразу не зрозумієте, в чому справа.
Отже, C++ підходить для проектів, в яких є важливою продуктивність коду.
Програмісти виділяють три напрямки, в яких найкраще розкриваються переваги мови:
Оптимізація. Перепишіть будь-який код з мови більш високого рівня на C++, щоб програма працювала швидше. Так часто роблять у сфері глибокого навчання та інших алгоритмічних областях, де важлива швидкість. Але це не завжди йде на користь: іноді швидка розробка важливіша за продуктивність, або вигода від перенесення коду на C++ є зовсім незначною.
Гра. В інді-іграх зазвичай використовуються високорівневі мови та ігрові движки (C # і Unity, Java і jMonkeyEngine), але на тому ж Unreal Engine можна створювати ігри й на C++. Безліч ігор AAA-класу пишуться на C++ через те, що топові ігри треба добре оптимізувати, а ця мова є досить гнучкою для цього. Але разом з тим зручно писати в ООП-стилі, не спускаючись до дуже низького рівня. Ще однією перевагою, яку відзначають випускники АПЕПС, є використання власного движка для повного контролю будь-яких ігрових механік. Гра має добре працювати на всіх підтримуваних пристроях. Код пишеться так, щоб оптимізувати компіляцію в бінарні файли на різних платформах.
GPU-обчислення. Nvidia CUDA та OpenCL — дві платформи, що дозволяють запускати код C++ на графічному процесорі. GPU містять сотні невеликих обчислювальних ядер, які можуть одночасно виконувати прості математичні операції. Написавши код для GPU, можна отримати дуже високу продуктивність та швидкість. C++ відмінно підходить для цього.
Серед можливих застосувань можна відзначити:
Варто відзначити, що C++ походить від Сі, з того часу обидві мови змінилися і стали абсолютно різними. Ви можете писати на C++ без ООП і використовувати ООП в Сі. ООП — це скоріше підхід або методологія, а не конкретна функціональність. Але в C++ однозначно більше можливостей для реалізації принципів ООП.
Драгуцан Андрій, кафедра АПЕПС, ТЕФ.