Facebook veut généraliser le langage de programmation Rust

Facebook veut généraliser le langage de programmation Rust

Facebook a rejoint la Rust Foundation, l’organisation qui soutient le langage de programmation Rust, aux côtés d’Amazon Web Services, Google, Huawei, Microsoft et Mozilla.

Facebook est le dernier géant de la technologie à accélérer son adoption de Rust, un langage initialement développé par Mozilla. Il est devenu populaire pour la programmation de systèmes en raison de ses garanties de sécurité de la mémoire par rapport aux langages rapides C et C++. Rust est attrayant pour l’écriture de composants comme les pilotes et les compilateurs.

La fondation Rust a été créée en février avec le soutien initial d’Amazon Web Services, de Google, de Huawei, de Microsoft et de Mozilla. Microsoft explore Rust pour certains composants de Windows et Azure, tandis que Google utilise Rust pour construire de nouvelles parties du système d’exploitation Android et soutenir un effort visant à intégrer Rust au noyau Linux.

publicité

Facebook a adopté Rust depuis 2016

L’équipe d’ingénieurs de Facebook indique avoir commencé à utiliser Rust en 2016, un an après que Rust a atteint son étape 1.0. « Pour les développeurs, Rust offre les performances de langages plus anciens comme C++ avec un accent plus lourd sur la sécurité du code. Aujourd’hui, il y a des centaines de développeurs chez Facebook qui écrivent des millions de lignes de code Rust », explique l’équipe de génie logiciel de Facebook.

Facebook a rejoint la Fondation Rust au plus haut niveau, aux côtés de ses pairs géants de la technologie, ce qui lui donne une place au conseil d’administration de la fondation.

« Facebook a adopté Rust depuis 2016 et l’utilise dans tous les aspects du développement, du contrôle de la source aux compilateurs », indique Joel Marcey, responsable de l’écosystème Open Source chez Facebook, et désormais directeur du conseil d’administration de la Rust Foundation. « Nous rejoignons la Rust Foundation pour contribuer à l’amélioration et à la croissance de ce langage qui est devenu si précieux pour nous et les développeurs du monde entier. Nous sommes impatients de participer avec les autres membres de la fondation et la communauté Rust pour faire de Rust un langage courant de choix pour la programmation de systèmes et au-delà. »

La blockchain Diem principalement écrite en Rust

Facebook a utilisé Rust dans un certain nombre de projets, notamment son projet controversé de cryptomonnaie et de blockchain Libra, qui est maintenant régi par l’association Diem. Facebook n’est plus qu’un membre principal de cette association, via son porte-monnaie numérique Novi. Facebook note que la blockchain Diem est principalement écrite en Rust.

Auparavant, Facebook s’était tourné vers Rust pour Mononoke, un serveur de contrôle des sources, dans un projet de 2016. « Développer Mononoke en C++ était le choix évident au départ. A l’époque, la base de code back-end de Facebook était très lourde en C++, ce qui signifie que Mononoke aurait été implémenté en C++ par défaut », notent les ingénieurs de Facebook.

« Mais l’équipe de contrôle des sources devait tenir compte des besoins de fiabilité du back-end de contrôle des sources. Lorsque la corruption ou les temps d’arrêt peuvent potentiellement entraîner l’arrêt des services, la fiabilité est une priorité absolue. C’est pourquoi l’équipe a choisi d’opter pour Rust plutôt que C++. »

Adopter Rust était une décision importante et risquée en raison du temps nécessaire à l’apprentissage d’un nouveau langage et du temps déjà investi dans des projets écrits dans un autre langage, comme l’a expliqué Jeremy Fitzhardinge, ingénieur logiciel chez Facebook, lors d’un exposé à la RustConf 2019.

Une équipe Rust créée en 2020

Après avoir prouvé la réussite de la transition vers Rust pour Mononoke, l’intérêt des développeurs au sein de Facebook s’est accru. Facebook note qu’un grand nombre d’ingénieurs attirés par Rust provenaient de milieux Python et JavaScript. C’est remarquable, étant donné que ce sont les deux langages de programmation les plus populaires. Python est populaire pour le machine learning et le développement de systèmes back-end, tandis que JavaScript régit les systèmes frontaux web.

« Ils ont apprécié la combinaison de Rust, qui allie hautes performances et détection des erreurs à la compilation. Au fur et à mesure que des exemples de réussite, comme des améliorations de performances de deux à quatre ordres de grandeur, circulaient au sein de l’entreprise, l’intérêt s’est accru pour l’utilisation de Rust pour le code des services back-end et l’exploration de son utilisation dans les applications mobiles également », note Facebook.

En 2020, Facebook a créé une équipe Rust au sein de son unité “Langages de programmation”, qui est également responsable de son travail sur les normes et les chaînes d’outils C++. Cette équipe s’est concentrée sur les chaînes d’outils Rust, les révisions de code du compilateur Rust et la garantie de l’interopérabilité de Rust avec le code C++. « Nous avons une grande quantité de code C++ qui est nécessaire 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 à partir de Rust sans sacrifier les avantages qu’offre Rust », explique Facebook.

« 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 un code asynchrone. Les serveurs de Facebook sont hautement distribués et fortement threadés. Les tâches Rust doivent s’adapter au pool de threads C++ et partager en toute sécurité les primitives de synchronisation et les ressources d’entrée/sortie. »

Cette équipe a également soutenu et adopté rapidement les coroutines de C++20, la norme C++ finalisée par le groupe de travail 21 (WG21) en septembre. « L’introduction de Rust dans le jeu sera une extension de cela et s’appuiera sur l’excellent travail déjà réalisé dans la pile de bibliothèques asynchrones de Rust. »

Source : ZDNet.com

Leave a Reply

Discover more from Ultimatepocket

Subscribe now to keep reading and get access to the full archive.

Continue reading