945Fermer947
UtherLe 28/05/2015 à 15:14
En fait mieux vaut commencer seulement maintenant car le langage a complètement changé depuis sa première annonce officielle. Si un regarde un code en 0.1 et 1.0, c'est difficile de deviner qu'il s'agit du même langage.
Pour ce qui est de la complexité, c'est vrai que Rust, même s'il est clairement moins complexe que le C++, n'est pas un langage visant la simplicité avant tout comme Go, Java, ...

Il nécessite de comprendre certains concepts qui sont gérés automatiquement, au prix d'une perte de contrôle des performances, dans la plupart des langages modernes. Ceci dit contrairement au C/C++ ou si on ne maitrise pas un concept on se retrouve, sans forcément s'en rendre compte, a faire du code troué niveau sécurité ou qui va planter aléatoirement, en Rust on se retrouve juste avec un code qui refuse de compiler.
Ce qui est choquant au début c'est le principe de durée de vie des variable qui fait que certains codes qui semblent anodins vont refuser de compiler, on finit par s'y faire cependant.

Pour les macros, il y a en fait 2 systèmes :
- Un simple avec une syntaxe spécifique. C'est un peu comme pour le C, mais quand même plus poussé : ça travaille sur les éléments du langage(au lieu de manipuler du texte brut) et gère l'hygiène (les variables de la macro n'interagissent pas directement avec celles du code)
- Un système plus complexe avec un module compilé en Rust qui manipule complètement l'AST. ll peut être utilisé pour faire des choses très puissantes comme pré-compiler des expressions régulières ou du SQL lors de la compilation du code Rust. Malheureusement ce type de module est encore expérimental.