Peter Ammon, le leader de l'équipe de développement du shell interactif Fish, a publié un plan pour le portage du projet vers le langage Rust. Le shell ne sera pas réécrit depuis le début, mais il sera progressivement traduit, module par module, du C++ vers Rust. Selon les développeurs de Fish, l'utilisation de Rust permettra de résoudre les problèmes de multithreading, d'obtenir des outils plus modernes et efficaces pour détecter les erreurs, d'améliorer la sécurité de la gestion de la mémoire et d'éliminer les erreurs, telles que l'accès à la mémoire après sa libération, lors du traitement de chaînes pour lesquelles Fish utilise le type wchar_t.
Il est noté que l'outillage pour le langage C++ est considéré par les développeurs comme obsolète, et il y a des inquiétudes que la poursuite de l'utilisation de C++ entraînera des difficultés croissantes pour recruter de nouveaux participants au projet. Le langage Rust est perçu comme un langage plus prometteur et en développement actif, avec une communauté dynamique et croissante, qui est déjà familière avec les développeurs actuels de Fish et capable de résoudre les problèmes existants du projet.
Pendant la période de transition, la coexistence du code en C++ et en Rust sera assurée grâce à des liaisons FFI (Foreign Function Interface). En fin de compte, dans la prochaine sortie significative, il est prévu de transférer complètement le projet vers le langage Rust.
Source : opennet.ru
