[Actualité] Le premier compilateur C++ fête ses 30 ans. Son créateur revient sur les grandes étapes du langage.
par
, 14/10/2015 à 11h18 (1958 Affichages)
Le 14 octobre 1985 sortait (en version commerciale) Cfront 1.0, le tout premier compilateur C++. Cette sortie était accompagnée, le même jour, de celle du livre de référence sur le sujet : "The C++ Programming Language" (première édition). Ce double événement marqua le début d'une aventure qui perdure encore de nos jours : celle de l'évolution de C++.
Outre leur date de sortie, le compilateur et le livre ont comme point commun le même auteur : Bjarne Stroustrup. Ce dernier a accepté de revenir sur les 30 dernières années de sa vie passées à développer C++ dans un entretien publié aujourd'hui même. Son interview est accompagnée d'une illustration qui permet de se faire une meilleure idée des grandes étapes de C++ depuis ses débuts jusqu'à nos jours.
Le créateur danois aime rappeler que dès sa première version, C With Classes (qui n'est pas encore C++) disposait des classes, des constructeurs et destructeurs, de la visibilité public / protected, de la surcharge ainsi que de la redéfinition (virtualité). Rappelons que dans le contexte de l’époque, la plupart des programmeurs étaient hostiles à la POO, perçue comme trop complexe et trop gourmande.
La programmation paramétrique était elle aussi présente très tôt, implémentée via des macros (un fichier d'en-tête <generic.h> était même livré). Bjarne avoue d'ailleurs s'être lourdement trompé quant à la possibilité de supporter ainsi la programmation générique, et il faudra attendre la fin des années 80 pour voir arriver les templates si chers à C++.
Mais il précise aussi que si C++ est parvenu à rencontrer le succès malgré les inévitables erreurs de parcours, c'est parce que tout au long de son développement, il a fait très attention à introduire des changements graduels en réponse à des problèmes réels : "C++ n'a jamais été un projet de type Tour d'Ivoire". C'est ce qui explique selon lui que C++ ait réussi à percer comme langage majeur, du fait qu'il répond à des besoins critiques pour beaucoup de programmeurs.
Pour autant, 30 ans est une longue période de temps, et Bjarne avoue avoir été tenté plusieurs fois de se lancer dans la création d'un autre nouveau langage : "mais C++ m'a toujours ramené à lui". En effet, il est très difficile de concevoir un système à partir de zéro, d'autant plus quand il s'agit d'entrer en compétition avec C++ sur son terrain de prédilection. Ainsi, il préfère oeuvrer à améliorer C++. Car ce n'est certes pas facile d'intégrer une idée nouvelle dans un langage aussi complexe. Mais quand on y parvient, elle peut bénéficier immédiatement à des millions de programmeurs plutôt qu'à quelques centaines.
Bjarne parle ensuite de l'emballement du public à une certaine époque pour la POO, au point qu'il en venait à donner des conférences du type "C++ n'est pas qu'un langage de programmation orienté objet". Par la suite, la mode changera et s'enthousiasme démesuré se portera sur les templates. Il aborde alors un problème majeur de C++ selon lui : le faible niveau de compréhension du langage de la part de ceux qui l'enseignent, mais aussi de ceux qui l'utilisent couramment. C'est pourquoi lui et d'autres membres du comité travaillent à faciliter le bon usage du langage via la mise à disposition d'outils, de bibliothèques et d'un guide de bonnes pratiques. Ces dernières, explique-t-il, permettent de se passer efficacement d'un ramasse-miettes (garbage collector) tout simplement parce que le style de programmation utilisé ne génère pas de déchets (garbage) à ramasser.
Enfin, au sujet des nouveautés à venir dans C++17, il s'attend à un changement majeur au niveau du langage, au même titre que C++11 l'a été. Il espère voir arriver:
- les concepts (utilisation plus simple des templates)
- les modules (compilation plus rapide)
- une STL améliorée : fini les begin()…end()
- les co-routines
- une bibliothèque réseau standard
- un meilleur support de la programmation concurrente et parallèle
- et plus encore
Nous en saurons plus à l'issue de la rencontre prochaine du comité de normalisation. A ce propos, il est encore temps de partager vos questions et interrogations sur le langage afin d'espérer une réponse de la part de ceux qui le font évoluer !
Source : Bjarne Stroustrup on the 30th anniversary of Cfront (the first C++ compiler)