Rust
Version débutant
![](https://media2.giphy.com/media/RVaqnLYmO79C0/giphy.gif)
Histoire
![](https://media0.giphy.com/media/bBUQPfg7l5kAM/giphy.gif)
Text
- Samsung cherchait un navigateur web capable de d'exploiter pleinement les architecture multicœur
- Le C/C++ était trop contraignant pour la gestion du
- Les autres langages trop "lents"
- Webkit est écrit en C et est sous-bassement de la plupart des navigateurs du marché
- Le développement a commencé comme side-project en 2006
- Pris en charge par la Fondation Mozilla en 2009
- Le compilateur Rust se compile lui-même à partir de 2011
- Samsung prend contact avec Mozilla en 2013
- 2020: Microsoft annonce que certaines partie de ses softs vont être transcrits en Rust
Dates clefs
![](https://everipedia-storage.s3.amazonaws.com/ProfilePicture/en/graydon-hoare__3f5731_original.webp)
Graydon Hoare
Caractéristiques
![](https://media0.giphy.com/media/j2wpZyLy2s70ul4TKo/giphy.gif)
Impératif
- Affectation
- Conditions
- Boucles
- Fonctions
- Structures
![](https://media1.giphy.com/media/8gJ28HfjAkc9y/giphy.gif)
Typage Fort
- Les types de données manipulé sont connus à la compilation
- Évite des erreurs d'inattention
- Facilite le refactoring massif
- Permet au compilateur d'aider le dévloppeur
- Types génériques
Gestion de la mémoire
- Absence de garbage collector
- Absence de désallocation manuel
- Safe en éxécution
- Immutabilité par défaut
- Concept d'ownership
![](https://media2.giphy.com/media/FPjbHO0jJxGsE/giphy.gif)
POO
POO
- Structures
- Implémentation
- Trait
- Dérivation
![](https://media1.giphy.com/media/q0eh4TU8OMXRu/giphy.gif)
La fin de NULL et les erreurs
- NULL n'existe pas
- Les exceptions n'existe pas
- Les deux sont remplacé par des énumérations
- Result pour les résultats de traitement
- Option pour les variables nullable
![](https://media1.giphy.com/media/sauYjWmJJ18xW/giphy.gif)
Pattern Matching
- Matcher des valeurs spécifiques
- Matcher en destructuration
- Matcher avec des conditions
![](https://media2.giphy.com/media/xT5LMHyyxpXGZuX36o/giphy.gif)
Tooling
![](https://media1.giphy.com/media/pWW56O5uOY1dm/giphy.gif)
Tests et lint
- Fourni avec des outils de tests unitaires
- De coverage
- De benchmark
- De lint grâce à Clippy
![](https://media2.giphy.com/media/11kz9SLHnl5dhC/giphy.gif)
Package Manager
- Cargo ( le couteau suisse )
- Crates.io
- Doc Rust ❤
![](https://media0.giphy.com/media/3ohs7LbjnQH2ZxV11m/giphy.gif)
Démo!
![](https://media2.giphy.com/media/PSxPL6jjDnpmM/giphy.gif)
Merci de m'avoir écouté 😁
![](https://media1.giphy.com/media/uk0pG8KyjJbAk/giphy.gif)
deck
By akanoa
deck
- 392