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).