• # Retourne à la raison!

    Posté par (site web personnel) . En réponse au journal Retour aux sources. Évalué à 1.

    C++ a d'immenses problèmes, qui sont essentiellement liés à la présence dans le langage de technologies ou méthodes concurrentes et à tous les outils de code obfuscation dont il dispose.

    • Le préprocesseur n'a pas été abandonné au profit des templates et const int ce qui rend quasiment impossible l'analyse statique du code et beaucoup de raisonnements élémentaires sur le code source. Résultat: la compilation est très lente dès qu'on sort du cadre d'un projet trivial.

    • Les références font essentiellement double emploi avec les pointeurs, elles enrichissent le lexique d'un langage déjà touffu pour une sémantique (passage de pointeur sans transfert de propriété) essentiellement dupliquée par les smart pointers.

    • Il est très difficile de tirer correctement parti des champs constants. Bien utiliser l'attribut const nécessite de préparer une vraie stratégie de développement.

    • Le langage est tellement compliqué qu'il n'y a pas foule de compilateurs implémentant complètement le langage — la dernière fois que j'ai fait des recherches là-dessus il y en avait exactement un. Et puis les implémentations sont boguées! J'ai appris C++ et exactement 3 mois plus tard j'ai découvert un bogue dans le compilateur!

    J'abrège un peu parce que c'est Samedi: C++ est utilisable si

    • On a une grosse équipe avec deux "seniors" et un architecte compétents pour la diriger.
    • On écrit un compilateur dont le backend est C++.

    Dans tous les autres cas, s'abstenir.