Microsoft envisage de remplacer tout son code C/C++ par Rust d'ici 2030

Depuis plus de quatre décennies, les langages C et C++ constituent l’épine dorsale des logiciels modernes. Les systèmes d'exploitation, les bases de données, les navigateurs Web et les plateformes cloud ont été construits sur des millions de lignes de code écrites dans ces langages, appréciés pour leur proximité avec le matériel et leurs performances, mais également redoutés pour leur complexité et leur fragilité.

Dans ce contexte, l’idée d’abandonner progressivement le C et le C++ (promue même par la Maison Blanche) n’est pas seulement une décision technique : c’est une remise en question directe des fondements mêmes de l’industrie du logiciel.

Mais cette question n’est plus théorique. Chez Microsoft, l’une des entreprises possédant le plus grand volume de code existant en C et C++ sur la planète, un engagement clair en faveur d’un remplacement générationnel commence à prendre forme : Rust.

Le langage, relativement jeune par rapport à ses prédécesseurs, a acquis du prestige en offrant un équilibre difficile à atteindre : des performances de bas niveau comparables à celles du C/C++, mais avec des garanties de sécurité de la mémoire et de concurrence intégrées dans la conception même du langage.

Et toute la controverse découle d'un article sur LinkedIn de Galen Hunt, un éminent ingénieur Microsoft et vétéran avec près de trois décennies dans l'entreprise :

« Mon objectif est d'éliminer toutes les lignes de C et C++ de Microsoft d'ici 2030. »

C'est ainsi que Hunt a été direct dans son poste, où il a également annoncé la recherche d'un ingénieur principal spécialisé dans Rust pour son équipe. La stratégie proposée combine deux éléments clés :

  1. Algorithmes d'analyse de code à grande échelle, capables de construire des graphiques complexes qui représentent les dépendances, les flux et les structures d'énormes bases de codes.
  2. Des agents d'IA, guidés par ces algorithmes, capables de comprendre, transformer et réécrire le code de manière automatisée.

Rust comme langage du futur de Microsoft

Le choix de Rust n’est pas une coïncidence. Ces dernières années, Microsoft a activement encouragé l'utilisation de langages sécurisés en mémoire comme alternative à la domination historique du C et du C++. La motivation est claire : des décennies de vulnérabilités critiques (débordements de tampon, utilisation de mémoire libérée, bugs de concurrence) sont directement liées aux libertés (et aux dangers) de ces langages.

Des pilotes Windows aux composants Azure critiques, son adoption a augmenté, publiquement soutenue par des personnalités clés telles que le CTO d'Azure Mark Russinovich, qui a déclaré que l'entreprise travaillait « à plein temps » avec Rust.

Vision d’entreprise ou ambition personnelle ?

L'un des points les plus controversés est de savoir si cette initiative représente un plan d'entreprise formel ou la vision – ambitieuse, mais individuelle – d'une seule équipe de développement au sein de Microsoft. Certes, il n’y a, pour l’instant, aucune annonce officielle qui engage l’ensemble de l’entreprise à réécrire tous votre ancien code.

Néanmoins, de nombreuses idées nées sous forme de projets de recherche chez Microsoft ont fini par se matérialiser en produits réels : en ce sens, la frontière entre « projet expérimental » et « feuille de route future » est délibérément floue. Quoi qu'il en soit, l'offre d'emploi publiée par Hunt consiste à travailler en personne à Redmond, dans les propres bureaux de Microsoft.

Le défi de décennies d’histoire

L’ampleur du défi est notable : Microsoft gère certains des référentiels de code les plus vastes et les plus anciens au monde. Des composants tels que le noyau Windows, Office ou SQL Server contiennent des millions de lignes de C et C++ affinées au fil des décennies, avec des comportements qui, dans de nombreux cas, font déjà partie de la compatibilité attendue par les applications et les utilisateurs.

La réécriture de cet héritage présente des risques évidents, depuis des coûts de tests et de validation potentiellement astronomiques jusqu'à la nécessité de faire face à des complexités techniques difficiles à exprimer dans Rust « sûr », en particulier dans les structures de données de bas niveau courantes dans les systèmes d'exploitation.

Ingénierie assistée par l'IA ou simple « codage dynamique » à grande échelle ?

Un autre axe du débat tourne autour du rôle réel de l’intelligence artificielle. Alors que Microsoft se vante d'avoir examiné des centaines de milliers de demandes de tirage Chaque mois, avec l'aide de l'IA, de nombreux développeurs doutent que les modèles actuels soient prêts à réécrire des systèmes critiques sans supervision humaine approfondie.

L’IA, soulignent les plus prudents, peut être extrêmement utile pour comprendre le code existant, le documenter et suggérer des refactorisations. Mais déléguer la réécriture massive de systèmes complexes semble encore, pour beaucoup, une expérience à haut risque.

Au-delà de Microsoft : un signal pour l’industrie

Que l’objectif « zéro C/C++ d’ici 2030 » soit atteint ou non, le message est puissant. Microsoft indique une direction : moins de tolérance pour le risque structurel des logiciels traditionnels et davantage d'investissements dans des langages, des outils et des processus qui intègrent la sécurité dès la conception.

Pour l’industrie dans son ensemble, l’initiative fonctionne comme un laboratoire à grande échelle : si une entreprise de la taille de Microsoft parvient à traduire avec succès une partie importante de son héritage vers Rust en s’appuyant sur l’IA, l’impact pourrait redéfinir la façon dont la dette technique est traitée dans l’ensemble du secteur.

Newsletter

Rejoignez notre newsletter pour des astuces chaque semaine