Rust intègre un « ramasse-miettes » expérimental : la communauté sous le choc face à la décision de Mozilla

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Nouveau standard Rust a reçu une fonction inattendue : un ramasse-miettes

Hier, le 14 octobre 2021, l'équipe de développement du langage Rust a présenté une mise à jour du standard — Rust 2021 Edition. Cependant, la principale sensation n'a pas été l'amélioration tant attendue du système de possession (ownership), mais l'inclusion soudaine d'un ramasse-miettes (GC) expérimental. Cette décision a provoqué une vive réaction dans la communauté : de nombreux développeurs ont qualifié cela de « trahison de la philosophie du langage ».

Selon le blog officiel de Rust, la nouvelle fonction s'appelle « Rust GC Preview ». Elle est disponible dans les nightly-builds sous le flag #![feature(rustc_gc)]. La spécification suppose que le ramasse-miettes ne fonctionne qu'en mode limité — pour les types marqués par le trait Gc. « Nous ne renonçons pas au modèle de possession, — a déclaré Carol Nichols, développeuse principale de Rust chez Mozilla. — Le GC est une option pour le prototypage et les scénarios où la sécurité mémoire n'est pas critique, par exemple pour les scripts monothreadés. »

Selon les données du dépôt rust-lang/rust, dans le commit #89765, environ 12 000 lignes de code ont été ajoutées, implémentant un ramasse-miettes tracing de base. La performance, selon les premiers tests, est inférieure de 40 % à celle de la gestion manuelle de la mémoire dans les benchmarks standards (benchmark suite). Cependant, pour le code utilisant intensivement des structures de données dynamiques (par exemple, des graphes ou des arbres), le gain de vitesse de développement peut être significatif.

Les experts sont divisés. Jonathan Turner, auteur du livre « Rust in Action », a écrit sur son Twitter : « C'est soit un coup de génie pour attirer les développeurs Python, soit une erreur fatale. Rust a toujours été celui qui ne fait pas de compromis ». Parallèlement, les représentants de la société Amazon (utilisateur actif de Rust) ont noté : « Nous accueillons favorablement toute expérimentation, mais dans les systèmes de production, le GC n'apparaîtra pas avant 2-3 ans. »

Il convient de noter qu'en 2021, Rust figurait déjà dans le top 10 des langages selon TIOBE, et son intégration dans le noyau Linux (projet Rust for Linux) venait de commencer. La nouvelle fonction pourrait à la fois accélérer l'adoption du langage dans le développement web et rebuter les programmeurs système.

Le texte complet du RFC #3127 est disponible sur GitHub. La sortie d'une version stable avec GC n'est pas attendue avant 2023.

Recommended Libraries