API Hour – « De la reconversion au succès, mon parcours de freelance » : replay bientôt disponible

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