Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research, avec la contribution du créateur de JavaScript Brendan Eich. Utilisé par plusieurs grandes entreprises et par de nombreux développeurs dans le monde, Rust est devenu le langage de base pour certaines des fonctionnalités fondamentales du navigateur Firefox et de son moteur Gecko, ainsi que pour le moteur Servo de Mozilla.
AWS utilise Rust pour fournir des services tels qu'Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), Amazon CloudFront, et plus encore. Récemment, l’entreprise a lancé Bottlerocket, un système d'exploitation basé sur Linux et écrit en Rust. L’équipe Amazon EC2 utilise le langage Rust pour développer les nouveaux composants du système Nitro d'AWS, y compris les applications sensibles, telles que les enclaves Nitro.
Dans une étude intitulée : Efficacité énergétique dans les différents langages de programmation et publiée en 2019, six chercheurs de trois universités portugaises ont révélé que Perl, Python et Ruby sont les langages de programmations les plus voraces en énergie. Pour comparer correctement l'efficacité énergétique entre différents langages, il faut obtenir des implémentations comparables de solutions à un ensemble représentatif de problèmes. Et c’est ce qui avait été fait par les chercheurs des universités portugaises.
Rust est l’un des langages de programmation les plus appréciés et dont la croissance est la plus rapide à l'heure actuelle. Selon Google, les défauts de sécurité de la mémoire menacent fréquemment la sécurité des appareils, en particulier pour les applications et les systèmes d'exploitation. Par exemple, sur le système d'exploitation mobile Android, Google dit avoir constaté que plus de la moitié des vulnérabilités de sécurité traitées en 2019 résultaient de bogues de sécurité de la mémoire. Rust s'est avéré efficace pour fournir une couche de protection supplémentaire au-delà même de ces outils dans de nombreux autres projets, y compris les navigateurs, les jeux et même les bibliothèques clés.
Microsoft a récemment formé une équipe Rust pour contribuer aux efforts d'ingénierie de l'écosystème du langage. L’entreprise spécialisée dans le développement de logiciel prévoit de travailler avec la communauté Rust sur le compilateur, les outils de base, la documentation et bien plus. Selon Nell Shamrell Harrington, Ingénieur logiciel chez Microsoft et directeur du conseil d'administration de la Fondation Rust, les logiciels et les langages open source sont d'une importance capitale pour son entreprise et pour l'ensemble de l'industrie technologique. « Au fur et à mesure que l'utilisation de Rust se développe chez Microsoft, nous savons qu'il ne suffit pas de l'utiliser uniquement comme logiciel open source. Nous devons également y contribuer », a-t-il déclaré sur le billet de blog publié ce 8 février par Microsoft. « Rejoindre la Fondation Rust est une façon pour nous de soutenir financièrement le projet et de nous engager plus profondément avec la communauté Rust », précise Harrington.
Comment Rust peut-il sauver la planète ?
La réponse est qu'un code plus efficace nécessite moins de ressources pour fonctionner, ce qui se traduit par une réduction de la consommation d'énergie dans les centres de données, ainsi que de l'impact environnemental de la fabrication des équipements informatiques et de leur expédition dans le monde entier. « Les centres de données consomment ... 1 % de toute l'énergie mondiale », a déclaré Miller, ajoutant toutefois que l'énergie totale consommée avait peu évolué en dix ans, grâce aux progrès technologiques et au fait que le cloud tend à réduire la proportion de ressources inutilisées.
La deuxième partie de l'argument est que Rust fait partie des langages de programmation les plus efficaces. La source citée pour cela est l’article susmentionné, de 2017, qui a mesuré les performances, l'utilisation de la mémoire et l'efficacité énergétique de 27 langages de programmation, et a placé C comme le plus efficace, mais Rust juste derrière avec seulement trois pour cent de plus d'utilisation d'énergie. Java utilise près du double d'énergie, C# plus de trois fois, et Python plus de 75 fois, selon l'étude.
Résultat global normalisé pour le temps d'énergie et la mémoire
Le top 5 des langages qui consomment le moins d'énergie est donc C (1,00), Rust (1,03), C++ (1,34), Ada (1,70) et Java (1,98). À l'opposé, les langages les plus voraces en énergie sont Perl (79,58), Python (75,88), Ruby (69,91), Jruby (46,54) et Lua (45,98).
La recherche est problématique, comme l'ont fait remarquer plusieurs participants à la conference, non pas par manque de soin, mais parce que les langages ont de nombreuses implémentations et compilateurs, dont certains sont plus efficaces que d'autres. Il est également étrange de constater que TypeScript est 10 fois moins efficace que JavaScript, étant donné qu'il se compile en JavaScript et qu'un code similaire peut être écrit dans les deux.
Cependant, cela n'est pas si important car l'efficacité de Rust en tant que langage de systèmes ne fait aucun doute, et Miller et Lerche ne se sont pas basés uniquement sur cette recherche. Miller a également fait référence à des études de cas de Discord et de Tenable qui ont montré d'énormes gains d'efficacité. Dans le cas de Tenable, un composant JavaScript a été réécrit en Rust et aurait obtenu une amélioration de 50 % de la latence, une réduction de 75 % de l'utilisation du CPU et une réduction de 95 % de l'utilisation de la mémoire. « C'est assez fou, a déclaré Miller. C'est une économie substantielle, pas seulement dans l'infrastructure, cela se traduit par des économies d'énergie. »
Les langages ramasse-miettes sont intrinsèquement moins efficaces, a déclaré Lerche. Le ramasse-miettes est un moyen courant d'automatiser la gestion de la mémoire et fonctionne en identifiant les objets qui sont hors de portée et en libérant leur mémoire. Mais, « si nous voulons atteindre les objectifs de réduction des émissions de carbone, nous devrons écrire la plupart des nouveaux logiciels dans des langages économes en énergie comme C ou Rust.
Rust a une courbe d'apprentissage quelque peu notoire... Nous assistons à son adoption, mais pas partout. », a jouté Lerche qui est par ailleurs ingénieur principal chez AWS.
« Là où je vois Rust se développer le plus, c'est là où il y a un gain de performance surdimensionné, donc les services de base de données à haut volume, également dans les petits environnements limités en ressources comme l'IoT et l'embarqué. Nous ne le voyons pas tant que ça : vous écrivez un back-end pour une application JavaScript. »
Le problème est que coder en Rust est difficile. L'une des raisons pour lesquelles des langages comme Java, JavaScript et Python ont été si largement adoptés est que les programmeurs peuvent devenir plus rapidement productifs. C'est donc l'éléphant dans la pièce, « la fameuse courbe d'apprentissage », a déclaré Miller. Dans une enquête récente, parmi les ingénieurs qui ont déclaré ne plus utiliser le langage, 55 % ont cité l'apprentissage et la productivité comme raison de leur abandon. « Les ingénieurs expérimentés ont besoin de trois à six mois d'études soutenues par un expert en la matière avant d'être productifs avec le langage. »
En début d’année, AWS, Huawei, Google, Microsoft et Mozilla se sont associées pour lancer la fondation Rust et se sont engagées à lui consacrer un budget de deux ans à hauteur d'un million de dollars. Ce budget permettra au projet de développer des services, des programmes et des événements qui aideront les responsables du projet Rust à développer le meilleur Rust possible. Ces Big Tech ont été rejoint par Facebook quelques mois plus tard. L'annonce avait été faite par Ashley Williams, Directeur exécutif par intérim de la fondation, le 8 février sur le site Internet de l'organisation.
« Aujourd'hui, au nom de l'équipe de Rust, je suis heureux d'annoncer la création de la Fondation Rust, une nouvelle organisation indépendante à but non lucratif chargée de gérer le langage de programmation et l'écosystème Rust, en mettant l'accent sur le soutien de l'ensemble des responsables qui régissent et développent le projet ». Pour Ashley Williams, Rust est un langage qui donne du pouvoir à tout le monde.
Et vous ?
« Coder en Rust serait difficile », qu'en pensez-vous ?
Utilisez-vous le langage Rust ? Avez-vous essayé de l'apprendre ?
Quel commentaire faites-vous de l'immense adoption de Rust par les Big Tech ?
« Rust doit être adopté par les développeurs pour minimiser l'impact environnemental », qu'en pensez-vous ? Le choix du compilateur ne serait-t-il pas plus interessant ?
Selon vous, la Technologie peut-elle résoudre les problèmes environnementaux ?
Voir aussi :
Programmation : une étude révèle les langages les plus voraces en énergie, Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts
Linus Torvalds souligne une bonne avancée du langage Rust dans le développement du noyau Linux, et aurait qualifié le C++ de « langage de m... », après le message de Google
Microsoft, Google, AWS, Huawei et Mozilla s'associent pour créer la Fondation Rust, une organisation à but non lucratif chargée de gérer le langage de programmation
Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust, et renforce son équipe Rust par des nouveaux talents