D'abord Rust a une sécurité accru grâce à sa meilleure gestion de la mémoire. Le compilateur s'assure que les références aux données stockées en mémoire ne dépassent pas les limites. Rust n'utilise pas de Garbage Collector, qui eux peuvent causer plusieurs problèmes comme la fuite de mémoire qui peuvent causer des crash.
Rust a aussi des bénéfices aux programmeurs. Un gestionnaire de plugins (Cargo) est implémenté pour simplifier et s'assurer que les bonnes dépendances sont installées pour offrir un environnement de développement plus robuste. Rust est le premier langage système avec un gestionnaire de plugins. Ce langage est aussi d'une simplicité qui rend son usage plus agréable. Même si ce langage a été conçu pour être de bas niveau, plusieurs fonctionnalités d'abstraction ont été ajoutées sans augmenter le temps d'exécution du code. Cette augmentation de la complexité du code du côté machine apporte du temps supplémentaire et ce temps a été déplacé à la compilation tandis que beaucoup d'autres langages sont conçus pour mettre ce temps supplémentaire à l'exécution. Grâce à ces abstractions dans le code, Rust est plus facile à écrire et à maintenir.
Section Code
D'abord, Rust permet de référencer une donnée en mémoire. Cela différencie d'une affectation de donnée d'autres langages ou la valeur de la variable « chiffre » serait donnée à « a ». Une référence est un pointeur en mémoire de l'emplacement de la valeur stocké. Rust permet de référencer la valeur de la variable « chiffre » à la variable « a » avec le préfixe « &mut ».
let chiffre = 8;
let a = &mut chiffre;
Un cas où Rust gère mieux la mémoire est par la conception de « Ownership » et de « Borrowing ». Seulement une variable peut accéder à une donnée en mémoire pour un temps donné. Le code suivant ne compilera pas puisque le pointeur de la variable « chiffre » est déjà attribué à la variable « a ». La variable « chiffre » ne contient rien et donc « b » ne peut pas se faire n’attribuer rien.
let chiffre = 8;
let a = &mut chiffre;
let b = &mut chiffre;
De plus, Rust n'a pas la conception de « Null » ce qui enlève la possibilité d'avoir la fameuse erreur « Null Pointer Exception ». Une des façons que Rust arrive a contourner ce besoin est l'utilisation de « Option » qui va retourner « Some » ou « None ».
fn verifier_division(dividend: i32, diviseur: i32) -> Option<i32> {
if diviseur == 0 {
// L'impossibilité est représentée par 'None'
None
} else {
// Le résultat est entouré (wrapped) dans un 'Some'
Some(dividend / divisor)
}
}
Notez qu'il n'est pas nécessaire de mettre « return » pour indiquer la valeur à retourner à la fin d'une fonction puisque la dernière valeur est retournée par défaut.
Pour plus d'information
- Documentation Rust
- Site web officiel de Rust
- Une console Rust pour se pratiquer
Sources:
Romain , Juillet. “Qu’est-Ce Que Rust et Pourquoi Est-Il Aussi Populaire ?” Bocasay, 15 Sept. 2022, https://www.bocasay.com/fr/decouvrir-langage-rust/
“Programmer En Langage Rust : Présentation de Ce Langage de Programmation Moderne.” IONOS Digital Guide, IONOS, 16 Sept. 2020, https://www.ionos.fr/digitalguide/sites-internet/developpement-web/rust-langage-de-programmation/
Commentaires2
Très intéressant
Ton article est très intéressant! Je ne savais pas que Rust avait un gestionnaire de plugin, cela me semble fort pratique pour avoir un bon environnement de travail. Ce langage me semble puissant, utile et simple à apprendre! J'ai hâte de voir ton prochain article pour en apprendre davantage.
Bonjour Julien, J'ai hâte de…
Bonjour Julien,
J'ai hâte de voir les prochains articles, Rust m'intéresse beaucoup.
Je sais que la question que je pose est un peu hors sujet, mais peux-tu élaborer un peu sur le Garbage Collector dans les prochains articles? Ça me donnerai une meilleure compréhension sur la façon dont ce langage fonctionne.