Le C++ 26 rétoqué par l’ISO, une première dans l’histoire de ce langage

Langage C++26 retoqué à l'ISO

A la fin du mois d’octobre, la proposition de normalisation de la version 26 du langage C++ a été rejeté par l’ISO (Organisation internationale de normalisation) plus précisément par le comité technique ISO/IEC JTC1/SC22/WG21.

C’est la première fois dans l'histoire de ce langage universellement utilisé qu'un rejet de son évolution survient alors la dernière version C++23, approuvée sans difficultés en 2023, est actuellement la plus répandue sur le terrain, et supportée par la plupart des compilateurs.

Le principal point de blocage de ce rejet porte sur le concept de contrats - ou programmation par contrat - qui divise la communauté des développeurs quant à sa maturité et à la possibilité pour les compilateurs d'ignorer ou non les vérifications.

Cette fonctionnalité des contracts a pour objet de spécifier dans la signature d'une fonction C++ ce qui doit être vérifié avant et après l’appel de la dite fonction. En d’autres termes, il s’agit pour le développeur d’expliciter les conditions qu’une fonction doit respecter pour les aider là rendre leurs logiciels plus fiables.

Mais leur conception et les garanties qu’ils apportent divisent franchement la communauté, d’où ce rejet historique par l’ISO.

« Le paradoxe des contrats, c’est qu’ils visent à rendre les logiciels plus fiables, sans garantir que leurs vérifications seront exécutées. Le débat porte donc sur ce que l’on peut réellement attendre d’une fonctionnalité présentée comme un progrès pour la sécurité mais qui peut être ignorée par l'utilisateur », explique Thibault Ricord-Marchal, ingénieur conseil Software Engineering chez Margo, société de conseil en IT spécialisée dans les missions à forte complexité technologique, en data, en intelligence artificielle, dans un commentaire lié à cette affaire.

Quant aux entreprises qui développent en C++, ce vote soulève notamment les questions concrètes suivantes : quelles évolutions pourront-elles adopter ? Avec quelles garanties de stabilité ? Et dans quels délais ?

A suivre donc.