
Au doigt et à l'œil
> Le 4 avril 2025, l'équipe de création du langage Rust nous propose de participer à un sondage pour contribuer à l'élaboration de la direction du langage Rust pour 2025. La première question du sondage m'a donné envie de partager une rétrospective de ma découverte de Rust.
#2017 : Échec
J'ai d'abord utilisé Rust lors d'un hackathon (petite API backend en HTTP pour traiter des images et créer des vidéos), sans aucune préparation (sans lire le Rust Book, sans connaître les concepts). Ce fut un échec car nous sommes retournés à Java tout de suite. L'intégration avec l'IDE était très pauvre (JetBrains) comparé à mon habitude avec Java à l'époque. Nous avons beaucoup aimé pouvoir compiler un exécutable Windows depuis Linux très facilement. J'ai été perdu dans tous les types de la lib standard et du côté assez austère de la documentation de l'API std.
Conclusion : je sais que ce langage peut me plaire mais je me dis que le tooling n'est pas encore prêt.
#2022 : Apprentissage solo
En 2022, je me dis que le langage est plus mature, je suis attiré par sa promesse : performance, ergonomie. À l'époque, on commence à en entendre plus parler sur les réseaux. J'espère trouver dans ce langage tout ce qu'il me manque dans le C# à l'époque : des types qui ne permettent pas de faire les erreurs du passé, des syntaxes permettant de définir des types clairs et parlants, et d'exploiter les principes d'exhaustivité de la programmation fonctionnelle. Éliminer définitivement les problèmes de gestion d'héritages. En gros, me permettre de modéliser de manière claire et sûre.
Je prends un plaisir monstre à comprendre les principes en lisant le livre.
#2023 : Apprentissage en groupe
Nous avons l'idée de créer un meetup "Les crustacés lozériennes" pour permettre à tous les développeurs autour de moi de découvrir les principes du langage, et de se perfectionner avec les fondamentaux des langages informatiques.
Le groupe continue encore en 2025, nous nous réunissons chaque semaine. J'ai lu le Rust Book trois fois. L'apprentissage en groupe est très riche et nous prenons le temps d'explorer et de comprendre tous les aspects en profondeur. Le Rust Book est un excellent livre pour apprendre le langage Rust, très didactique. Cela permet au groupe de n'avoir qu'à "suivre" le bouquin et de prendre beaucoup de plaisir.
#2024/2025 : Projets Rust en production
CLI
pour gérer la partie DevOps de l'entreprise Synergee (basé sur la robustesse et la sécurité de Rust)- Projet
Jamin
(SaaS pour l'aide à la programmation de festivals de cinéma, musique…) : CLI et API backend - Divers side projects, notamment un jeu avec Bevy
- Contributions open source : rio, bar
- Rencontre avec une communauté pleine d'énergie au Rust Lab 2024 à Florence. 😉 Serhiy Barhamon
#Retour sur l'utilisation personnelle de Rust
Étonnamment fluide et satisfaisante (malgré quelques apprentissages nécessaires) :
- Sensation d'écrire du code qui "fait ce qu'il dit". Du code explicite et sans magie (noire) ⇒ ça fait du bien.
- Créer en Rust est étonnamment fluide.
- Parfois des erreurs de compilation "obscures" viennent casser le rythme. Une fois qu'on a compris, ça redevient très fluide. Il s'agit d'erreurs complexes qui sont souvent liées à des traits non implémentés. Par exemple avec les systèmes Bevy ou les handlers Axum, notamment avec le trait
Send
. - IDE et tooling très agréables (Rust Rover ou Zed). Pour le reste, Cargo et Rustfmt sont un soulagement. Peut-être que le debug et le profiling peuvent être améliorés.
- Sensation de construire un programme qui fait exactement ce que l'on veut de la manière la plus directe et performante possible.
- Il est très facile et très rapide ensuite de corriger des bugs et faire des évolutions de code sur mes projets Rust.
- La sensation que quand ça compile ça roule. Des applis qui répondent au doigt et à l'œil 🙏
#Côté négatif
- Il est très important de parfaire son style de code en Rust pour avoir du code lisible par tous les programmeurs (sans complexité qui fait peur). Je pense notamment au bon découpage des fonctions pour éviter l'imbrication en profondeur trop importante.
- Je regrette cependant de ne pas pouvoir faire du retour prématuré dans les fonctions en éliminant les cas de types. Cela permet vraiment de rendre le code lisible. Cette pratique me vient du TypeScript. Je regrette qu'en Rust ce ne soit pas possible.
- La lenteur de la compilation. Même si la compilation incrémentale permet de nous sauver la vie.
- Un debugger qui permet d'avoir l'abstraction de la partie asynchrone (debugger et profiler).
#2025 : Conclusions et objectifs
- Envie de faire grandir et de faire connaître le groupe Crustacés Lozériennes
- Envie d'écrire plus de Rust
- Envie de retourner dans une conférence Rust
Et vous, quelle a été votre expérience avec Rust ?
Si vous souhaitez collaborer sur des projets Rust ou discuter de développement logiciel, n'hésitez pas à me contacter : augustin.gjini@pm.me