Benefits of Rust

Quelques arguments de vente uniques à Rust :

  • Compile time memory safety - whole classes of memory bugs are prevented at compile time

    • Aucune variable non initialisĂ©e.
    • Pas de double libĂ©ration de mĂ©moire.
    • Aucune utilisation après la libĂ©ration.
    • Pas de pointeurs NULL.
    • Pas de mutex verrouillĂ©s oubliĂ©s.
    • Pas de courses de donnĂ©es entre les threads.
    • Aucune invalidation d’itĂ©rateur.
  • No undefined runtime behavior - what a Rust statement does is never left unspecified

    • Array access is bounds checked.
    • Integer overflow is defined (panic or wrap-around).
  • Modern language features - as expressive and ergonomic as higher-level languages

    • Enums and pattern matching.
    • Generics.
    • No overhead FFI.
    • Zero-cost abstractions.
    • Great compiler errors.
    • Built-in dependency manager.
    • Built-in support for testing.
    • Excellent Language Server Protocol support.
This slide should take about 3 minutes.

Do not spend much time here. All of these points will be covered in more depth later.

Assurez-vous de demander à la classe dans quels langages ils ont de l’expérience. Selon la réponse, vous pouvez mettre en évidence différentes fonctionnalités de Rust :

  • ExpĂ©rience avec C ou C++ : Rust Ă©limine toute une classe d’erreurs d’exĂ©cution via le vĂ©rificateur d’emprunt. On obtient des performances comme en C et C++, mais sans problèmes d’insĂ©curitĂ© de la mĂ©moire. De plus, Rust est un langage moderne avec des constructions telles que le filtrage par motif et la gestion intĂ©grĂ©e des dĂ©pendances.

  • ExpĂ©rience avec Java, Go, Python, JavaScript… : On bĂ©nĂ©ficie de la mĂŞme sĂ©curitĂ© mĂ©moire que dans ces langages, plus un sentiment de langage de haut niveau similaire. En outre on obtient des performances rapides et prĂ©visibles comme C et C++ (pas de ramassage d’ordures) ainsi que l’accès au matĂ©riel de bas niveau (si l’on en a besoin).