Rust 承诺 6 周发布周期

暂无读者喜欢这篇文章。
Two different business organization charts

Opensource.com

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

彻底的变革

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

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

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

像发条装置和 Web 

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

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

像发条装置一样,这些更新将每六周发布一次。这三个版本称为通道,Rust 有三个通道:nightly、beta 和 stable。每 24 小时从 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 浏览器引擎能做什么

回复 ,作者:jezra

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