Leistungsängste oder Aufblähungen sind kein guter Grund, auf C ++ zu verzichten. Jede Sprache hat ihre potenziellen Fallstricke und Kompromisse - gute Programmierer lernen diese kennen und entwickeln erforderlichenfalls Bewältigungsstrategien, schlechte Programmierer werden schlecht und geben der Sprache die Schuld.
Interpretiertes Python wird in vielerlei Hinsicht als "langsame" Sprache angesehen, aber für nicht triviale Aufgaben kann ein erfahrener Python-Programmierer leicht Code erstellen, der schneller ausgeführt wird als der eines unerfahrenen C-Entwicklers.
In meiner Branche, Videospielen, schreiben wir Hochleistungscode in C ++, indem wir Dinge wie RTTI, Ausnahmen oder virtuelle Funktionen in inneren Schleifen vermeiden. Diese können äußerst nützlich sein, weisen jedoch Leistungs- oder Aufblähungsprobleme auf, die vermieden werden sollten. Wenn wir noch einen Schritt weiter gehen und ganz auf C umsteigen würden, würden wir wenig gewinnen und die nützlichsten Konstrukte von C ++ verlieren.
Der größte praktische Grund für die Bevorzugung von C ist, dass die Unterstützung weiter verbreitet ist als C ++. Es gibt viele Plattformen, insbesondere eingebettete, die nicht einmal über C ++ - Compiler verfügen.
Es gibt auch die Frage der Kompatibilität für Anbieter. Während C über eine stabile und gut definierte ABI (Application Binary Interface) verfügt, ist dies in C ++ nicht der Fall. Das ABI in C ++ ist aufgrund von vtables und Konstruktoren / Destruktoren komplizierter und wird daher bei jedem Anbieter und sogar bei Versionen einer Toolchain eines Anbieters unterschiedlich implementiert.
In Wirklichkeit bedeutet dies, dass Sie eine von einem Compiler generierte Bibliothek nicht mit Code oder einer Bibliothek eines anderen verknüpfen können, was einen Albtraum für verteilte Projekte oder Middleware-Anbieter von Binärbibliotheken darstellt.