Apprendre Rust
Apprendre Rust
Résumé :
Introduction
Le livre « Learning Rust » (en traduction française — « Apprendre Rust »), écrit par Paul Johnson et Vesa Kaihlavirta et publié en 2017 par Packt Publishing, est l'un des premiers guides pratiques sur le langage Rust sur les marchés francophone et anglophone. Sur 350 pages, les auteurs tentent d'emmener le lecteur des bases de la syntaxe à la création d'applications réelles, en mettant l'accent sur la sécurité mémoire et la concurrence — les atouts clés de Rust. Pour le site éducatif PythonLib, destiné à un large public de développeurs, ce livre est intéressant comme exemple de transition des langages de haut niveau (Python, JavaScript) vers la programmation système sans perte de performance et avec des garanties de sécurité.
De quoi parle le livre
« Learning Rust » est construit comme une introduction progressive à l'écosystème Rust. Les premiers chapitres sont consacrés à l'installation des outils, à la syntaxe de base, au système de possession (ownership), d'emprunt (borrowing) et de durées de vie (lifetimes). Ensuite, les auteurs abordent des sujets plus complexes : la programmation générique (generics), les traits (traits), la gestion des erreurs, le système de modules et les tests. Des chapitres distincts couvrent le travail avec les collections, les entrées-sorties, les macros et le FFI (Foreign Function Interface). Le livre se termine par la création d'une petite application web utilisant le framework Iron (aujourd'hui obsolète) et des exemples de programmation asynchrone.
À qui s'adresse ce livre
Le livre est destiné aux développeurs ayant déjà une expérience en programmation en C, C++, Python ou Java. Les débutants en programmation auront des difficultés : les auteurs n'expliquent pas les concepts de base (boucles, fonctions, types de données) à partir de zéro, mais passent directement aux spécificités de Rust. Cependant, pour ceux qui souhaitent apprendre la programmation système avec des approches modernes de sécurité, c'est un excellent point de départ.
Ce que le lecteur apprendra
- Les bases de la syntaxe Rust : variables, fonctions, structures de contrôle, possession et emprunt.
- Le système de types : génériques, traits, dispatch statique, durées de vie.
- La gestion de la mémoire : principes de possession, d'emprunt et de durée de vie sans ramasse-miettes.
- La gestion des erreurs : utilisation de
ResultetOption, opérateur?. - Modularité et tests : organisation du code, tests unitaires, tests de documentation.
- Concurrence : threads, canaux, mutex, partage sécurisé d'état.
- Macros : macros déclaratives et procédurales.
- Interaction avec C : FFI, appel de fonctions C depuis Rust et vice versa.
- Création d'une application web : bases du travail avec HTTP, routage, templating.
Points forts
L'un des principaux atouts du livre est son orientation pratique. Chaque chapitre contient des exemples de code exécutables immédiatement et des exercices pour consolider les connaissances. Les auteurs accordent beaucoup d'attention à l'explication du système de possession — le concept le plus difficile pour les débutants — en utilisant des schémas visuels et des analogies. Il convient également de mentionner le chapitre sur le FFI, rare dans les cours d'introduction, mais extrêmement utile pour les programmeurs système. Le livre est écrit dans un langage vivant, sans académisme excessif, ce qui facilite la compréhension.
Inconvénients
Le principal inconvénient est l'âge du livre. Rust se développe activement et, depuis 2017, le langage a subi des changements significatifs : le framework Iron est obsolète, de nouvelles fonctionnalités sont apparues (par exemple, async/await, de nombreuses bibliothèques se sont stabilisées). Certains exemples peuvent ne pas se compiler avec une version moderne du compilateur. De plus, le livre ne couvre pas des sujets importants tels que async/await, WebAssembly, la programmation embarquée (embedded) et le travail avec des crates populaires (par exemple, serde, tokio). Pour les débutants, la première partie peut être difficile.