Select Git revision
introduction.md
Forked from
orestis.malaspin / rust-101
81 commits behind the upstream repository.

orestis.malaspin authored
introduction.md 2.51 KiB
Introduction
Avant de commencer, quelques références
La communauté Rust
Rust playground
- Pour jouer avec le langage: le Rust playground
Pourquoi Rust?
- Langage le plus aimé sur stackoverflow en:
- 2016,
- 2017,
- 2018,
- 2019,
- 2020,
- 2021,
- 2022,
- 2023,
- 2024,
Et en vrai?
- Une mascotte super mignonne
Une brève histoire du Rust
- Créé comme projet personnel par Graydon Hoare chez Mozilla en 2006.
- Financé par Mozilla dès 2010.
- Rendu public la première fois en 2012 (version 0.4).
- Orientation vers la programmation système.
- Première version stable (1.0) en 2015 (3 ans cette année).
- Stabilisation de fonctionnalités tous les 6 semaines.
- Version stable actuelle 1.71.
Concept de base
- Compilateur très pointilleux.
- Langage moderne:
- procédural et fonctionnel,
- gestion de dépendances simple,
- bonne intégration dans les IDE modernes,
- gestion des erreurs élégante.
Sûreté
- Fortement typé.
- Pas d'accès mémoire illégal (dépassement de capacité, use after free).
- La désallocation est automatique.
- Les erreurs mémoires sont donc TRÈS difficile à faire.
Concurrence
- Concurrency without fear.
- Le système de type empêche un accès concurrent à des données.
- La synchronisation des données doit être explicitement faite.
- Détection si l'accès asynchrone est sûr à la compilation.
- Protection contre les accès concurrents.
Rapidité
- Les conditions de sécurité sont gérées à la compilation (pas de coût à l'exécution).
- Abstractions à coût nul (zero cost abstractions).
God mode
- Le compilateur a des règles très strictes...
- ... mais il est possible de contourner certaines règles.
- Syntaxe spéciale pour autoriser les comportement potentiellement dangereux (
unsafe
). - Un guide pour bien vivre dangereusement https://doc.rust-lang.org/nomicon/.