Rust

Version débutant

Histoire

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

Graydon Hoare

Caractéristiques

Impératif

  • Affectation
  • Conditions
  • Boucles
  • Fonctions
  • Structures

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

POO

POO

  • Structures
  • Implémentation
  • Trait
  • Dérivation

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

Pattern Matching

  • Matcher des valeurs spécifiques
  • Matcher en destructuration
  • Matcher avec des conditions

Tooling

Tests et lint

  • Fourni avec des outils de tests unitaires
  • De coverage
  • De benchmark
  • De lint grâce à Clippy

Package Manager

  • Cargo ( le couteau suisse )
  • Crates.io
  • Doc Rust ❤

Démo!

Merci de m'avoir écouté 😁

deck

By akanoa

deck

  • 428