在 Rust 语言不断发展的过程中,自然而然需要为这个语言的下一步发展方向制定计划。因此 Rust 语言设计团队(Lang Team)近日在官方博客中公布了 Rust 语言 2024 年的更新路线图,提供了对 Rust 未来的展望。需要注意的是,目前距离 2024 年为时尚早,因此 Rust 的路线图有可能随着时间的推移,在此基础上发生变化。
Rust 1.0 是在 2015 年发布的。从那时起,Rust 从一个用于小众语言成长为几乎所有主要科技公司都在使用的主流编程语言。Rust 2024 也将是继 Rust 2015、Rust 2018 和 Rust 2021 之后的第四版编程语言路线图。根据目前的计划,三年的周期将会保留,版本划分方面应该也没有什么变化。
从 Rust 团队的角度来看,2024 路线图的重点主要有三样:更低的学习曲线、给予 Rust 库更好的连接生态,以及进一步发展壮大 Rust 语言。
降低学习门槛
Rust 语言的学习门槛之高是屡屡被人诟病的一个问题。在 2 月份发布的 2021 年 Rust Survey 调查中,在近万名受访者中,有 83% 的人认为在生产环境中采用 Rust 十分具有挑战性。在过去多年的调查中,学习曲线太陡峭的问题一直存在,这也是很多人不使用 Rust 的主要原因之一。
开发者不仅要理解一般的逻辑,而且要把具体的实现精确到很多细枝末节之处。在 Rust 官方博客中,他们引用了所有权系统和借用检查器(borrow checker)的概念来举例 —— "即使你已经学会了 Rust 的借用检查器是如何工作的,仍然有许多小细节需要你去弄明白,以便 Rust 程序能够编译。"
因此,在 Rust 2024 年的路线图中,他们的一个目标就是简化程序,使开发者只需要处理其领域的固有复杂性,而不再需要处理 Rust 的意外复杂性。Rust 团队希望开发者在使用 Rust 的过程中应该 "不仅仅是可能,还需要不复杂并且使用起来非常愉悦",特别是对于嵌入式开发和异步程序领域。
为了实现这一愿景,团队有四个具体目标:
- 更精确的分析:通过改进借用检查器、类型推理等,使编译器能够更好地识别代码是否正确。识别并消除 "boilerplate" 模式,如到处复制粘贴同一组
where
。 - 开发人员应该能够更轻松、更直接地表达代码的意图。一方面可以通过语法糖的形式(如
let-else
),另一方面可能意味着扩展类型系统。 - 改进异步支持:将 async-await 支持扩展到目前的 "MVP" 之外,包括 traits 中的 async fns、async drop 等功能。
- 让
dyn Trait
更有用处。拓宽可用于dyn
的特性集,使使用dyn
的工作更接近于使用泛型的工作。
库和核心语言
Rust 结合了所有权和借用、低级系统控制等强大的可扩展性机制,使其成为编写库的绝佳语言。而且多亏了 Cargo,开发者在程序中仅需几行代码就能使用一个库。尽管如此,还有很多事情是库的作者不能做的,或者说不能轻易做的 —— 例如:他们不能控制你看到的错误信息,或者部署一个 "不稳定" 的功能。对于 Rust 2024,Lang Team 希望建立一些功能,使库的作者能够更好地服务于他们的用户,无论是通过帮助管理功能的生命周期,还是通过扩大库的功能。
Lang Team 还希望能够在生态中进行更多探索的变化,并且能够将代码从生态稳定地迁移到标准库中;除此之外,他们还将增强 Rust 的互操作性,让库作者可以随心所欲地编写可在许多环境中移植的代码,或针对某一环境的代码。
为了更有效地进一步发展语言,Lang Team 希望开发者能够很容易地识别出团队正在积极开展哪些工作,以及这些工作取得了多大进展。他们希望每一个跟踪问题都能清楚地识别出需要哪些步骤来推动该特定功能的完成,并确保这些步骤对潜在的贡献者来说是足够清楚的。
最后
随着 2023 年的到来,Lang Team 将重新审视这些问题,会回顾已经取得了多少进展,以及是否需要调整这些内容。
对于一门编程语言而言,开发者最希望看到的还是版本更新应该尽可能少的引入破坏性变化。这样的变化一方面可能会影响程序之间的兼容性,另一方面也违背了当初设立的降低学习曲线的目标。路线图的更多详情可查看 Rust 官方博客。
猜你喜欢: