
I. Les bases de la programmation en Rust
1. Présentation de Rust
Rust est un langage de programmation système, compilé et multi-paradigme. C'est un croisement entre langage impératif (C), objet (C++), fonctionnel (Ocaml) et concurrent (Erlang). Il s'inspire des recherches en théories des langages de ces dernières années et des langages de programmation les plus populaires afin d'atteindre trois objectifs : rapidité, sécurité (en mémoire notamment) et concurrent (partage des données sécurisé entre tâches).
Le développement du langage, initié par Graydon Hoare, est opéré depuis 2009 par la fondation Mozilla, ainsi que par la communauté des développeurs Rust très présente sur Github. Pour suivre ce tutoriel, il est fortement recommandé d'avoir déjà développé dans au moins un autre langage (C, C++, Java, JavaScript, Python, etc.) car je ne passerai que très brièvement sur les bases. Ses points forts sont :
- La gestion de "propriété" (ownership) des variables
- La gestion de la mémoire
- Le typage statique
- L'inférence de type
- Le filtrage par motif (pattern matching)
- La généricité
Nous reverrons tout cela plus en détails. Quelques liens utiles :
- Le site internet : rust-lang.org
- La documentation (toujours utile d'avoir ça sous la main !)
- Le dépôt Github (pour voir le code source)
- Le rustbook (le "cours" officiel, en anglais)
- Le reddit (pour poser une question)
- L'irc (pour obtenir de l'aide, en anglais). Le channel français est #rust-fr.
Il est maintenant temps de commencer.