Pourquoi la plupart des programmes Linux sont-ils écrits en C? Pourquoi ne sont-ils pas écrits avec C ++, qui est plus récent?
Pourquoi la plupart des programmes Linux sont-ils écrits en C? Pourquoi ne sont-ils pas écrits avec C ++, qui est plus récent?
Réponses:
Il y a eu de nombreuses discussions à ce sujet. Surtout, la raison est d'ordre philosophique. C a été inventé comme un langage simple pour le développement de systèmes (pas tellement le développement d'applications). Il existe de nombreux arguments pour utiliser C ++, mais il y en a à peu près autant pour ne pas utiliser C ++ et s'en tenir à C.
En fin de compte, c'est un problème historique. La plupart des trucs d'application sont écrits en C, car la plupart des trucs du noyau sont écrits en C. Et comme à l'époque la plupart des trucs étaient écrits en C, les gens ont tendance à utiliser les langues d'origine.
À ce stade, quelqu'un pourrait demander "OK, alors pourquoi le noyau est-il écrit en C et non porté en C ++?" . Cela a été discuté sur kerneltrap il y a quelque temps. Une belle explication qui peut être citée à partir de ce fil est une réponse de yoshi314 (citant directement):
c'est parce que presque toutes les applications c ++ ont besoin d'une bibliothèque standard c ++ distincte pour fonctionner. ils devraient donc le porter sur le noyau, et s'attendre à une surcharge supplémentaire partout.
c ++ est un langage plus complexe et cela signifie que le compilateur crée du code plus complexe à partir de celui-ci. à cause de cela, trouver qu'un problème provient d'un bogue du compilateur plutôt que d'une erreur de code est plus facile en c.
le langage c est également plus dépouillé, et il est plus facile de suivre sa représentation d'assembly, qui est souvent facile à prévoir.
c ++ est plus polyvalent, mais c est plus adapté aux trucs de bas niveau ou intégrés.
D'un autre côté, «la plupart des programmes Linux» est assez trompeur. Jetez un œil aux applications graphiques. Python gagne de plus en plus de terrain, en particulier dans les environnements GUI sous Linux. À propos de la même chose qui se produit avec Windows et .NET.
Après avoir lu l'e-mail suivant de Linus Torvalds, le créateur de linux. Je ne peux m'empêcher de penser que la réponse ci-dessus est incorrecte. Il semble penser que les programmeurs C ++ ne sont pas de bons programmeurs systèmes . Et que les fonctionnalités supplémentaires en C ++ causent souvent plus de problèmes à long terme par rapport aux avantages qu'elles apportent à court terme. Bien que l'on puisse être en désaccord avec lui, il est difficile de surestimer l'influence qu'il a eu sur le système d'exploitation Linux.
C++
est plus récent queC
, mais c'est un peu hors de propos. Ce sont des langues différentes.