C'est la fin de la partie gratuite... 😔
Accède à l’intégralité de la formation, à un Discord francophone actif, à des résumés écrits et à toutes les futures mises à jour pour seulement 95€ !
x
x
Rust est un langage qui a pour principales qualités :
Rust gagne en toujours plus en popularité et on le retrouve notamment :
Rust est un langage compilé, ce qui signifie que le code Rust est transformé en exécutable. Pour cela, le code doit passer par une phase de traduction appelée compilation.

Pendant cette phase, le code Rust est traduit en assembleur (un ensemble d’instructions pour ton CPU), puis transformé en fichier exécutable.
À l’inverse, les langages non compilés sont interprétés. C’est le cas de Python par exemple : le fichier Python est lu en temps réel par un programme appelé la « machine virtuelle Python », qui traduit le code Python en instructions pour ton CPU au moment de l’exécution.

Un langage interprété est souvent moins performant qu’un langage compilé, car cette étape de traduction est faite au *runtime(quand le programme tourne) et prend du temps. Avec un langage compilé, cette traduction est faite au moment de la compilation et rien n’est traduit à l’exécution.
Quand tu compiles ton code, l’exécutable généré est compatible uniquement avec une cible (target) spécifique, c’est-à-dire une combinaison de :
un système d’exploitation précis une architecture CPU précise
Prenons la target aarch64-apple-ios :
le système d’exploitation est iOS
l’architecture CPU est aarch64 (aussi appelée ARM)
Voici les architectures les plus connues :
x86_64 (amd64) utilisée sur la grande majorité des PC
ARM (aarch64) utilisée sur tous les appareils Apple et certains PC Windows
WASM (WebAssembly)
La dernière (WASM) n’est pas réellement une architecture CPU, mais c’est ce qu’il faut utiliser si tu veux exécuter ton code Rust dans un navigateur.
Le navigateur comprend les instructions WASM puis les traduit directement pour ton CPU.
Rust est réputé pour être difficile…
En réalité Rust n’est pas vraiment difficile, c’est simplement qu’on ne peut pas l’apprendre comme les autres langages.
D’habitude, on apprend un langage en plongeant directement dans le code en créant de petits projets.
Si tu fais ça avec Rust, tu risques de rencontrer un bon nombre d’erreurs qui vont te dégouter du langage.
N’essaye pas de coder un projet directement avec Rust avant d’avoir compris :
Si tu suis cette formation dans l’ordre, tu n’as aucun soucis à te faire ;)
Rust est aussi un langage à typage statique, ce qui signifie que lorsqu’une variable est déclarée en Rust, son type doit rester le même pendant toute sa durée de vie.
Par exemple, ceci n’est pas autorisé :
fn main() {
let mut a: bool = true;
a = 12; // ❌
}Ici, a contient d’abord une valeur booléenne (true), puis à la ligne suivante une valeur entière.
Ce n’est pas autorisé dans un langage à typage statique comme Rust.
a peut changer de valeur, mais cette valeur doit rester du même type.
Dans ce cas, elle doit toujours être un booléen.
Il existe deux façons de gérer la mémoire :
Le développeur alloue et libère lui-même la mémoire dont il a besoin.
C’est excellent pour les performances, mais l’inconvénient est que cette approche est sujette aux erreurs :
oublier de libérer de la mémoire libérer deux fois la même zone mémoire utiliser de la mémoire déjà libérée
Grâce à un système appelé Garbage Collector, tu n’as pas à penser à la mémoire.
La mémoire est allouée et libérée automatiquement.
C’est très pratique pour le développeur, mais moins performant qu’une gestion manuelle, car le système doit déterminer en temps réel si une valeur peut être libérée ou non.
Rust a été créé pour fournir un langage avec le même niveau de performances que les langages à gestion mémoire manuelle, sans le risque de créer des bugs ou vulnérabilités mémoire.
Il utilise une gestion de la mémoire “hybride” ou le développeur n’alloue pas lui-même la mémoire afin d’éviter des erreurs, mais grâce à des règles strictes Rust va allouer et libérer automatiquement la mémoire pour nous sans utiliser pour autant un Garbage collector.
Résultat : Les meilleures performances possibles avec les erreurs en moins.
Nous verrons en détail comment cela fonctionne plus tard.