C++ sous st�ro�des : Bjarne Stroustrup pr�sente des � profils � renforc�s par des lignes directrices pour la s�curit� des ressources et des types, afin de garantir que le code est contemporain et s�r.
Bjarne Stroustrup a pr�sent� des � profils � renfor�ant les lignes directrices pour la s�curit� des ressources et des types de C++. Ces profils sont un moyens de s'assurer que le code soit contemporain, plut�t que de s'appuyer sur des techniques d�pass�es, peu s�res et difficiles � maintenir.
Le C++ est un langage de programmation g�n�ral de haut niveau. Publi� pour la premi�re fois en 1985 en tant qu'extension du langage de programmation C, il s'est consid�rablement d�velopp� au fil du temps. Depuis 1997, le C++ poss�de des caract�ristiques orient�es objet, g�n�riques et fonctionnelles, ainsi que des fonctions de manipulation de la m�moire de bas niveau pour des syst�mes tels que les micro-ordinateurs ou pour cr�er des syst�mes d'exploitation tels que Linux ou Windows. Il est g�n�ralement impl�ment� en tant que langage compil�, et de nombreux fournisseurs proposent des compilateurs C++.
Le C++ a �t� cr�� par l'informaticien danois Bjarne Stroustrup. Il a notamment dirig� le d�partement de recherche sur la programmation � grande �chelle aux Bell Labs, a �t� professeur d'informatique � l'universit� Texas A&M et a pass� plus d'une d�cennie chez Morgan Stanley tout en �tant professeur invit� � l'universit� Columbia. Depuis 2022, il est professeur titulaire � Columbia.
R�cemment, Bjarne Stroustrup a pr�sent� des � profils � renfor�ant les lignes directrices pour la s�curit� des ressources et des types de C++. "Cela fait maintenant plus de 45 ans que le C++ a �t� con�u", �crit Bjarne Stroustrup dans un article publi� cette semaine dans Communications of the ACM. Il se plaint que de nombreux d�veloppeurs "utilisent le C++ comme s'il s'agissait encore du mill�naire pr�c�dent", dans un article intitul� 21st Century C++ qui promet "les concepts cl�s sur lesquels des logiciels C++ performants, s�rs et flexibles peuvent �tre construits : la gestion des ressources, la gestion de la dur�e de vie, la gestion des erreurs, la modularit� et la programmation g�n�rique...".
Bjarne Stoustrup pr�sente des moyens de s'assurer que le code soit contemporain, plut�t que de s'appuyer sur des techniques d�pass�es, peu s�res et difficiles � maintenir : les lignes directrices et les profils.
Le WG21 (et d'autres) travaille sur des � profils � pour mettre en �uvre des lignes directrices (bien qu'ils ne soient "pas encore disponibles, � l'exception de versions exp�rimentales et partielles"). Mais Stroustrup annonce que les directives de base du C++ "utilisent une strat�gie connue sous le nom de sous-ensemble de sous-ensemble".Pour aider les d�veloppeurs � se concentrer sur l'utilisation efficace du C++ contemporain et � �viter les � coins sombres � obsol�tes du langage, des ensembles de lignes directrices ont �t� �labor�s. Je me concentre ici sur les lignes directrices du C++ Core que je consid�re comme les plus ambitieuses... Mon objectif principal est une utilisation de la norme ISO C++ sans danger pour les types et les ressources. En d'autres termes :
- Chaque objet est exclusivement utilis� conform�ment � sa d�finition
- Aucune ressource n'est perdue.
Cela englobe ce que les gens appellent la s�curit� de la m�moire et bien plus encore. Il ne s'agit pas d'un nouvel objectif pour le C++. Il est �vident qu'il ne peut pas �tre atteint pour chaque utilisation du C++, mais nous avons maintenant des ann�es d'exp�rience montrant que c'est possible pour le code moderne, bien que jusqu'� pr�sent l'application ait �t� incompl�te... Lorsque l'on pense au C++, il est important de se rappeler que le C++ n'est pas seulement un langage, mais qu'il fait partie d'un �cosyst�me compos� d'impl�mentations, de biblioth�ques, d'outils, d'enseignement, et plus encore.
Stroustrup �crit que les directives de base du C++ se concentrent sur des r�gles "dont nous esp�rons que tout le monde pourra �ventuellement b�n�ficier".Premi�rement : �tendre le langage avec quelques abstractions de biblioth�que : utiliser des parties de la biblioth�que standard et ajouter une minuscule biblioth�que pour rendre l'utilisation des directives pratique et efficace (la biblioth�que de soutien des directives, GSL).
Ensuite : sous-ensemble : interdire l'utilisation de fonctionnalit�s de bas niveau, inefficaces et sujettes aux erreurs.
Ce que nous obtenons, c'est du "C++ sous st�ro�des" : Quelque chose de simple, s�r, flexible et rapide, plut�t qu'un sous-ensemble appauvri ou quelque chose qui repose sur une v�rification massive au moment de l'ex�cution. Nous ne cr�ons pas non plus un langage avec des caract�ristiques nouvelles et/ou incompatibles. Le r�sultat est 100% ISO standard C++. Les fonctionnalit�s de bas niveau, d�sordonn�es et dangereuses, peuvent toujours �tre activ�es et utilis�es en cas de besoin.
- Pas de variables non initialis�es
- Pas de violation de plage ou de nullptr
- Pas de fuites de ressources
- Pas de pointeurs pendants
- Pas de violation de type
- Pas d'invalidation
Pour rappel, Bjarne Stroustrup, cr�ateur du langage C++, a 74 ans. Il avait racont� qu'il est devenu programmeur par erreur, en se trompant de mot au moment de choisir ce qu'il allait �tudier apr�s ses examens de fin d'�tudes secondaires. Stroustrup pensait s'inscrire � un cours de math�matiques appliqu�es, qui s'est av�r� �tre un cours d'informatique. Maintenant, il est l'un des piliers du langage C++.
Source : Article 21st Century C++
Et vous ?
Pensez-vous que ses conseils sont cr�dibles ou pertinents ?
Quel est votre avis sur le sujet ?
Voir aussi :
Bjarne Stroustrup publie un article dans lequel il explique comment C++ a r�ussi � s'�panouir, dans un monde surpeupl� de langages et changeant de 2006 � 2020
Vers un C++ plus s�r ? Avec les extensions Safe C++, la communaut� veut r�pondre aux d�fis modernes de la s�curit� des logiciels, dans un contexte o� plusieurs recommandent de le remplacer par des alternatives
Les deux factions du C++ : la communaut� est divis�e entre ceux qui souhaitent un C++ moderne avec un meilleur outillage int�gr� et ceux qui veulent conserver le langage h�rit�
Partager