Dans un premier temps, l’équipe a déclaré que les articles de blogue sont essentiels afin d’assurer l’extension de la communauté de Rust. Ils peuvent contenir tout ce qui a trait au langage, dont les caractéristiques linguistiques, les améliorations des outils, les besoins de l'écosystème, les changements organisationnels. Ainsi, elle encourage les uns et les autres à essayer d'identifier les thèmes ou les grands domaines dans lesquels vos suggestions s'inscrivent, car celles-ci permettront d’orienter l'ensemble du projet. Elle vous invite également à donner votre vision de Rust.
« Une façon de nous aider à comprendre l'optique dans laquelle vous envisagez Rust est de donner une (ou plusieurs) déclaration de la forme : “En tant que X, je veux que Rust soit Y parce que Z” », a-t-elle déclaré. En voici un exemple : « En tant que développeur de systèmes embarqués qui souhaite développer sa niche, je veux que Rust facilite le développement embarqué de bout en bout afin que les nouveaux venus puissent se lancer plus facilement ». En marge de cela, l’équipe s’est dite fière de ce qu’elle a pu accomplir cette année et annonce sa prévision pour 2021.
Préparez-vous à une éventuelle édition de Rust 2021
Selon l’équipe, il existe maintenant un RFC ouvert proposant un plan pour l'édition 2021. Elle a déclaré qu’il y a eu pas mal de discussions, mais qu’elle espère les fusionner dans les 6 prochaines semaines. Il est prévu que la nouvelle édition ait une portée beaucoup plus limitée que celle de Rust 2018. Elle devrait inclure quelques ajustements mineurs pour améliorer la convivialité du langage et la promotion de différents idiomes d'édition afin qu'ils soient “refusés par défaut”. Elle a espoir que cette édition sera aussi couronnée de succès.
Suivi des projets et des efforts en cours
L’équipe a déclaré que l'un des principaux objectifs de 2020 était de faire avancer les efforts de conception “en cours” jusqu'à leur achèvement, ajoutant qu’elle a vu beaucoup d'efforts aller dans ce sens, notamment.
- la référence au code assembleur en ligne a fusionné et la nouvelle mise en œuvre est prête pour l'expérimentation ;
- les macros de procédure ont été stabilisées dans la plupart des positions à partir de Rust 1.45 ;
- il existe une proposition pour MVP de const génériques, qui doit en temps normal être livrée en 2020 ;
- le groupe des fondations async prévoit de publier prochainement un RFC sur le thème du stream ;
- le groupe de projet “unwind” du FFI comble un vide de longue date en matière de solidité, et le premier RFC a été fusionné ;
- le groupe de projet “safe transmute” a proposé un projet de RFC ;
- le groupe de travail sur les aspects est en train de parfaire Chalk, de préparer l'intégration de rustc et observe l'utilisation expérimentale de l'analyseur de Rust ;
- l’équipe est en train de passer à l'analyseur de Rust comme solution officielle de l'EDI Rust, avec un RFC fusionné qui établit le plan ;
- le système de niveaux de Rust est en cours de formalisation, avec des garanties et des attentes définies dans un RFC en cours ;
- le travail sur les performances des compilateurs continue, avec des gains de 10 à 30 % sur un grand nombre de critères de référence ;
- la lecture des tampons non initialisés a un RFC ouvert, ce qui résout un autre problème de longue date pour les E/S dans Rust ;
- une proposition du groupe de projet pour la SIMD portable en std a un RFC ouvert ;
- une proposition de groupe de projet sur l'ergonomie de la gestion des erreurs, axée sur l'API std::error, a un RFC ouvert ;
- les mises à jour des modules std::sync sont actuellement en phase de brainstorming ;
- le support de Rustdoc aux liens intra-doc est maintenant proche de la stabilisation.
Il y a eu beaucoup d'autres travaux aussi bien au sein des équipes Rust, mais ces éléments mettent en évidence certains des problèmes et des conceptions sur lesquels les équipes Rust travaillent activement. Il y a, entre autres, l’amélioration du fonctionnement et de la gouvernance des projets, ainsi que la documentation et l’amélioration des processus de gestion du projet. Ce dernier a trois sous-objectifs principaux, dont :
Améliorer la visibilité de l'état des initiatives et des efforts de conception
Les équipes Rust passent à l'utilisation de groupes de projet pour les travaux exploratoires, visant à créer des groupes de personnes dédiées qui peuvent explorer une zone, proposer un design, mais aussi de le mener à bien. L'équipe linguistique a donné le coup d'envoi avec des groupes de projet de transmutation sécurisée, de déroulement FFI et d'assemblage en ligne. Selon l’équipe principale, tous ces projets ont été d'énormes succès. D'autres équipes cherchent également à utiliser ce modèle.
Accroître le mentorat, le leadership et la largeur de bande passante organisationnelle
Selon l’équipe principale du langage, l'équipe linguistique a identifié un parcours pour les contributeurs vers l'adhésion à l'équipe, impliquant la participation et la direction des efforts du groupe de projet. Par ailleurs, le groupe de travail sur la gouvernance a formalisé les processus existants en RFC, tels que le RFC du groupe de projet, le RFC de la politique d'accès, et plus encore. D’un autre côté, l'équipe de la bibliothèque est pionnière dans l'effort de rédaction de chartes formelles pour les équipes, avec l'aide du groupe de travail sur la gouvernance.
Rendre les discussions sur la conception plus productives et moins épuisantes
Enfin, l’équipe principale de Rust a déclaré que l'effort principal a été fourni par les groupes de projet, qui ont jusqu'à présent été largement couronnés de succès. « Nous espérons en faire davantage à l'avenir », a-t-elle conclu.
Source : Rust
Et vous ?
Qu'en pensez-vous ?
Voir aussi
La feuille de route 2019 de Rust est disponible et place l'année sous le signe de la maturité
Qu'est-ce qu'il se passe, du côté de la rubrique Rust ? Ouverture officielle et présentation de la feuille de route
Le langage Rust est la meilleure chance offerte à l'industrie informatique pour la mise sur pied d'applications système sécurisées, d'après Microsoft
Rust 1.46.0 est disponible et s'accompagne de plusieurs nouveautés dans const fn, ainsi que de deux nouvelles API dans la bibliothèque standard