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
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.
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.
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 !