Faut-il préférer le langage Rust à C et C++ dans vos projets futurs ? Tel est en tout cas l’avis de Mark Russinovich, directeur de la technologie de Microsoft Azure, pour qui les développeurs devraient éviter d’utiliser les langages de programmation C ou C++ dans les nouveaux projets et utiliser plutôt Rust en raison de problèmes de sécurité et de fiabilité.
Rust est désormais utilisé dans le cadre du projet Android Open Source Project (AOSP), chez Meta, chez Amazon Web Services, chez Microsoft pour certaines parties de Windows et Azure, dans le noyau Linux et à bien d’autres endroits. Ce langage né du côté de Mozilla est aujourd’hui apprécié pour ses « garanties de sécurité de la mémoire », qui réduisent la nécessité de gérer manuellement la mémoire d’un programme et, par conséquent, le risque de failles de sécurité liées à la mémoire qui pèsent sur les grands projets écrits en C ou C++ « peu sûrs pour la mémoire », ce qui inclut Chrome, Android, le noyau Linux et Windows.
Microsoft a insisté sur ce point en 2019 après avoir révélé que 70 % de ses correctifs au cours des 12 dernières années étaient des corrections de bugs de sécurité de la mémoire, en grande partie parce que Windows est écrit principalement en C et C++. L’équipe Chrome de Google a apporté ses propres conclusions en 2020, en révélant que 70 % de tous les bogues de sécurité graves dans la base de code de Chrome étaient des bogues de gestion et de sécurité de la mémoire. Le code est principalement écrit en C++.
Un successeur parfait à C et C++ ?
La seule réserve émise par le directeur technique d’Azure quant à l’utilisation de Rust est qu’il est préférable au C et au C+ pour les nouveaux projets qui nécessitent un langage non GC (non-garbage-collected). Les moteurs GC gèrent la gestion de la mémoire. Go, le langage de Google, est un langage de collecte de déchets, alors que le projet Rust affirme le contraire. Les ingénieurs d’AWS préfèrent Rust à Go en raison des gains d’efficacité qu’il offre sans GC.
« En parlant de langages, il est temps d’arrêter de commencer tout nouveau projet en C/C++ et d’utiliser Rust pour les scénarios où un langage sans GC est nécessaire. Pour des raisons de sécurité et de fiabilité, l’industrie devrait déclarer ces langages dépréciés », indique le dirigeant. Pour ce dernier, Rust s’avère un successeur prometteur pour C et C++, en particulier en ce qui concerne la programmation au niveau des systèmes, les projets d’infrastructure, le développement de logiciels embarqués, et plus encore — mais pas partout et pas dans tous les projets.
Pour rappel, Meta a récemment promu Rust au rang de principal langage côté serveur pris en charge, aux côtés de C++. AWS investit dans Rust pour les logiciels d’infrastructure. Les ingénieurs d’Azure l’ont utilisé pour construire des outils cloud permettant de tester les modules WebAssembly dans Kubernetes. De l’autre côté, l’équipe de Chrome est liée à C++ dans un avenir prévisible, malgré l’intérêt porté à Rust ; le simple passage à Rust n’éliminerait pas une proportion significative de vulnérabilités de sécurité avant des années, fait-on savoir du côté de Google. Au lieu de cela, Chrome apporte la sécurité de la mémoire à sa base de code C++.
Source : ZDNet.com
(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/all.js#appId=243265768935&xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));