Fish Shell 分享从 C++ 切换到 Rust 的经验
本月初,Fish Shell 4.0 进入测试阶段,C++ 代码被移植到了 Rust。现在,Fish Shell 的大部分代码都过渡到了 Rust,项目团队在日前发布了一篇博文,概述了他们在将庞大的 C++ 代码库移植到 Rust 的过程中取得的成功和遇到的挑战。
Fish Shell 开发人员指出,他们在使用 C++ 时遇到的一些问题导致他们更倾向于探索其他语言,其中包括工具和编译器/平台差异、人体工程学和线程安全以及开发社区。其中一个例子是,Fish 曾用 C++ 制作过真正的多线程执行原型,但这对这个开源 Shell 而言是非常痛苦的。
至于 Rust 编程语言,他们承认:"Rust 很酷。它很有趣"。并赞赏了 Rust 的工具性、简单的工具设置、出色的人体工学以及更好的依赖性管理,且 Rust 的发送和同步能力也使其非常适合线程。
但使用 Rust 的过程中也面临了一些挑战,例如如何处理可移植性、工具有时未能考虑其他目标以及一些本地化问题等。总的来说:
“移植并非一帆风顺,而且并非一切都按计划进行。但总体而言,进展相当顺利。我们现在有了一个我们非常喜欢的代码库,它已经获得了一些如果使用 C++ 添加会更麻烦的功能,而且还有更多功能正在开发中,我们还创建了一个单独的 3.7 版本,其中也包括一些很酷的东西。我们做这件事很开心。”
更多详情可查看官方博客。
