Rust 承诺 6 周发布周期

还没有读者喜欢这篇文章。
Two different business organization charts

Opensource.com

The Rust 编程语言 在很多方面都是一个雄心勃勃的项目。随着 5 月 15 日 Rust 1.0 的发布,人们可能会问,“接下来是什么?” 已经有很多文章介绍了 Rust 语言如何在没有垃圾回收的情况下实现内存安全的技术方面,但关于项目本身及其结构的讨论却较少。开源项目不仅仅是代码,Rust 也不例外。

彻底的改变

从历史上看,Rust 的发展历程就是一个彻底改变的故事。 如果你回顾 Rust 的历史,你会发现一些奇特之处:Rust 自始至终都有着相同的使命:一种并发、安全的系统编程语言。 但是,自八年前诞生以来,Rust 实现这一目标的方式发生了显著变化。

为了适应这些变化,该语言的语法和语义也在快速变化。 这使得 Rust 难以学习,因为人们需要跟上高速率项目中的大量变化。 随着 Rust 接近目前的形态,团队不得不解决一个问题:“Rust 何时才能稳定?” 以及一个相关的且重要的问题:“稳定性意味着什么?”

虽然稳定性对于编程语言的用户来说是一件有用的事情,但静态的语言也没有用。 任何 1.0 版本都不是完美的,因为没有软件是完美的。 同时,以前的状态也不是很好,因为完全的改变太混乱了。

像发条装置和 Web 一样 

与任何工程决策一样,重要的是不仅要考虑您的需求,还要检查其他人在面对相同问题时所做的事情。 Web 是另一个平台,它具有非常强大的向后兼容性保证,但同时也在不断增长和变化。 为了在这些约束条件下工作,常青 Web 浏览器每六周发布新版本,其中包含新功能和错误修复,但仍与现有 Web 兼容。 许多网站本身都遵循持续集成或类似的工程原则,旨在使更改更容易。 虽然 Web 应用程序可能每天部署数十次,但桌面软件的更新频率要低得多,通常最多每年一两次。

因此,Rust 正在遵循类似的道路:1.0 于 5 月 15 日发布,1.1 beta 版同时发布,主开发分支已推进到 1.2。 六周后,即 6 月 26 日,Rust 1.1 将退出 beta 版并成为稳定版本,1.2 将晋升为 1.2-beta,而 master 分支将成为最终的 1.3。

就像发条装置一样,这些更新将每六周发布一次。 这三个版本称为通道,Rust 有三个通道:nightly(每日构建版)、beta(测试版)和 stable(稳定版)。 每天从 master 分支生成一个新的 nightly 构建版本,而 beta 和 stable 版本仅在将内容向后移植到其分支时才更新。 Rust 遵循语义版本控制原则,这意味着 1.x 系列中的这些次要版本将向后兼容以前的版本。 它们将包含新功能和错误修复,但是您为 1.0 编写的任何代码都应该可以直接使用,或者经过少量修改后在 1.1 上使用。

这种安排不仅可以让 Rust 用户快速访问新功能和错误修复,而且还有望产生次要影响,从而带来更高质量的版本。 例如,考虑一个每年发布一次的项目。 在给定的一年中,该项目看到了两个新功能 A 和 B。A 在周期的第二个月出现,而 B 在周期结束前两个月出现。 在这样的周期中,即使功能 B 比平时有更多错误,也有强烈的动机去发布功能 B。 虽然它的测试时间比功能 A 少八个月,但开发人员喜欢新功能,如果功能 B 错过了发布,那么它将需要整整一年才能使用。

通过更短的周期,这种压力得到缓解:如果某个功能尚未为即将发布的版本做好充分准备,那么只需短短六周即可迎来下一个版本。 这可以防止未完全成熟的功能进入稳定通道。

标签
User profile image.
Rails 提交者,Rust 爱好者,游牧哲学家。 Steve 目前正在与 Balanced Payments 一起构建下一代 Web 技术。

3 条评论

我对 Rust 非常兴奋,并期待看到它被项目采用,到目前为止,我听到了很多关于该语言的好评。

Mozilla 有没有计划将这种语言添加到 Firefox 中用于 DOM 操作?

目前,Rust 通过两种方式影响 Mozilla

* Firefox nightly 版本具有构建 Rust 文件的能力。 跟踪器中有一个补丁,用 Rust 库替换 URL 解析。

* Servo 是一个完全独立的项目,有兴趣看看全 Rust 浏览器引擎能做什么

回复 by jezra

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.