Retour aux articles

Rust - un langage sûr, performant et écoresponsable pour répondre aux enjeux des années à venir

Diana Penciuc

2024-03-24

fdsfdsf

Pourquoi Rust ?

Le langage C existe depuis longtemps et beaucoup des systèmes existants sont basés sur ce langage, mais Rust est le premier langage de programmation grand public économe et efficace, sans compromettre la sécurité.


Langage jeune et moderne, Rust permet aux développeurs d'écrire des applications informatiques diverses tel que les systèmes embarqués -y inclus critiques et temps-réel-, cybersécurité, robotique, blockchain et transactions financières, programmation des réseaux, serveurs web, administration système, composants pour des systèmes d'exploitation de type Linux ou Android etc.


Lors des journées Open-source expérience(1), événement organisé par Systematic tous les ans, plusieurs thématiques qui prennent une place croissante dans les préoccupations actuelles ont été identifiées : sécurité et sobriété numérique, numérique responsable, Secure&Green by design (penser dès la conception des logiciels, très en amont, aux aspects sécuritaires et écologiques). Ces préoccupations sont désormais au centre de la culture open-source et Rust peut y répondre parfaitement.

La performance et la sûreté de fonctionnement, des avantages clés

L'intérêt de ce langage se situe principalement dans ses caractéristiques en termes de performance et de sûreté de fonctionnement.


Concernant la performance, Rust est un langage plutôt bas niveau se compilant vers du code natif et permettant ainsi d'écrire des applications très performantes, en particulier lorsque le temps d'exécution où la latence (temps de réponse) est critique. C'est le cas par exemple d'applications systèmes embarqués (type logiciel de contrôle embarqué dans des robots/voitures/trains/avions, etc.) ou de services réseaux (infrastructure internet).


Un autre facteur différenciant pour Rust est la sûreté de fonctionnement. Aucun autre langage courant n'offre les mêmes caractéristiques, y compris avec de l'outillage supplémentaire -type analyse statique de code-. D'après Microsoft Research(2), environ 70% des vulnérabilités rapportées chaque année sur leurs produits proviennent d'erreurs de gestion de la mémoire.


Ce chiffre est globalement stable d'une année sur l'autre mais le nombre total de vulnérabilités rapportées a explosé ces dernières années. Avec un coût par vulnérabilité de l'ordre de la centaine de milliers d'euros, toujours d'après Microsoft Research(3).


Rust empêche d'emblée ce type de problème. Si l'on supposait que les produits Microsoft étaient écrits en Rust, ce serait des millions d'euros économisés chaque année.

Un enjeu d'efficacité énergétique

Compte tenu de l'explosion que nous connaissons des drones, des robots, des véhicules autonomes, de la quantité de données générées, du stockage et du traitement nécessaires aux algorithmes de l'IA et de Machine Learning, il semble peu probable que les innovations en matière d'efficacité énergétique soient, à elles seules, en mesure de suivre le rythme de la demande. Des efforts sont nécessaires à tous les niveaux, y inclus concernant la réduction de la consommation énergétique des centres de données. En 2019, Amazon Web Services (AWS) était fier de devenir un sponsor du projet Rust(4). AWS investit dans Rust, un langage qui, selon lui, devrait être utilisé pour créer des solutions durables et sécurisées. Dans le monde, les centres de données consomment environ 200 térawattheures par an. Cela représente environ 1 % de toute la consommation énergétique mondiale.


Il y a quelques années, une étude a été publiée -en anglais-(5), examinant la corrélation entre la consommation d'énergie, les performances et l'usage mémoire de plusieurs langages de programmation. C et Rust ont nettement surpassé les autres langages en termes d'efficacité énergétique. Ils étaient environ 50% plus efficaces que Java et 98% plus efficaces que Python. Ce qui est notable, c'est l'ampleur de cette différence. L'adoption généralisée de C et de Rust pourrait réduire la consommation d'énergie de calcul de 50%, même avec une estimation prudente.


Donc la question est pourquoi ne pas utiliser le C plus souvent, dès lors que ce langage et les outils de développement associés sont extrêmement matures et la taille de la communauté des développeurs est bien plus importante que pour Rust ?


La réponse la plus pertinente est portée par Linus Torvalds, le créateur du système d'exploitation Linux. M Torvalds a reconnu, lors de son discours au Open Source Summit en 2021, que l'implémentation de code en C peut être à double tranchant(6). En tant que programmeur C de longue date, il sait que « Les interactions de type subtiles du C ne sont pas toujours logiques et sont des pièges pour à peu près tout le monde ». Linus Torvalds considère Rust comme le seul langage qui pourrait être une solution. Rust offre l'efficacité énergétique de C tout en fournissant la simplicité des langages modernes et en évitant le risque de comportement imprédictible : “Nous pouvons ainsi réduire de moitié la consommation d'énergie sans perdre les avantages de la sécurité des accès mémoire”.

Un outillage de dernière génération facilitant l'adoption rapide dans l'écosystème

Le langage de programmation Rust s'appuie sur des décennies d'expérience dans les langages de programmation système et intègre de nouveaux outils d'analyse statique de la mémoire jusque dans sa syntaxe (durée de vie, vérificateur d'emprunts) afin d'éliminer toute une catégorie de bogues (bugs) liés à la mémoire et à la concurrence dès la compilation


Il offre une expérience de développement moderne intégrée, prête à l'emploi : gestionnaire de compilation et de paquets intégré, générateurs de documents, etc. Les caractéristiques des langages modernes (telles que le sum type, le pattern matching et les macros hygiéniques) offriront une forte augmentation de la productivité par rapport aux outils centrés sur le C et aux flux de travail/workflow actuels de l'entreprise.”

Rust dans l'industrie

En 2020, AWS s'est associé à Google, Huawei, Microsoft et Mozilla pour créer la Rust Foundation(9), avec pour mission de soutenir le développement du langage.


Côté français/Européen, les industriels ne s'y trompent d'ailleurs pas. Dans le secteur des systèmes embarqués, comprenant les systèmes critiques -pour la sécurité de leurs utilisateurs, type véhicule-, Rust suscite un engouement ces dernières années : Alstom dans le ferroviaire, Renault dans l'automobile, Thalès dans l'aéronautique et la défense, Airbus pour les satellites. Le fournisseur du cloud OVH utilise le langage Rust pour la création de services hautes performances.


Tous cherchent à monter en compétence pour utiliser Rust plutôt qu'un autre langage sur leurs nouveaux projets, voire à réécrire du code existant en Rust.

Etes-vous prêts pour Rust ? Répondez à notre questionnaire !

Le langage Rust monte en popularité chaque année, par sa performance, la sécurité et la faible empreinte carbone qu'il apporte. Et vous, y avez-vous pensé ? La communauté rustacéenne française lance sa première enquête sur l'utilisation du langage dans les entreprises de l'hexagone. Ce questionnaire prendra environ 5 minutes. Merci pour votre participation !

Utilisation du langage Rust dans l'industrie - répondez à notre questionnaire



(1) https://www.opensource-experience.com/programme/thematiques-2023/


(2) https://github.com/microsoft/MSRC-Security-Research/blob/master/presentations/2019_02_BlueHatIL/2019_01%20-%20BlueHatIL%20-%20Trends%2C%20challenge%2C%20and%20shifts%20in%20software%20vulnerability%20mitigation.pdf


(3) https://github.com/microsoft/MSRC-Security-Research/blob/master/presentations/2019_11_RustFest/RustFestEU19_REvolution_Keynote.pdf


(4) https://aws.amazon.com/fr/blogs/france/la-programmation-durable-avec-rust/?utm_source=pocket_saves


(5) https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf


(6) https://thenewstack.io/linus-torvalds-on-community-rust-and-linuxs-longevity/


(7) https://www.lemondeinformatique.fr/actualites/lire-rust-langage-le-plus-prise-des-developpeurs-90841.html


(8) https://github.blog/2023-11-08-the-state-of-open-source-and-ai/


(9) https://foundation.rust-lang.org/

Retour aux articles