Prochain Live dĂ©couverte TSSR et AIS : jeudi 5 septembre Ă  12h (je m’inscris)

Le langage de programmation Rust est partout !

2024-06-28
le langage de programmation rust est partout

Le langage de programmation Rust est de plus en plus populaire et touche de plus en plus de domaines. Le langage, lancĂ© en version 1.0 en 2015 par Mozilla, est aujourd’hui en vogue dans de nombreuses entreprises et a notamment bĂ©nĂ©ficiĂ© d’un soutien financier important par Microsoft. Rust fait aujourd’hui partie du Kernel de Linux, et est utilisĂ© en production par de nombreux acteurs qui citent rĂ©guliĂšrement les bĂ©nĂ©fices d’avoir intĂ©grĂ© ce langage Ă  leur base de code. Et de mon cĂŽtĂ©, je comprends la hype ; le langage est agrĂ©able Ă  utiliser, il impose des conventions qui permettent aux dĂ©veloppeurs de tous travailler de la mĂȘme maniĂšre, il permet de limiter les bugs et amĂ©liore les performances. Je suis peut-ĂȘtre aveuglĂ©, mais je ne vois pas ce qui pourrait stopper la progression de Rust !

Les premiers domaines approchés par Rust

servo rust oclock

Servo est un des premiers projets web initiés sur Rust

DĂ©s 2016, le langage de programmation Rust a Ă©tĂ© attirĂ© par le web. Il a directement Ă©tĂ© choisi pour un projet nommĂ© “Servo”, un moteur de rendu web qui Ă©tait destinĂ© Ă  amĂ©liorer les performances des navigateurs web. Pas trĂšs Ă©tonnant, Ă©tant donnĂ© que le langage a Ă©tĂ© lancĂ© par la branche recherche de Mozilla. Pour la petite histoire, Servo est un peu tombĂ© dans l’oubli au dĂ©but des annĂ©es 2020 Ă  la suite de licenciements, mais il est revenu rĂ©cemment sur le devant de la scĂšne avec la volontĂ© de proposer un nouveau navigateur web bĂ©nĂ©ficiant des avantages de Rust. On peut d’ailleurs le tester sur le site de Servo (ça reste assez expĂ©rimental).

Par la suite, ce sont bien sĂ»r les dĂ©veloppeurs de logiciels systĂšmes qui ont approchĂ© le langage, naturellement intĂ©ressĂ©s par la gestion de la mĂ©moire de Rust qui promettait moins de bugs. Et par la mĂȘme occasion, ce sont les domaines de l’IoT (Internet of Things) et des systĂšmes embarquĂ©s qui se sont lancĂ©s dans l’aventure. Rust est en effet particuliĂšrement intĂ©ressant sur ces secteurs car il est trĂšs lĂ©ger, performant et lĂ  encore, permet de se prĂ©munir de beaucoup d’erreurs humaines.

Jusqu’en 2020, ce sont ces domaines qui ont prĂ©dominĂ©, avec notamment cĂŽtĂ© web l’émergence de frameworks web tels que Actix et Rocket, qui ont rendu le dĂ©veloppement web avec Rust plus attrayant.

La confirmation et l’élargissement du langage de programmation Rust

Jusque vers les annĂ©es 2020, Rust Ă©tait encore pas mal questionnĂ© ; ce qui est plutĂŽt normal pour un langage aussi jeune. Il y a plein d’exemples de nouveaux langages qui n’ont pas percĂ© et qui ont Ă©tĂ© abandonnĂ©s au bout de quelques annĂ©es. Il est donc logique d’observer sur les premiĂšres annĂ©es de Rust une certaine rĂ©ticence Ă  son adoption. Cependant, les barriĂšres sont vite brisĂ©es avec Microsoft qui commence le premier Ă  utiliser officiellement Rust dans ses logiciels.

Pendant ce temps, Rust continuait sa croissance et atteignait les bases de donnĂ©es, avec par exemple l’émergence de TiKV ou plus rĂ©cemment SurrealDB, puis les services cloud. On sait d’ailleurs qu’Amazon Web Services s’est rapidement appropriĂ© Rust.

surrealdb oclock

SurrealDB, un projet Rust qui promet de rĂ©volutionner l’univers des bases de donnĂ©es

DĂ©jĂ  bien testĂ© dans les domaines prĂ©citĂ©s, Rust gagne en confiance et se voit intĂ©grĂ© dans des environnements critiques tels que l’automobile ou l’aĂ©rospatiale. Il Ă©merge Ă©galement dans les milieux de la finance et le trading, car il fait gagner de prĂ©cieuses secondes sur tous les transferts.

À partir de 2023, il prend rapidement en charge l’IA et le machine learning, puis commence son ascension dans le domaine du jeu vidĂ©o, avec notamment l’émergence de Bevy.

Les axes de progression de Rust

Bien qu’il ait Ă©tĂ© adoptĂ© dans de nombreux domaines, Rust a encore quelques progrĂšs Ă  faire avant de pouvoir se vanter d’ĂȘtre universel.

En web cĂŽtĂ© client, Rust a encore le mastodonte JavaScript qui se dresse devant lui. Pourtant, il y a de nombreuses alternatives avec des frameworks comme Yew, Dioxus ou Leptos. Mais l’écosystĂšme de ces frameworks Ă©tant encore assez jeune, il est encore parfois difficile de mettre en place des interfaces similaires Ă  celles que l’on peut retrouver en React par exemple. Cela est intimement liĂ© aux progrĂšs faits du cĂŽtĂ© de WebAssembly, qui a pour but de faciliter l’accĂšs au JavaScript depuis d’autres langages (dont Rust).

CĂŽtĂ© interfaces graphiques, Rust est encore Ă  la traĂźne. Il ne dispose pas de librairie assez mature pour gĂ©nĂ©rer des interfaces logicielles intuitives et ergonomiques. C’est un gros frein pour le langage, mĂȘme si cela peut ĂȘtre contournĂ© grĂące Ă  des solutions telles que Tauri, comparable Ă  Electron cĂŽtĂ© JS.

demo egui oclock

egui est probablement la librairie GUI la plus avancĂ©e Ă  l’heure actuelle. On est d’accord que ce n’est pas encore incroyable.

En dĂ©veloppement mobile Ă©galement, Rust a du travail. Il subit une forte concurrence de la part de langages tels que Kotlin ou Swift, et l’écosystĂšme Rust n’est pas encore prĂȘt Ă  rivaliser.

Enfin, Rust est trĂšs peu utilisĂ© dans le scripting ou l’automatisation, car son cĂŽtĂ© verbeux et sa lenteur de compilation rendent son utilisation difficile et peu recommandable pour de petites tĂąches rapides.

Quel avenir peut-on imaginer Ă  Rust ?

Dans les prochaines années, plusieurs tendances se dessinent et ces domaines vont sans doute se reposer de plus en plus sur Rust :

      • les infrastructures critiques : l’aĂ©rospatial, l’automobile et les systĂšmes financiers ont tout intĂ©rĂȘt Ă  se pencher sur Rust, ces domaines nĂ©cessitant une haute sĂ©curitĂ© et ayant une faible tolĂ©rance aux erreurs.

      • les systĂšmes embarquĂ©s et l’IoT : le langage de programmation Rust a dĂ©jĂ  fait ses preuves dans ces domaines, il n’y a pas de raisons que cela ne continue pas !

      • Le cloud, la Big Data : Rust a montrĂ© qu’il gĂšre trĂšs bien les charges de travail distribuĂ©es, et sait rester performant dans des situations complexes.

    En rĂ©sumĂ©, Rust semble ĂȘtre prometteur sur des domaines qui sont assez critiques et pourrait permettre de fluidifier certaines opĂ©rations, que ce soit du lancement d’une fusĂ©e, jusqu’à des transferts de fonds, en passant par la conduite autonome. Les atouts de Rust que sont la fiabilitĂ©, la sĂ©curitĂ© et la performance, permettront aux ingĂ©nieurs de se lancer en confiance dans des projets complexes (n’hĂ©sitez pas Ă  consulter notre tuto pour installer Rust pour vous lancez). Dans les domaines que l’on peut juger moins critiques, tels que les interfaces utilisateur, le mobile ou l’automatisation, Rust a encore des progrĂšs Ă  faire mais en soi, le langage n’a pas vraiment de limites. Si vous ne l’avez pas encore adoptĂ©, il serait bon d’y songer, votre carriĂšre pourrait vous remercier !