El miedo al rendimiento o la hinchazón no son buenas razones para renunciar a C ++. Cada idioma tiene sus posibles trampas y desventajas: los buenos programadores aprenden sobre esto y, cuando sea necesario, desarrollan estrategias de afrontamiento, los programadores pobres caerán y culparán al lenguaje.
Python interpretado se considera en muchos sentidos como un lenguaje "lento", pero para tareas no triviales, un programador experto de Python puede producir fácilmente código que se ejecute más rápido que el de un desarrollador de C sin experiencia.
En mi industria, los videojuegos, escribimos código de alto rendimiento en C ++ evitando cosas como RTTI, excepciones o funciones virtuales en bucles internos. Estos pueden ser extremadamente útiles pero tienen problemas de rendimiento o de hinchazón que es deseable evitar. Si tuviéramos que ir un paso más allá y cambiar completamente a C, ganaríamos poco y perderíamos las construcciones más útiles de C ++.
La razón práctica más importante para preferir C es que el soporte está más extendido que C ++. Hay muchas plataformas, particularmente las integradas, que ni siquiera tienen compiladores de C ++.
También está la cuestión de la compatibilidad para los vendedores. Mientras que C tiene un ABI (Interfaz binaria de aplicación) estable y bien definido, C ++ no. El ABI en C ++ es más complicado debido a cosas como vtables y constructores / destructores, por lo que se implementa de manera diferente con cada proveedor e incluso con versiones de una cadena de herramientas de proveedores.
En términos reales, esto significa que no puede tomar una biblioteca generada por un compilador y vincularla con código o una biblioteca de otro, lo que crea una pesadilla para proyectos distribuidos o proveedores de middleware de bibliotecas binarias.