[MàJ] Conversion du code en Rust : Microsoft rétropédale
Modern C
Galen Hunt, l’un des principaux ingénieurs de Microsoft, a publié une offre d’emploi détonante : l’entreprise recherche un ingénieur pour aider à la transition intégrale du code C/C++ vers Rust, qui doit être achevée en à peine cinq ans. Il a cependant rétropédalé, évoquant des « lectures spéculatives ».
Le 24 décembre 2025 à 11h13
7 min
Logiciel
Logiciel
Mise à jour du 24 décembre : Dans une mise à jour, Galen Hunt indique : « Il semble que mon post ait suscité bien plus d’attention que je ne l’avais prévu... Avec beaucoup de lectures spéculatives entre les lignes. Juste pour clarifier... Windows n’est *PAS* en train d’être réécrit dans Rust avec l’IA ». Et d’ajouter qu’il s’agit d’un projet de recherche : le développement de « technologies pour rendre possible la migration d’un langage à un autre ».
Difficile pourtant de parler de « lectures spéculatives », car le texte initial (toujours disponible) était clair, notamment : « Mon objectif est d’éliminer toutes les lignes de C et C++ de Microsoft d’ici 2030 ». Des termes clairs, d’autant plus quand ils sont prononcés par l’un des principaux ingénieurs dans l’entreprise.
Dans un commentaire, Wolfgang Grieskamp, un autre ingénieur de Microsoft, indique que la traduction automatique vers Rust ne donne de toute façon pas de bons résultats. Le code obtenu est « unsafe, au sens de Rust », car il est nécessaire de penser le projet avec le langage dès le départ, modifiant largement la manière dont les données sont gérées.
Article original du 23 décembre :
Microsoft n’a jamais caché son intérêt pour le Rust. Il a été question un temps d’attendre que l’outillage s’adapte et soit plus mature, mais la version 24H2 de Windows 11 a été la première à introduire du code Rust dans son noyau. Signe clair que la situation avait largement évolué. En février 2025, Paul Thurrott rapportait que la consigne avait été donnée en interne de ne commencer aucun nouveau projet en C ou C++, seulement en Rust.
Le langage, créé initialement par Mozilla, est depuis longtemps géré par une fondation indépendante. Microsoft en était d’ailleurs l’un des principaux membres fondateurs. Le Rust est observé de près par de nombreuses entreprises, particulièrement pour tout ce qui touche à la programmation système. On en trouve d’ailleurs dans le noyau Linux, bien que cette intégration ne se soit pas faite sans heurts. Comme nous l’expliquait récemment Sylvestre Ledru de Mozilla, Firefox en intègre également plusieurs millions de lignes de code, tout comme Chrome.
Mais Microsoft vient de donner un sérieux coup d’accélérateur : la firme veut remplacer tout son code C/C++ d’ici 2030.
Un projet titanesque
L’annonce n’a pas fait l’objet d’un billet ou d’un communiqué de presse. Elle est présente dans une offre d’emploi publiée par Galen Hunt, l’un des plus anciens ingénieurs logiciels de l’entreprise. L’offre est pour un ingénieur logiciel principal, en présentiel à Redmond.
Elle est cependant vite évacuée au profit d’une déclaration fracassante : « Mon objectif est d’éliminer toutes les lignes de C et C++ de Microsoft d’ici 2030 ». Galen Hunt indique que la stratégie consiste à mêler IA et algorithmes, et que « l’étoile polaire » est d’atteindre « 1 ingénieur, 1 mois, 1 million de lignes de code ». La tâche est décrite comme « inimaginable jusqu’ici ».
L’infrastructure algorithmique de l’entreprise est utilisée actuellement pour créer « un graphe évolutif sur le code source à grande échelle ». Après quoi, des agents IA, « guidés par des algorithmes », effectuent les modifications, également à grande échelle. Galen Hunt assure que le « cœur de cette infrastructure fonctionne déjà à grande échelle sur des problèmes tels que la compréhension du code ».
Une expérience en programmation système de qualité production est exigée. Galen Hunt enchaine sur d’autres paramètres de l’offre et un descriptif de l’équipe travaillant sur ce projet.
Le Rust, toujours le Rust
Plusieurs personnes sont venues témoigner de leur étonnement dans les commentaires. Sur le choix du Rust par exemple : pourquoi ne pas avoir choisi C#, qui présente lui aussi certaines caractéristiques intéressantes pour la sécurité ?
Galen Hunt a répondu : C# est « memory safe », mais pas « concurrent safe ». Comprendre que si C# permet d’éliminer certaines classes de failles de sécurité, notamment via un typage fort, Rust va plus loin. Il est jugé plus adapté à la programmation concurrente, quand plusieurs threads, processus ou tâches évoluent en parallèle, avec ou sans zone mémoire commune. Autre raison, attendue : les performances. Rust fonctionne sans ramasse-miettes (garbage collector) et permet d’atteindre les performances du C++.
L’ingénieur évalue à un milliard le nombre de lignes de code concernées chez Microsoft. Pourquoi un projet aussi démesuré ? Pourquoi ne pas garder le code C/C++ ? « Pas de sécurité mémoire. Pas de sécurité sur la concurrence. Bien sûr, pour une seule base de code C ou C++, ces qualités peuvent être atteintes par une discipline et un effort extraordinaires – et disparaître en une seule erreur. Avec Rust, cela peut être prouvé par le compilateur », répond Galen Hunt.
L’annonce a été accueillie avec une certaine incrédulité… y compris dans les rangs mêmes de Microsoft. Rupo Zhang, l’un des responsables de l’ingénierie logicielle de l’entreprise, demande en commentaire sur LinkedIn : « Vous êtes sérieux ? ». La question est restée sans réponse.
Relecture critique
Le projet est en effet pharaonique. « Notre mission est de développer des capacités permettant à Microsoft et à nos clients d’éliminer la dette technique à grande échelle », indiquait Galen Hunt dans l’annonce. Ce qui implique non seulement la conversion de centaines de millions de lignes de code, mais également les nombreux tests devant être réalisés pour en vérifier la fiabilité et les performances.
L’annonce laisse d’ailleurs entendre que le projet est double : convertir tout le code en Rust et finaliser l’infrastructure capable d’accomplir cette opération. Cette dernière impliquerait notamment que l’intégralité du code de Windows serait convertie en Rust, tout en maintenant la rétrocompatibilité, qui est l’une des marques de fabrique de la plateforme. Début septembre, on apprenait notamment que Microsoft voulait encourager le développement de pilotes en Rust, mais que seules les premières briques de l’infrastructure étaient proposées.
Quoi qu’il en soit, Microsoft répète continuellement depuis plus de dix ans que 70 % des failles de sécurité corrigées sont liées à une mauvaise gestion de la mémoire. Le Rust, bien qu’il élimine pratiquement tous les types de failles dans ce contexte, n’est pas non plus une protection absolue contre toutes les menaces. Il faut encore que le code ait été bien écrit. Comme nous le disait récemment l’ingénieur Horacio Gonzalez (Clever Cloud), la relecture critique a toutes les chances de devenir une compétence très recherchée.
[MàJ] Conversion du code en Rust : Microsoft rétropédale
-
Un projet titanesque
-
Le Rust, toujours le Rust
-
Relecture critique
Commentaires (36)
Abonnez-vous pour prendre part au débat
Déjà abonné ? Se connecter
Cet article est en accès libre, mais il est le fruit du travail d'une rédaction qui ne travaille que pour ses lecteurs, sur un média sans pub et sans tracker. Soutenez le journalisme tech de qualité en vous abonnant.
Accédez en illimité aux articles
Profitez d’un média expert et unique
Intégrez la communauté et prenez part aux débats
Partagez des articles premium à vos contacts
Abonnez-vousLe 23/12/2025 à 12h10
Le dev, c'est mon métier depuis 15 ans, et ma passion depuis plus de 30. On ne change pas pour le plaisir de changer. Réécrire des portions de code sur lesquels ont est en train d'apporter des modifications, pourquoi pas. Migrer le reste de code quand il reste genre 1% de C pour 99% de Rust, pourquoi pas.
Migrer un OS complet avec une échéance à 5 ans, alors même que le processus de mise à jour n'a fait que se dégrader depuis de nombreux mois, c'est une connerie à tous les niveaux.
Je ne voudrais pas avoir une machine avec ce "nouveau" Windows. Ce sera une hécatombe.
Microsoft semble reprendre l'exemple de Musk quand il était à la tête du DOGE. N'avait-il pas promis de virer tout le COBOL des applications en l'espace de 6 mois ? Je serais curieux de voir où en est ce projet !
Le 23/12/2025 à 13h39
Oui et puis
Avec des classes remplies de milliers de d'attributs on y arrive vite au million. Il faut au moins 334 000...
"x lignes de code" générées par un IDE pour des Get/Set... pas insurmontable. Alors avec une IA bavarde...
Le 23/12/2025 à 13h52
Même avec une IA, c'est juste du bullshit.
Le 23/12/2025 à 14h07
Il y a même des outils pour créer des classes directement à partir de fichiers de propriété dans un tas de langages différent. souvent le cas de support multilingue et 'localisation' (I18N, etc.) Et même si l'outil n'existe pas on peut le faire tellement le schéma est connu et plutôt simple.
Mon propos n'est pas la productivité humaine. Plutôt sur l'annonce qui semble "whoaou" mais en fait; avec les bonnes compétences/méthodes/outils c'est déjà moins brillant.
D'ailleurs il est dit que c'est clairement un chantier de migration de code. Ce qui va se terminer par un outil de conversion automatique. Donc pas un super ingénieur qui code avec des mains à 1000 doigts.
D’où le fait que je dis que c'est du marketing d'abord. Et puis.. Microsoft (et leurs affiliés)... Faut-il détailler comment ils maîtrisent la com ???
Le 23/12/2025 à 15h19
Convertir du code dans 2 langages très proche niveau paradigme (comme le C# et le Java par exemple), c'est déjà un bazar sans nom. Alors convertir 2 langages (C et C++) vers un seul (Rust) aux paradigmes proches mais différents (polymorphisme, héritage, gestion de la mémoire, etc.) je ne suis même pas curieux de voir ce que cela va donner
Et si c'est pour avoir du Rust unsafe partout, l'argument avancé pour la réécriture tombe à l'eau.
Je pense aussi que c'est du marketing. Ca n'empêche pas mon côté technique d'avoir envie de gerber à cette lecture
Le 23/12/2025 à 12h15
Le 23/12/2025 à 12h19
Le 23/12/2025 à 14h48
Le 23/12/2025 à 12h27
Le 23/12/2025 à 13h10
Que cet ingénieur remette la barre d’adresse d’explorer comme sous Windows 10.
La version 11 est à chier a croire qu’il n’utilise pas son produit !
Modifié le 23/12/2025 à 13h43
Le 23/12/2025 à 14h10
Modifié le 23/12/2025 à 14h27
Le 23/12/2025 à 18h00
Le 23/12/2025 à 16h05
Le 23/12/2025 à 18h29
En réalité, la réponse est dans la question!
L'aspect positif n°1, c'est de pas avoir envisage C#, y'en a qui en ont de bonnes dans cette boite de tordus... Mais c'est un projet qui va tout déstabiliser c'est certain, surtout considérant le foutoir de plus de 4 décennies jamais vraiment remis au propre chez Microsoft! La dette technique qu'ils prétendent résoudre en mode largement automatique, ça va secouer...
L'aspect positif n°2, c'est que cela va tellement les occuper/épuiser qu'ils n'auront guère le temps de polluer l'open-source en faisant "cancer à l'envers".
Le 23/12/2025 à 18h48
Toutes les métriques disponibles pour Copilot vont dans ce sens : nombre de lignes ajoutées, supprimées proposées, acceptées...
Ici leur objectif est de faire 1 million de lignes de code en un mois et une personne. Pourquoi 1 million ? Pourquoi passer à Rust ?
Je sais bien qu'il y a des arguments déjà annoncés par MS sur leur intérêt pour Rust, mais pourtant la "north star" n'est pas l'amélioration de la performance ou de la stabilité, ni la maintenabilité. Non c'est l'utilisation de l'IA et le nombre de lignes de code.
Le 23/12/2025 à 18h50
Le 23/12/2025 à 19h22
Le 24/12/2025 à 18h22
Modifié le 23/12/2025 à 21h18
Quitte à sortir des âneries, autant que j'y contribue. Le noyau de Linux c'est 40 M de lignes de code en incluant le kernel en soi et différents drivers. Si je me sers de cela comme référence pour Windows tout en extrapolant à la grosse louche pour inclure DirectX, l'interface, Hyper-V, l'explorateur, etc. et le fait que Microsoft externalise les tests vers les usagers
Le 23/12/2025 à 23h41
Le 24/12/2025 à 11h16
Le 24/12/2025 à 14h04
Le 24/12/2025 à 14h14
Le 24/12/2025 à 18h23
Le 24/12/2025 à 10h39
Dans 15 ans. En attendant, je bosses sous Linux.
Le 24/12/2025 à 16h00
Le 24/12/2025 à 11h17
Le 24/12/2025 à 11h23
Modifié le 24/12/2025 à 11h29
https://chaos.social/@icing/115773587215483511
Le 24/12/2025 à 18h24
Le 24/12/2025 à 19h23
Le 24/12/2025 à 12h18
Modifié le 28/12/2025 à 23h03
Maintenant si MSE veut faire quelques choses de bien, c'est choisir un linux/unix de son choix et faire ce qu'à fait Apple avec Max OS X il y a 20 ans. Quand au legacy, et bien il y aura bien quelques choses pour émuler le dos.
Pour les ronchos, oui il y a WSL mais pour moi deux OS, deux fois plus de problèmes.
Le 29/12/2025 à 10h16
Linux, les API publiques sont à peu près stable (même si parfois il y a des changements), mais c'est pas la même tambouille pour les API internes. Ce n'est pas pour rien que c'est galère de maintenir un driver en dehors du noyau, et que chaque mise à jour du noyau implique une recompilation de chacun des drivers utilisés.
Et sous Linux, réutiliser un programme signifie souvent de devoir le compiler pour une version spécifique d'une distribution. Ce n'est pas pour rien que de plus en plus d'applications sont déployés via flatpack, snap ou autre, car c'est justement un moyen "simple" d'avoir un déploiement qui soit homogène et quasi-indépendant de la distribution.
Je sais bien que voir disparaitre Windows (en tout cas, dans sa forme actuelle) pour y voir du linux à la place, c'est le rêve de beaucoup de linuxien. Mais cela ne se fera jamais.
Microsoft et Linux ont fait un choix structurant radicalement opposé dès le départ :
- Microsoft : garder la compatibilité quoi qu'il arrive (seul de graves problèmes de sécu peuvent remettre en cause cette compatibilité)
- Linux : on casse la compatibilité quand besoin, pour avoir toujours une base saine et propre.
Il n'y a pas une des deux approches qui soient meilleure que l'autre. Les deux ont chacune leurs avantages et leurs inconvénients.
En attendant, sous Windows, il est possible de prendre un programme de Windows 98 (au hasard, le solitaire ^^), de le mettre sur Windows 11 et d'y jouer. En entreprise, avec la quantité de logiciel métier non changeable, c'est une obligation de pouvoir le faire.
Je mets au défis de faire la même chose sous Linux (et sans recompilation, je précise) : c'est impossible.
Mais du coup, Windows empile des couches de compatibilités, des bogues parfois non corrigés, des API désuettes mais non supprimées, etc.
De mémoire, ce n'est pas Linux qui a été choisi, mais BSD (et pas qu'un seul, mais plusieurs)
Signaler un commentaire
Voulez-vous vraiment signaler ce commentaire ?