shoot76 :
Difficile de résumer Rust en quelques lignes.
C'est un nouveau langage assez pragmatique : il réutilise que des concepts éprouvés (d'ou le nom).
C'est orienté bas niveau (pas de VM ni de Garbage collector) avec une gestion très fine de la mémoire :
donc notion de pointeur, donnée stocké sur le tas ou pile etc.
La grande spécificité de Rust c'est la notion de durée de vie : c'est assez contraignant pour le débutant mais à l'usage c'est très puissant.
Par rapport à du C/C++ : ça évite tous les erreurs de segmentation, buffer overflow et autre joyeuseté tout en garantissant des performances équivalentes.
Rust est un langage impératif avec beaucoup de fonctionnel : pattern matching, inférence de types, closures etc.
Niveau généricité, c'est plus puissant que le C# tout en détectant plus de disfonctionnement à la compilation.
Néanmoins, y'a pas de notion de paradigme objet.
Pas de notion d'exception : soit réussite soit erreur
Les variables sont toutes constantes par défaut. (immutable)
La notion de propriété nullable n'existe pas. (et ça évite une paire de soucis : je fais du C# au boulot et je révererais de ce fontionnement)
C'est Batterie include :
- UTF-8 par défaut
- s'interface très bien avec le C (binding facilité et/ou API C)
- Le deadcode provoque des warnings
- On peut rajouter des tests unitaires ou des benchmarks sans libs supplémentaires
- On peut documenter son code via des commentaires avec les balises du markdown : un outil permet de le compiler en html.
- concurent : même si il y a encore des grosses lacunes en ce sens, y'a des avantages certains par rapport à du C/C++
Pour les défauts : le langage est jeune et par conséquent les libs encore plus.
Y'a quasiment pas de doc en français.
Pas d'IDE dédié
Le compilateur est encore mal optimisé donc les temps de compil sont long.
La courbe d'apprentissage est longue et je déconseille d'attaquer Rust sans avoir des bases solides dans d'autre langages.
Voici quelques softs populaires écrit en Rust :
https://mothsart.github.io/applis-rust.html
Je pense qu'à l'avenir il y aura beaucoup de code critique (open-source) écrit en Rust : noyau, base de données, temps réels, couche réseau, moteurs de jeux etc.
Comme dis, il se veut très strict à la compilation ce qui lui donne un avantage indéniable sur le C et C++ qui sont bien trop permissif à mon sens.
Ces derniers nécessitant Gdb, Valgrind et autres astuces du pauvre pour obtenir un soft stable.
Pour ceux qui veulent un tour d'horizon rapide, je conseil
https://blog.guillaume-gomez.fr/Rust