
deux mots-clés ont été ajoutés, async et await pour faciliter l'écriture de code asynchrone
Rust est un langage de programmation compilé multi-paradigme conçu et développé par Mozilla Research. Il a été conçu pour être « un langage sécurisé, concurrent, pratique », supportant les styles de programmation purement fonctionnel, modèle d'acteur, procédural, ainsi qu'orienté objet sous certains aspects. C'est un langage statiquement typé initialement conçu par Graydon Hoare en 2006 dont le développement est désormais soutenu par Mozilla Research. Ses maîtres mots sont : sécurité, concurrence, rapidité et le doit en partie à son backend LLVM qui offre de nombreux outils destinés à l’optimisation des instructions. La philosophie du langage est de fournir au développeur les outils pour écrire des programmes dont l’intégrité est plus difficilement mise en péril (p. ex. mauvaise gestion de la mémoire, de la fermeture des flux) qu’avec un autre langage qui ne se soucie pas forcément de ses problématiques dans sa conception, tout en s’efforçant d’entretenir une rapidité d’exécution redoutable.
L'équipe Rust annonce une nouvelle version de Rust, la version 1.31.0 et "Rust 2018". La sortie de Rust 1.31.0 ce 6 décembre est la première parution de "Rust 2018" qui marque l'aboutissement des trois dernières années du développement de Rust. il peut être difficile d'expliquer exactement ce qu'est Rust 2018. Certaines personnes y voient une nouvelle version du langage, mais pas vraiment. Car, cela ne fonctionne pas comme le versioning dans d'autres langues. Dans la plupart des autres langues, lorsqu'une nouvelle version du langage apparaît, toutes les nouvelles fonctionnalités sont ajoutées à cette nouvelle version. Les éditions Rust sont différentes. C'est à cause de la façon dont la langage évolue. Presque toutes les nouvelles fonctionnalités sont compatibles à 100 % avec Rust en l'état. Ils ne nécessitent pas de changements majeur. Cela signifie qu'il n'y a aucune raison de les limiter au code Rust 2018. Les nouvelles versions du compilateur continueront à prendre en charge le « mode Rust 2015 ».
Deux nouveaux concepts ont été ajoutés. Il s'agit de async et await. Au début, Rust n'avait pas prévu ces concepts. Ils facilitent l'écriture de code asynchrone sans que le code ne devienne trop lourd. Pour permettre d'ajouter cette fonctionnalité, il faut ajouter à la fois async et await comme mots clés. Pour ne pas rendre l'ancien code invalide (un code qui aurait pu utiliser les mots async ou en await en tant que noms de variables), l'équipe a ajouté ces mots-clés dans Rust 2018. Bien que la fonctionnalité ne soit pas encore disponible, les mots-clés sont maintenant réservés. Tous les changements décisifs nécessaires pour les trois prochaines années de développement (comme l’ajout de nouveaux mots-clés) sont effectués en une fois dans Rust 1.31. Ces changements dans Rust 2018 ne signifie pas que votre code va boguer. Votre code continuera à compiler même s’il a async ou en await en tant que nom de variable. Sauf indication contraire de votre part, le compilateur considère que vous souhaitez que votre code soit compilé de la même manière comme auparavant.
Une fois que Rust 2018 sera disponible, il aura presque le même aspect que Rust 2015. La plupart des modifications se produiront à la fois dans Rust 2018 et dans Rust 2015. Seules les quelques fonctions nécessitant des modifications importantes ne seront pas récupérées. Rust 2018 ne concerne cependant pas que des modifications du langage principale. Rust 2018 vise à rendre les développeurs de Rust plus productifs. Beaucoup de gains de productivité viennent de choses qui ne sont pas dans le langage principale comme l'outillage par exemple. L'équipe en charge du développement s'est également concentrer sur des cas d'utilisation spécifiques pour déterminer comment Rust peut être le langage le plus productif. Vous pouvez donc considérer Rust 2018 comme le spécificateur de Cargo.toml que vous utilisez pour activer les quelques fonctionnalités qui nécessitent des modifications importantes.
Dans le cadre de Rust 2018, l'équipe de Rust procédera à une refonte complète du site Web de Rust, ce qui en fera un outil utile pour les directeurs techniques et les ingénieurs. Il devrait être beaucoup plus facile de trouver des informations permettant d'évaluer Rust pour votre cas d'utilisation et de rester au courant des dernières améliorations en matière d'outillage et d'écosystème. L'un des objectifs de Rust 2018 consiste à démontrer la productivité de Rust dans des domaines d'utilisation spécifiques. Quatre domaines sont visés :
- services réseau : la fiabilité et la faible empreinte de Rust en font un excellent partenaire pour les services et l'infrastructure réseau, en particulier à grande échelle ;
- applications en ligne de commande (CLI) : la portabilité, la fiabilité, l'ergonomie et la capacité de Rust à produire des fichiers binaires statiques sont très utiles pour l'écriture d'applications CLI ;
- WebAssembly : la norme Web « wasm » permet d'envoyer des fichiers binaires de type natif à tous les principaux navigateurs, mais le support de GC n'est plus que de nombreuses années. Rust est extrêmement bien placé pour cibler ce domaine et fournit une rampe d’accès raisonnable aux programmeurs JS ;
- appareils embarqués : Rust a le potentiel de rendre la programmation d'appareils aux ressources limitées beaucoup plus productifs et amusants.
Chacun de ces domaines dispose d’un groupe de travail dédié pour l’année. Ces groupes de travail travailleront de manière transversale, en s’interfaçant avec les travaux relatifs aux langues, aux outils, aux bibliothèques et à la documentation.
Rappelons toutefois qu'en novembre 2015 Andrei Alexandrescu (un des co créateur du langage D) s’est prononcé sur Rust et nous parle de quelques avantages et inconvénients du langage. Selon lui, Rust est un langage disposant de théoriciens en langage de classe mondiale. Cela dénote de la précision et de la profondeur de l’approche technique de Rust. L’objectif de Mozilla en implémentant ce langage est d’offrir un langage sécurisé, concurrent, et disposant de fonctionnalités essentielles pour réaliser ce que l’on souhaite. Pour Andrei, l’aspect sécurité est un avantage à ne pas omettre dans les atouts de ce langage. Pour pouvoir atteindre la première version stable, l’équipe de Rust a mis environ cinq années en enchaînant préversion sur préversion. Selon Andrei, cela constitue un avantage, car le produit fini est meilleur et comporte moins de bogues. L’effet collatéral est que la communication autour des différentes itérations a été assez forte.
Selon Andrei, l’équipe de Rust alloue beaucoup d’efforts à la gestion de la mémoire, mais néglige les autres aspects du langage. Pour Andrei, la syntaxe de Rust est peu commune aux autres langages de développement. Cela pourrait être frustrant ou même constituer un frein au cas où certaines personnes n’auraient pas de motivation pour s’investir dans un tel apprentissage.
Source : Billet de blog
Et vous ?

Voir aussi




Vous avez lu gratuitement 3 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.