Retour aux articles
  • 17.05.2021

Qu’est ce que Rust et pourquoi l’utiliser ?

Qu’est ce que Rust et pourquoi l’utiliser ?

Qu'est-ce que Rust ?

Introduit en 2010, Rust a été créé par Mozilla Research comme une alternative plus fiable et plus sûre au C++. Rust est un langage de programmation statique multiparadigme, économe en mémoire, axé sur la vitesse, la sécurité et les performances. Il est utilisé pour développer des moteurs de jeux, des systèmes de fichiers, des sites web et des outils, des systèmes d'exploitation, des composants de navigateurs, et bien plus encore. La fondation Rust, une organisation indépendante, gère désormais la base de code open source.

Rust résout des problèmes avec lesquels le C/C++ se débat depuis longtemps, comme les erreurs de mémoire et la construction de programmes concurrents.

Quels sont les principaux avantages de Rust ?

Rust : Une meilleure sécurité de la mémoire grâce au compilateur

Pour faire de la programmation système, on a besoin du contrôle de bas niveau que fournit la gestion de la mémoire. Malheureusement, la gestion manuelle s'accompagne de nombreux problèmes dans des langages comme le C. Malgré la présence d'outils comme Valgrind, il est difficile de détecter les problèmes de gestion de la mémoire.

Rust prévient ces problèmes. Le système de propriété de Rust analyse la gestion de la mémoire du programme au moment de la compilation, s'assurant que les bogues liés à une mauvaise gestion de la mémoire ne peuvent pas se produire et que le garbage collection est inutile.

En outre, pour réaliser des implémentations super-optimisées à la manière du C, il est possible de le faire tout en les séparant expressément du reste du code grâce au mot-clé unsafe.

Rust : Une concurrence plus facile 

Grâce au vérificateur d'emprunts, Rust peut empêcher les courses de données au moment de la compilation.

Les courses de données se produisent lorsque deux threads accèdent à la même mémoire en même temps, et elles peuvent conduire à des comportements désagréables et imprévisibles. Heureusement, la prévention des comportements indéfinis est l'essence même de Rust.

Rust : Abstractions à coût zéro

Les abstractions à coût zéro garantissent que les abstractions que utilisés n'entraînent pratiquement aucune surcharge au moment de l'exécution. En d'autres termes, il n'y a pas de différence de vitesse entre un code de bas niveau et un code écrit avec des abstractions.

Pourquoi utiliser Rust ?

  • Rust a une excellente documentation
  • Rust possède un compilateur très convivial, comprenant des outils de premier ordre tels que des gestionnaires de paquets intégrés et un éditeur multiple
  • L'outillage de Rust possède des caractéristiques de haut niveau comme l'inspection des types et l'autocomplétion
  • Rust est rapide, il évite les plantages et il est sûr par défaut.
  • Rust évite les erreurs de mémoire et la création de programmes concurrents

Qu'est-ce qui rend Rust différent ?

Contrairement à d'autres langages de programmation, Rust a été construit à partir de zéro, et il intègre des éléments et des découvertes provenant de langages de programmation de systèmes de haut niveau et de la conception de langages de programmation modernes.

En tant que projet open source, Rust dispose de développeurs qui ont optimisé et simplifié l'expérience utilisateur. Par exemple, le compilateur génère des messages d'erreur très précis et particulièrement instructifs pour aider les utilisateurs, il met même en évidence le code fautif et recommande également la manière de le corriger.

Rust dispose d'un outil puissant d'interface en ligne de commande ; c'est un excellent outil pour développer des applications web et également des applications multiplateformes. Rust est parfaitement adapté aux environnements à faibles ressources. Pour les environnements de développement les plus populaires, il existe des plugins Rust, tels que Visual Studio Code de Microsoft, IntelliJ de JetBrains et Rust Playground, qui fournissent un environnement en ligne riche en Rust pour l'expérimentation du code.

La communauté Rust fournit également une documentation complète et une aide en ligne immédiate. Contrairement à de nombreux autres langages de programmation, pour lesquels il faut utiliser plusieurs compilateurs, Rust peut être utilisé facilement grâce à un seul outil, appelé Cargo, qui compile le code, exécute des tests, génère de la documentation, télécharge un paquet vers un dépôt et bien plus encore.

Qu’est ce que Cargo pour Rust ?

Rust dispose d'un système de construction et d'un gestionnaire de paquets appelé Cargo. Cargo gère de nombreuses tâches, comme la construction du code, le téléchargement des bibliothèques dont le code dépend et la construction de ces bibliothèques.

Les programmes simples et petits en Rust n'auront aucune dépendance. Mais lorsqu’on commence à écrire des programmes plus complexes avec Rust, il devient nécessaire d'ajouter et de gérer des dépendances, c'est là que Cargo devient pratique. Les paquets dans Rust sont souvent appelés "crates" dans la communauté Rust.

Lorsqu’on utilise Cargo, il recherche et trouve la version exacte et télécharge la source, en s'assurant que tous les autres crates nécessaires sont téléchargés.

Cargo est reconnu comme l'une des forces exceptionnelles de l'écosystème Rust. Sans Cargo, il faudrait rechercher des bibliothèques, télécharger ces bibliothèques à partir de sources inconnues sur GitHub, construire en tant que crates de bibliothèques statiques, les lier au programme.