Побоювання перед працездатністю або поривом не є вагомою причиною відмовитися від C ++. Кожна мова має свої потенційні підводні камені та компроміси - хороші програмісти дізнаються про це, і де потрібно, розробити стратегію подолання, погані програмісти зіпсуються та звинуватитимуть мову.
Інтерпретований Python багато в чому вважається "повільною" мовою, але для нетривіальних завдань кваліфікований програміст Python може легко створити код, який виконується швидше, ніж у недосвідченого розробника C.
У моїй індустрії, відеоіграх, ми пишемо високоефективний код на C ++, уникаючи таких речей, як RTTI, винятки або віртуальні функції у внутрішніх циклах. Вони можуть бути надзвичайно корисними, але можуть мати проблеми з роботою або напругою, яких бажано уникати. Якби ми пішли на крок далі і повністю перейшли на C, ми б отримали мало і втратимо найкорисніші конструкції C ++.
Найбільшою практичною причиною переваги C є те, що підтримка є більш поширеною, ніж C ++. Є багато платформ, особливо вбудованих, які навіть не мають компіляторів C ++.
Існує також питання сумісності для постачальників. Хоча C має стабільний і чітко визначений ABI (бінарний інтерфейс додатків), C ++ не робить. ABI в C ++ є більш складним через такі речі, як vtables та constructurs / destructors, тому реалізується по-різному у кожного постачальника, і навіть версій інструментарію постачальників.
У реальному розумінні це означає, що ви не можете взяти бібліотеку, створену одним компілятором, і зв’язати її з кодом або бібліотекою з іншого, що створює кошмар для розповсюджених проектів або провайдерів програмного забезпечення бінарних бібліотек.