Rappelons que Rust est un langage de programmation compilé multiparadigme, conçu par Graydon Hore alors employé chez Mozilla Research. 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.
Rust a été créé pour garantir des performances élevées similaires à celles offertes par le C et le C++, mais en mettant l'accent sur la sécurité du code, dont le manque est le talon d'Achille de ces deux langages. Cependant, Rust a plus que la sécurité de la mémoire de son côté. Les hautes performances lors du traitement de grandes quantités de données, le support de la programmation concurrente, ainsi qu'un compilateur efficace sont d'autres raisons pour lesquelles des poids lourds du logiciel utilisent désormais ce langage de programmation.
Expliquant pourquoi l’entreprise a une liste de langages pris en charge et pourquoi ils sont généralement réticents à ajouter des langages à cette liste (bien que Rust soit un nouvel ajout), Meta déclare : « la raison principale est que la prise en charge d'un langage de programmation à l'échelle de Meta nécessite un investissement technique important, et que ce coût est largement réparti et pas seulement supporté par ses utilisateurs », déclare Meta. Voici, ci-dessous, quelques exemples :
- le support des bibliothèques de base : il y a très peu de services isolés, et moins nous Meta a de langages, moins les bibliothèques de base sont sollicitées ;
- sécurité et confidentialité : une pile fragmentée rend plus complexe l'intégration de fonctions importantes de sécurité et de confidentialité dans nos services ;
- expérience des développeurs : les langages pris en charge disposent d'équipes qui travaillent à l'amélioration de domaines tels que le support IDE, la vitesse de construction, l'expérience de débogage.
Facebook utilise Rust depuis 2016, un an après l'arrivée de la version 1.0 du langage. Rust est le principal langage qu'il a utilisé pour la blockchain stablecoin Diem (anciennement Libra), son serveur de contrôle de source Mononoke et Move, le « nouveau langage de programmation sécurisé de Meta qui sera utilisé pour la blockchain. » Le choix de Rust au lieu de C++ a été une décision importante pour Facebook, car la plupart de son code back-end était écrit en C++, ce qui en faisait un choix évident.
Facebook rejoint AWS, Huawei, Google, Microsoft et Mozilla dans la Fondation Rust et renforce son équipe Rust par des nouveaux talents"]Facebook a rejoint la Fondation Rust, l'organisation qui soutient le langage de programmation Rust. Outre l'arrivée de nouveaux talents dans son équipe Rust, Facebook a annoncé en avril 2021 qu'elle rejoignait officiellement la Fondation Rust, une organisation à but non lucratif fondé en février 2021 par AWS, Huawei, Google, Microsoft et Mozilla. « Facebook Open Source est heureux d'annoncer son soutien à la fondation Rust en qualité de membre important.
Aux côtés des autres membres de la fondation, Facebook s'engage à soutenir et à faire croître l'écosystème et la communauté open source Rust », avait indiqué Facebook sur son blog. L'adoption de Rust a pris de l'ampleur après le succès de Mononoke, attirant des ingénieurs issus de Python et de JavaScript, selon Facebook. Aujourd'hui, Rust est l'un des principaux langages côté serveur pris en charge, avec Hack, C++ et Python.
Rust est désormais recommandé pour l'écriture d'outils d'interface de ligne de commande (CLI) et de « services back-end sensibles aux performances ». Hack est préféré pour la logique commerciale et les applications « relativement sans état », tandis que Python reste « le langage de choix » pour les data science, les applications ML et Instagram. Meta prend également en charge Java, Erlang, Haskell et Go pour des cas d'utilisation spécifiques. Le groupe dit étudier soigneusement la question du support d'un nouveau langage en raison des risques qu'il comporte pour l'efficacité, la productivité et le temps des développeurs.
Elle préfère garder une liste restreinte afin de réduire le nombre de bibliothèques de base, de réduire la complexité lors de l'élaboration de fonctionnalités de sécurité et de confidentialité, d'éviter la fragmentation du langage afin de réduire le risque opérationnel, et de prendre en charge les outils de développement. L'avantage de Rust chez Facebook est qu'il interagit facilement avec son code C++ pour communiquer avec les systèmes back-end sur lesquels les services sont construits. « Nous avons besoin que les développeurs puissent utiliser ces bibliothèques en toute sécurité et facilement sans sacrifier les avantages qu'offre Rust.
Inversement, si nous voulons que les composants Rust soient intégrés à nos binaires C++ plus importants, nous avons besoin d'une interopérabilité intelligente au moment de l'exécution dans le code asynchrone. Les serveurs de Facebook sont hautement distribués et fortement threadés. Les tâches Rust doivent pouvoir s'adapter à un threadpool C++ et partager en toute sécurité les primitives de synchronisation et les ressources d'E/S », ont récemment expliqué les ingénieurs de Meta.
AWS a favorisé Rust dans son organisation pour la construction de logiciels d'infrastructure et l'encourage pour son impact réduit sur la consommation d'énergie par rapport à Python et même Java. Les services AWS construits sur Rust comprennent Firecracker, la technologie derrière sa plateforme Lamba pour les applications conteneurisées, Amazon Simple Storage Service (S3), Elastic Compute Cloud (EC2), son réseau de diffusion de contenu CloudFront, et Bottlerocket, un système d'exploitation de conteneurs basé sur Linux.
Google permet aux contributeurs du projet Android Open Source d'écrire du nouveau code Android en Rust, mais l'équipe Chrome a choisi de privilégier le langage C++ à Rust dans un avenir proche. Microsoft expérimente Rust pour Windows comme alternative à C et C++ depuis 2019, tandis que l'équipe Azure l'a adopté pour le codage dans le cloud.
Dans un post publié sur son blog le 14 avril, l’équipe de développement de Google a annoncé qu’elle participe à l'évaluation du langage Rust pour le développement du noyau Linux. Suite à cette déclaration, Linus Torvalds, ingénieur logiciel, créateur principal et développeur du noyau Linux, a déclaré lors d’une interview que des discussions sur le sujet seraient beaucoup plus importantes qu'un long post de Google sur le langage. Interrogé sur la suggestion d'un internaute qui a indiqué que, « la solution ici est simple : il suffit d'utiliser C++ au lieu de Rust », Linus Torvalds n'a pas pu se retenir et aurait même traité le C++ de « langage de m... ».
Toutefois, Rust n'est pas aussi largement utilisé que Python et Java, mais il est constamment classé comme le langage de programmation « le plus aimé » dans les enquêtes annuelles de Stack Overflow auprès des développeurs. Même les gangs de rançongiciel réécrivent leurs logiciels malveillants en Rust. Les résultats 2022 de l'enquête annuelle sur les développeurs de Stack Overflow indiquent que, Rust reste le plus apprécié, mais Clojure est le plus payant. Plus de 73 000 développeurs de plus de 180 ont répondu à l'enquête.
Pour la septième année consécutive, Rust est le langage le plus apprécié, 87 % des développeurs déclarant vouloir continuer à l'utiliser. Rust est à égalité avec Python en tant que technologie la plus recherchée (c'est-à-dire les développeurs qui ne développent pas actuellement avec le langage mais qui aimeraient le faire) avec 17,6 % des personnes interrogées qui expriment leur intérêt pour le développement avec ce langage, mais Typescript arrive en deuxième position très proche avec 17 % des personnes interrogées qui expriment leur intérêt.
Source : Meta
Et vous ?
Quel est votre avis sur le sujet ?
Quel langage de programmation utilisez-vous ?
Aimeriez-vous apprendre le langage Rust ?
Voir aussi :
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
La prise en charge de Rust pour le développement du noyau Linux fait l'objet d'une nouvelle série de discussions, après une proposition de RFC