GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi la plupart des programmes Linux sont-ils écrits en C ?

Il y a eu de nombreuses discussions à ce sujet. Principalement, la raison est 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 une question historique. La plupart des éléments d'application sont écrits en C, car la plupart des éléments du noyau sont écrits en C. Et comme à l'époque, la plupart des éléments étaient écrits en C, les gens ont tendance à utiliser les langages d'origine.

À ce stade, quelqu'un pourrait demander "OK, alors pourquoi est-ce que le noyau é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 un 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.

De plus, le langage C est plus simple et il est plus facile de suivre sa représentation d'assemblage, qui est souvent facile à prédire.

c++ est plus polyvalent, mais c est plus adapté aux éléments de bas niveau ou intégrés.

D'autre part, "la plupart des programmes Linux" est assez trompeur. Découvrez les applications graphiques. Python gagne de plus en plus de terrain, en particulier dans les environnements GUI sous Linux. À peu près la même chose qui se passe avec Windows et .NET.


Après avoir lu l'e-mail suivant de Linus Torvalds, le créateur de linux. Je ne peux pas 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 systèmes programmeurs. Et que les fonctionnalités supplémentaires de 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 d'exagérer l'influence qu'il a eue sur le système d'exploitation Linux.

http://harmful.cat-v.org/software/c++/linus


Linux
  1. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

  2. Pourquoi avons-nous besoin du fichier .so.1 sous Linux ?

  3. Comment puis-je voir quelles sont mes commandes linux les plus utilisées ?

  4. Pourquoi y a-t-il autant de /dev/tty sous Linux ?

  5. Pourquoi les bibliothèques partagées sous Linux sont-elles exécutables ?

Les meilleures distributions Linux qui conviennent le mieux aux débutants

Les 10 meilleures raisons d'utiliser Linux

Pourquoi les nerds utilisent Linux

Comment compiler et exécuter des programmes C, C++ sous Linux

Comment exécuter des programmes C/C++ sous Linux [Terminal &Eclipse]

Linux – Pourquoi le vrai et le faux sont-ils si grands ?