Microsoft Azure CTO évite C et C++ • The Register

Actualisé Microsoft Azure CTO Mark Russinovich en a marre du C et du C++, des langages de programmation éprouvés souvent utilisés pour les applications natives qui nécessitent des performances élevées.

Lundi, Russinovich a exhorté l’industrie technologique à aller au-delà du C/C++. “En parlant de langages, il est temps d’arrêter de démarrer de nouveaux projets en C/C++ et d’utiliser Rust pour les scénarios où un non-[garbage collected] une langue est nécessaire », a-t-il déclaré. « Pour des raisons de sécurité et de fiabilité, l’industrie devrait déclarer ces langues obsolètes.

La démission de Russinovich de C/C++ intervient alors que le fabricant de Linux Linus Torvalds a Apparemment a confirmé que le code Rust – sauf circonstances imprévues – apparaîtra dans la version 6.1 du noyau Linux, une étape tant attendue. Le noyau Linux est écrit en C avec quelques modifications et quelques scripts de colle saupoudrés.

Rust, conçu comme passe-temps par Graydon Hoare, a commencé à prendre forme chez Mozilla en 2006 et a fait ses débuts publics en 2010. Il a commencé à attirer sérieusement l’attention en tant qu’alternative à C/C++ en 2015 avec le sortie de Rust 1.0.

Depuis lors, Rust est le langage de programmation le plus apprécié dans le rapport annuel Enquête StackOverflow sept années de suite – malgré sa réputation de difficile à apprendre – et a été intégré à des projets dans de grandes entreprises technologiques.

Apple, Amazon, Google, Meta et Microsoft, parmi tant d’autres, utilisent Rust à un titre ou à un autre ou dans la fabrication. Cloudflare récemment a jailli sur Pingorale nouveau proxy HTTP construit avec Rust, qui a amélioré les performances et réduit l’utilisation du processeur et de la mémoire.

Rust semble moins sujet à d’éventuelles erreurs de corruption de la mémoire, ce qui rend les logiciels moins vulnérables. Microsoft a été parler de dumping C/C++ et d’exploration de Rust au moins depuis 2019 et a développé son propre langage de programmation orienté cloud et sécurisé appelé Projet Vérone. L’appel de Russinovich à abolir le C/C++ n’est donc pas sans précédent.

Selon Microsoft, environ 70 pour cent des CVE corrigés depuis 2006 sont dus à des problèmes de sécurité de la mémoire. L’élimination de ces bogues améliorerait considérablement la sécurité des logiciels tout en réduisant le coût de la correction des vulnérabilités.

Le registre a demandé à Microsoft si la recommandation de Russinovich serait adoptée à l’échelle de l’entreprise. Redmond a refusé de commenter.

Rest seul ne peut pas garantir que le logiciel est sûr. Il fournit une défense contre les failles de sécurité de la mémoire, mais n’élimine pas les autres types de vulnérabilités.

Si la documentation linguistique explique, “Rust contient à la fois un langage de programmation sécurisé et non sécurisé.” Les développeurs peuvent choisir d’écrire Rouille dangereuse pour certaines tâches et ils peuvent créer par inadvertance du code non sécurisé. Et Rust ne s’attaque pas aux vecteurs d’attaque qui ne relèvent pas de la conception de logiciels sonores, tels que l’ingénierie sociale. Néanmoins, il a des qualités qui le recommandent.

“Rust continue de gagner en popularité pour sa sécurité, sa rapidité et sa fiabilité, et il est encourageant de voir ce soutien de la part de leaders aussi éminents dans ce domaine”, a déclaré Rebecca Rumbul, directrice exécutive et PDG de la Rust Foundation, dans un e-mail à l’adresse Le registre. “Nous espérons que ce type de soutien stimulera en fin de compte les investissements dans l’infrastructure Rust et dans la talentueuse communauté Rust afin que Rust puisse rester sûr, sécurisé et durable à l’avenir.”

Le registre a demandé Bjarne Stroustrup, créateur de C++, pour un commentaire. Nous mettrons à jour cette histoire lorsque nous vous répondrons. ®

Mis à jour pour ajouter

Stroustrup est revenu vers nous et a défendu le langage qu’il avait inventé.

“Il n’est pas rare que les gens – en particulier les cadres – tombent amoureux de choses nouvelles et brillantes qui promettent de leur faciliter la vie”, nous a-t-il dit.

“De plus, soutenir quelque chose de nouveau est beaucoup plus excitant que de s’attaquer aux problèmes connus des outils plus anciens et bien connus. Malheureusement, il faut généralement de nombreuses années et de grands efforts pour que les nouvelles langues correspondent aux langues matures dans leur large portée. Les passionnés voient rarement cela et ont tendance à être plutôt unilatéraux dans leurs commentaires.”

“La sécurité est bien sûr essentielle dans de nombreux contextes, j’ai donc passé des années à travailler sur l’amélioration de la sécurité en C++”, a poursuivi le créateur du langage.

Nous pouvons désormais garantir une parfaite sécurité des types et de la mémoire en ISO C++. Autrement dit, chaque objet est utilisé en fonction du type avec lequel il est défini

“Nous pouvons désormais garantir une sécurité de type et de mémoire parfaite dans ISO C++. Autrement dit, chaque objet est utilisé en fonction du type avec lequel il est défini. Cela signifie que nous éliminons l’utilisation de pointeurs suspendus, d’erreurs de plage de capture et de courses de données. Notez que tout langage “sécurisé”, y compris Rust, a des failles qui permettent un code non sécurisé.”

Se référant à ce documentqu’il a co-écrit, Stroustrup a déclaré: “L’idée de base des directives de base est de définir un ensemble de règles à suivre pour assurer la sécurité, puis de les appliquer avec une analyse statique. Les règles sont nécessaires car le code arbitraire C ou C ++ ne peut pas être prouvé sûr.

“Le code est la norme ISO C++ et les personnes qui n’ont pas besoin de sécurité ou qui ne peuvent pas mettre à jour leur code mais qui ne peuvent tout simplement pas exécuter un analyseur. Des implémentations partielles de ces analyseurs sont disponibles dans Microsoft Visual Studio et Clang Tidy, et ailleurs.”

“Il s’agit clairement d’un travail en cours”, a-t-il ajouté, “mais il en va de même pour les divers efforts visant à adapter largement la flexibilité et les performances de C++ aux applications du monde réel. Des milliards de lignes de C++ ont été implémentées aujourd’hui.

Les remplacer – ou simplement les rendre sûrs (pour différentes définitions de “sécurisé”) – est une tâche énorme. Il est essentiel de le faire progressivement, sinon la grande quantité de code C non sécurisé et d’ancien code C++ restera “pour toujours”. Les approches évolutives réussissent souvent là où les révolutions coûteuses échouent.”

Leave a Reply

Your email address will not be published.