微软工程师展望 Rust 2023:重写编译器、解决管理问题
Nick Cameron 是就职于微软负责 Rust 开发的首席工程师,此前是 Rust 核心开发团队的成员。他在 3 个月前发表文章:“Rust 面临的十大挑战”,称这是 Rust 应该在 2023 年要解决的问题。
上周他又发表了文章:“Rust in 2023”,表达对 Rust 和 Rust 社区在 2023 年的展望,比如优先要做的工作,以及 Rust 值得着手改进的方向。
两件重要大事
- 解决 Rust 社区的治理和领导问题
Nick Cameron 认为,目前最重要的是解决 Rust 社区的治理和领导问题。原因在于这些问题阻碍了许多潜在工作,而且持续时间越长,会导致项目累积的 “治理债” 越多。更令人尴尬的是,在 Rust 核心团队内讧一年多后,仍没有关于新领导团队的建议。
而对于 Rust 的治理,Nick Cameron 认为需要更新 RFC 流程,以及重新审视团队和工作组的组织架构。目前由于缺少领导团队完成当前变革,这些工作都停滞了。
此外,他认为 Rust 要重写审视 “稳定而不停滞” 的战略。避免停滞非常重要,Rust 不能停止创新,但也不能无限制地任由其发展。因为语言的复杂性和规模是有代价的,这与 Rust 让人们编写可靠和高性能软件的使命不一致(他认为需要让编程语言更简单、更小、更易于使用)。仅仅保持向后兼容性并不意味着实现了稳定性。
Nick 表示自己有点担心 Rust 正在讨论或设计的新功能的数量,而且目前也没有关于 Rust 发展方向的策略。
- 重写编译器
Nick 认为,Rust 目前的架构已经难以支持实现增量编译、并行编译等功能。重新开始则可以使用上更多的技术,团队可以通过这种机会认真优化编译时间,简化未来的开发难度。再结合 Rust 2.0,他们可以减少由于向后兼容而导致的技术债,并改进语言,实现更快的编译。
其他值得着手改进的地方
- Cargo
Cargo(和 crates.io)是非常重要的工具,并且处于很多重要事情的关键路径上(供应链安全、常规安全、与其他语言的集成、与其他构建系统的集成、构建时间……),但目前对它的资源投入严重不足,几乎不可能取得进展(需要明确的是,目前的团队不应该受到责备,他们在恶劣的条件下做得很好,只是由于这是一项艰苦的工作)。
Nick 提出了解决这个问题的方案:向 Cargo 和 crates.io 团队中任何愿意接手它的人提供资金,集中指导潜在的新团队成员(如果这些人不存在,然后说服一些支持 Rust 的大公司,让他们每家找一个人把 1/4 的工作时间花在 Cargo 上),然后与这些成员一起快速扩大团队(即使他们对代码库只有部分了解),并再次开始鼓励贡献和新功能。
- 异步
目前异步编程的相关工作进展得很顺利,Nick 称希望事情在 2023 年开始好转并取得实实在在的成果。关于这一点,他对自己的缓慢进展感到有些沮丧,遗憾的是,大多数异步工作组都在忙着其他事情。不过事情正在发生变化,他认为,对于异步来说,2023 年将是令人兴奋的一年。它应该仍然是 Rust 的一个高度优先事项。
- 不安全编程
不安全代码指南工作组及其他一些人在定义 Rust 内存模型方面做了很多工作,并为不安全编程提供了工具和指南。Nick 认为,对 Rust 来说,进一步推进这方面的工作非常重要。因为安全性是 Rust 的主要卖点,为了让不安全编程变得更安全、更简单,我们做得越多越好。