IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Linus Torvalds : "C++ est un langage horrible"
En justifiant le choix du langage C pour le système de gestion de version Git

Le , par Idelways

88PARTAGES

8  14 
Cet article n'est pas proprement né d'une nouveauté, mais fait écho à une tempête que soulève la découverte d'un email vieux de quatre ans.

Des « cyberspéléologues » ont sorti des méandres sournois des archives du Net un email fort polémique. Son auteur n'est autre que Linus Torvalds, le célèbre créateur du noyau Linux, tout aussi connu parmi les développeurs pour avoir initié le projet Git, le système de gestion de version (très) à la mode.

En réponse à un contributeur qui s'interrogeait en 2007 sur les raisons qui ont conduit au choix du C (plutôt que du C++), Torvalds s'en est donner à coeur joie pour avouer son désamour au C++ qu'il qualifie d’« horrible langage ».

Il est vrai que son interlocuteur n'a pas dû tourner deux fois les doigts sur son clavier avant de qualifier l'argument de portabilité d'un délicat « bullshit » (foutaise), mais l'avis de Torvalds est tellement tranché — sur le langage, mais surtout sur ses développeurs — qu'il semblait attendre une telle opportunité pour l'étaler.

« C++ est un langage horrible. Ce qui le rend d'autant plus horrible est le fait que beaucoup de programmeurs “substandard” l'utilisent, au point qu'il est nettement plus facile de générer de la merde totale et absolue avec », sic.

Le choix du langage de Git, avoue le développeur, n'est là que pour « garder les programmeurs C++ loin, c’est en soi, un énorme argument en faveur de l'utilisation du C », surenchérit-il.

Après un autre paragraphe tout aussi scatologique à l'encontre des développeurs C++, Torvalds passe aux arguments techniques. « C++ entraîne à des choix de conception très très mauvais. Vous commencez invariablement par utiliser les fonctionnalités “sympas” de la librairie standard du langage comme STL, Boost et autres conneries totales et absolues, ça peut aider votre programme, mais ça engendre : »

Il énumère, d'abord : « la souffrance infinie quand ça ne marche pas ». Sur ce point, il remet en cause la stabilité et la portabilité de la bibliothèque standard et « surtout de Boost ». Puis de s'attaquer à « l'abstraction inefficace des modèles de programmations, où, deux ans plus tard, vous vous rendez compte que certaines abstractions n'étaient pas très efficaces, alors que maintenant, tout votre code dépend de ces beaux modèles objets, et vous ne pouvez corriger tout ça sans réécrire votre application ».

À se demander si Torvalds n'a pas plutôt une dent contre toute la programmation orientée objet pour les usages de niveau système. « La seule manière de faire du C++ bien, efficace, de niveau système et portable revient à vous limitez à tous les trucs que sont à la base disponible en C », déclare-t-il avec force de conviction.

Torvalds explique par la suite et en substance que l'efficacité est le premier objectif à atteindre sur des projets tels que Git, et en prime « emmerder les personnes incapables de le comprendre », et de comprendre « les problèmes de bas niveau ».

Peu accueillant sur son projet, il invite les développeurs désireux d'écrire un CVS en C++ d'aller voir du côté de Monotone, un projet qui s'enorgueillirait d'après lui de décisions de conceptions « reluisantes pour les gars des sciences informatiques », mais qui conduisent finalement à « une pagaille horrible et non-maintenable ».

Nourrie par une forte intensité dans le verbe et d'une perceptible volonté de blesser, une véritable polémique est née entre les partisans du langage. La rivalité entre les deux camps n'est pas nouvelle, mais l'intervention aussi virulente d'un personnage emblématique ne contribue certainement pas à faire avancer sereinement le débat.

Il n'empêche que des arguments techniques sont là, et nous vous invitons à y répondre objectivement.

Source : l'email original de Torvalds

Voir aussi sur C++ :

Cours et tutoriels C++.
La FAQ C++.
Le Forum C++.

Et vous ?

Que pensez-vous de la position de Linux Torvalds et de ses arguments ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de zeyr2mejetrem
Membre chevronné https://www.developpez.com
Le 08/11/2011 à 17:42
Hormis le débat sempiternel C/C++ Procédural/Objet Sel/Poivre Fromage/Dessert,
Je trouve que le fait de ressortir un vieil email privé moisi datant d'il y a 4 ans et sorti de son contexte pour faire de la news, c'est vraiment limite.

Linus Thorvalds n'est qu'un homme comme les autres.

Qui nous dit qu'il n'en était pas à son 250ème email sur le thème "Pourquoi Git c'est du C? le C ça pue !!" et qu'il n'a pas pété un câble en renvoyant le bonhomme dans ses 22 en lui disant "Foutez moi la paix avec votre langage de merde, vous voulez que je vous dise, Git est en C pour pas voir vos tronches dans le projet car vous me les brisez menu !!"

Cela n'est jamais arrivé à personne de sortir un mail salé avec une argumentation un peu bancale tout simplement parce que le gars de l'autre côté vous casse les pieds depuis longtemps et que vous avez les nerfs ?

La seule différence, c'est que parce qu'il s'appelle Linus Thorvald on publie son mail 4 ans plus tard.

Ca c'est de la news de paparazzi et je dois avouer que je suis assez déçu de voir ça sur ce site que j'estime.
35  5 
Avatar de zeyr2mejetrem
Membre chevronné https://www.developpez.com
Le 08/11/2011 à 18:10
Citation Envoyé par Idelways Voir le message
Bonjour @zeyr2mejetrem

L'URL de l'email est citée dans la source, tu peux vérifier la fiabilité des traductions et le contexte des citations. De plus, nous avons décrit le contexte tel qu'il apparaît, et même mentionné que la question avait quelque peu provoqué une telle réponse.
Je n'ai aucun doute sur l'intégrité de l'équipe de rédaction.


Ressortir cette histoire n'est pas une actualité dans le sens strict du terme, mais notre but n'est pas seulement de suivre les news, mais aussi de lancer des débats et parler de ce qui fait le buzz (même les buzz "dormants" pendant des années)
Il est toutefois vrai que cette histoire ressort pour la deuxième fois. Mais la première n'était pas traitée en article en bonne et due forme et n'avait pas été annoncée sur les portails. D'où la décision de remonter ce sujet.

Cordialement
Idelways
C'est là où nos opinions divergent. Pour moi ce genre de buzz est juste bon à relancer des querelles sans fondement qui finissent parfois par brouiller le reste des informations.

Après c'est une opinion qui m'est propre mais que je pense partagée par pas mal de personnes.
21  2 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 08/11/2011 à 18:04
« C++ est un langage horrible. Ce qui le rend d'autant plus horrible est le fait que beaucoup de programmeurs “substandard” l'utilisent, au point où il est nettement nettement plus facile de générer de la merde totale et absolue avec »
Marrant, c'est ce que je dis toujours... à propos de Visual Basic
19  1 
Avatar de Nathanael Marchand
Rédacteur https://www.developpez.com
Le 08/11/2011 à 22:46
Citation Envoyé par ernestrenan Voir le message
Python ou Ruby sont des heritiers "objets" du c beaucoup plus dignes que le c++ (niveau performance, niveau elegance donc niveau lisibilité donc niveau maintenance, niveau conception).
Python ou Ruby plus performants que C++?
Soit j'ai mal compris soit... Lol?
18  1 
Avatar de Joel F
Membre chevronné https://www.developpez.com
Le 08/11/2011 à 17:09
depuis quand un troll fait une actualité ?
18  4 
Avatar de oodini
Membre émérite https://www.developpez.com
Le 08/11/2011 à 15:20
Citation Envoyé par Idelways Voir le message
« C++ est un langage horrible. Ce qui le rend d'autant plus horrible est le fait que beaucoup de programmeurs “substandard” l'utilisent, au point où il est nettement nettement plus facile de générer de la merde totale et absolue avec », sic.
Tiens, il ne parle pas pas des mauvais développeurs C qui font des choses horribles avec les pointeurs.
D'ailleurs, ceux qui font des choses horribles en C++ sont généralement des gens qui ont gardé des habitudes du C.
22  9 
Avatar de Emmanuel Deloget
Expert confirmé https://www.developpez.com
Le 08/11/2011 à 18:06
Citation Envoyé par bioinfornatics Voir le message
Toujours est-il, linus n'a pas tord le langage C++ est trop complexe pour ce qu'il est et ceci pour plusieurs raisons:
- le langage est standardisé c'est une bonne chose mais un inconvénient majeure pour l'évolution du langage long et fastidieux
Comme le C. En même temps, une norme sert à mettre tout le monde d'accord. Considérer comme Digital Mars que le compilateur c'est la norme, ça n'est rien de plus qu'enfermer les utilisateurs chez un vendeur particulier. Le D de DM , étant non standardisé, évolue peut-être plus vite que le C++, mais au prix d'avoir une offre très faible en termes d'outils, tou en réussissant le tour de force de faire en sorte que cette offre soit fractionnée (à la marge, le compilateur D de GNU ne compile pas le même D que MD, et les deux n'évoluent pas à la même vitesse).

- Langage d'une grande complexité devant une apparence simple
Citation Envoyé par bioinfornatics Voir le message

- n'est plus adapté aux défi moderne
Ce sui ne veut rien dire, à moins que tu ne sois capable de définir "défi moderne"

Citation Envoyé par bioinfornatics Voir le message

Pour ces raisons je suis passé au langage D une vrai merveille, après ces sur il y a moins d'api mais pour ça c'est vous est moins qui les créons .
Moins d'API, c'est évident. Le langage est aussi moins compris, ses cas particuliers n'ont pas été étudiés, et personne ne sait ce que le compilateur, dans deux ans, fera du code actuel.

Pas de standardisation (qu'elle soit de fait ou non, comme Java) = danger pour les utilisateurs. Une entreprise ne peux pas se satisfaire d'un tel état des choses.
13  1 
Avatar de Arzar
Membre émérite https://www.developpez.com
Le 08/11/2011 à 15:42
Encore !??

mais fait écho à une tempête que soulève la découverte d'un email vieux de quatre ans.
Cette "découverte" est un serpent de mer qui remonte régulièrement sur Internet depuis 5 ans, y compris sur ce propre forum, par exemple il y a deux ans:

http://www.developpez.net/forums/d75...lds-naime-cpp/

Discussion dont le troisième message est :

Citation Envoyé par fcharton
Je pense que c'est ça, c'est ancien et célèbre...
11  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 08/11/2011 à 17:02
Dans le genre avis tranché, y'a celui-là aussi qui est célèbre :
It's terrible. Everyone is using it, and they don't realize how bad it is. And the Linux people will just stick with it and add to it rather than stepping back and saying, 'This is garbage and we should fix it.'
C'est le créateur d'OpenBSD à propos de Linux. Linus est personnellement visé aussi, et pour le coup il nous a montré comment réagir à ce genre de propos : ignorer.

Les chiens aboient, mais la caravane passe!
12  1 
Avatar de Jbx 2.0b
Membre chevronné https://www.developpez.com
Le 09/11/2011 à 16:07
Citation Envoyé par bioinfornatics Voir le message

- n'est plus adapté aux défi moderne
Le dernier moteur 3D digne de ce nom écrit en langage C doit-être celui de Quake III sortit en 1999, soit 12 années maintenant. John Carmack était lui aussi réticent aux changements. Malgré tout, depuis, avec Doom III puis Rage il a succombé lui aussi aux charmes du C++. Pour rester dans le domaine du jeu vidéo, comment ne pas considérer que Battlefield 3 est incontestablement un "défi moderne" ?

En fait, très peu de langages offrent un rapport performance/productivité/déploiement multi-plateforme aussi intéressant que le C++. Dans de nombreux domaines de développement logiciel à la pointe, il n'y a pas (ou peu) d'alternatives au C++ (vidéo, 3D temps réelle, logiciels scientifiques, clients lourds...).
En raccourci, actuellement, le langage C++ est le mieux armé pour faire face aux défis modernes.

J'espère que ça changera rapidement (malgré que je sois un développeur C++ passionné je pense que la productivité pourrait être largement améliorée), mais en attendant c'est une réalité.
11  1