Ha habido muchas discusiones sobre esto. Principalmente, la razón es filosófica. C se inventó como un lenguaje simple para el desarrollo de sistemas (no tanto para el desarrollo de aplicaciones). Hay muchos argumentos para usar C++, pero hay tantos para no usando C++ y apegándose a C.
Al final, es un tema histórico. La mayoría de las cosas de las aplicaciones están escritas en C, porque la mayoría de las cosas del Kernel están escritas en C. Y dado que en aquel entonces la mayoría de las cosas estaban escritas en C, la gente tiende a usar los lenguajes originales.
En este punto, alguien podría preguntar "Está bien, entonces ¿por qué el kernel escrito en C y no portado a C++?" . Esto se ha discutido en kerneltrap hace algún tiempo. Una buena explicación que se puede citar de este hilo es una respuesta de yoshi314 (citando directamente):
eso se debe a que casi todas las aplicaciones de C++ necesitan una biblioteca estándar de C++ independiente para funcionar. por lo que tendrían que portarlo al kernel y esperar una sobrecarga adicional en todas partes.
c ++ es un lenguaje más complejo y eso significa que el compilador crea un código más complejo a partir de él. por eso, encontrar que un problema proviene de un error del compilador, en lugar de un error de código, es más fácil en c.
además, el lenguaje c es más básico y es más fácil seguir su representación de ensamblaje, que a menudo es fácil de predecir.
c++ es más versátil, pero c es más adecuado para cosas de bajo nivel o incrustadas.
Por otro lado, "la mayoría de los programas de Linux" es bastante engañoso. Echa un vistazo a las aplicaciones gráficas. Python está ganando cada vez más terreno, especialmente en entornos GUI en Linux. Más o menos lo mismo que sucede con Windows y .NET.
Después de leer el siguiente correo electrónico de Linus Torvalds, el creador de Linux. No puedo evitar pensar que la respuesta anterior es incorrecta. Parece pensar que los programadores de C++ no son buenos sistemas programadores Y que las características adicionales en C++ a menudo causan más problemas a largo plazo en comparación con los beneficios que brindan a corto plazo. Si bien uno puede no estar de acuerdo con él, es difícil exagerar la influencia que ha tenido en el sistema operativo Linux.
http://dañino.cat-v.org/software/c++/linus