Rust 一周年

2016 年 5 月 16 日 · Aaron Turon

Rust 是一种语言,它为您提供

  • 无与伦比的性能和控制;
  • 防止各种类型的错误,包括 经典的并发陷阱
  • 人体工程学,通常与 PythonRuby 等语言相媲美。

它是一种用于编写高度可靠、极速软件的语言,而且编写起来很有趣。

昨天,Rust 迎来了一周年纪念。

Rust 的数字

在过去的 365 天里发生了很多事情

  • 702 位贡献者提交了 11,894 次 提交 到核心仓库;
  • 合并了 88 个 RFC
  • 引入了 18 个编译器目标;
  • 发布了 9 个版本;
  • 1 年的 稳定性交付

今年的平均每周,Rust 社区合并了两个 RFC,并发布了 53 个全新的 crate。每天至少有一个新的 Rust 库出现在中央包管理器中。在今年的 StackOverflow 调查中,Rust 荣登“最受欢迎的语言”榜首。

说到数字:我们最近发布了一份 调查,想听听您是 Rust 的老手,还是从未使用过它。

我们希望看到数字的地方之一是社区多样性。我们一直在进行本地推广工作,但 Rust 社区团队很快将启动一项协调的全球推广工作,遵循 Bridge 模型(例如 RailsBridge)。如果您想参与其中,或有其他推广想法,请告知 社区团队

Rust 在生产环境中

今年,更多公司 押注 Rust。每个公司都有一个故事,但有两个故事特别引人注目。

首先是 Dropbox。在过去的几年里,该公司一直在秘密地进行一项 从 AWS 转移到自己的基础设施 的行动。这项行动现已完成,包括开发定制硬件和驱动它的软件。虽然 Dropbox 的大部分后端基础设施在历史上都是用 Go 编写的,但对于一些关键组件来说,内存占用和缺乏控制阻碍了他们努力实现的服务器利用率。他们用 Rust 重写了这些组件。用该项目的主要工程师 Jamie Turner 的 话说,“Rust 的优势很多:非常强大的抽象,没有空值,没有段错误,没有泄漏,同时具有 C 般的性能和对内存的控制。”

其次是 Mozilla。他们长期以来一直在用 Rust 开发 Servo 作为研究型浏览器引擎,但他们的第一个生产 Rust 代码是通过另一种方式发布的:Firefox。在 Firefox 45 中,没有大张旗鼓,用于 mp4 元数据解析 的 Rust 代码发布给了 OSX 和 64 位 Linux 用户;它将在版本 48 中登陆 Windows。该代码目前处于测试模式,其结果与传统的 C++ 库进行比较:在 10 亿次报告的执行 中,正确率为 100%。但这仅仅是冰山一角:在为 Rust 集成奠定了大量 基础 之后,Firefox 准备引入大量新的 Rust 代码,包括来自 Servo 的组件,而且不仅仅是测试模式。

我们从其他一些将 Rust 用于生产环境的公司那里听到了 类似的故事:Rust 帮助团队发挥出超乎寻常的能力。它提供了与传统系统语言相同的许多好处,同时更易于使用、更安全,而且通常更有效率。

这些只是 Rust 在生产环境中的一些故事,但我们很乐意 听听您的故事

改进的 Rust

当然,Rust 本身也一直在发展。它在第一年的重点是发展和完善其生态系统和工具

  • 平台和目标。Rust 的内存占用与 C 几乎一样小,这使得它非常适合用于各种地方。在过去的一年里,Rust 获得了直接使用 Windows 上的原生 MSVC 工具链、针对 musl(从而创建一个可以在任何类型的 Linux 上使用且不依赖任何依赖项的二进制文件)、针对 Android 和 ARM 设备以及 更多平台 的能力。新的 rustup 工具 使得管理和编译到这些不同的目标变得轻而易举。从 Rust 1.6 开始,您可以在没有完整标准库的情况下使用 Rust,将其限制为一个核心库,该库不需要任何操作系统服务(因此适合用于 编写操作系统 用 Rust)。最后,越来越多的库用于将 Rust 代码嵌入其他环境中,例如 node.jsRubyGo
  • 工具。由于 Rust 在外观上与 C 一样,因此它可以立即与各种现有的工具一起使用;它可以与 lldbgdbperfvalgrindcallgrind 以及许多其他工具开箱即用。我们的重点是通过添加 丰富体验,为这些工具添加 特定于 Rust 的钩子工作流程。另一个主要优先事项是提供完整的 IDE 支持,部分通过从编译器提供守护进程服务;我们在今年在这方面取得了 良好进展,并且得益于 Racer 项目,许多 IDE 插件 已经为 Rust 提供了一些语义支持。同时,rustfmt 代码格式化工具已经成熟到 Rust 社区准备生成 官方样式 的程度。Rust 工作流程的核心 Cargo 今年获得了许多功能,最值得注意的是 install 子命令

关于 Rust 世界中已经发生的事情和即将发生的事情,还有很多话要说——在接下来的几个月里,我们将使用此博客来表达这些想法。

Rust 社区

事实证明,人们喜欢聚在一起谈论 Rust。去年 8 月,我们举办了一场爆满的RustCamp,并且在 2016 年还有几场即将举行的活动

  • 2016 年 9 月 9-10 日:在美国俄勒冈州波特兰举行的首届RustConf
  • 2016 年 9 月 17 日:在德国柏林举行的欧洲社区大会RustFest
  • 2016 年 10 月 27-18 日:在美国宾夕法尼亚州匹兹堡举行的Rust Belt Rust,一场 Rust 大会;
  • 全球 71 个与 Rust 相关的聚会小组。

这并不奇怪。从个人角度来看,使用 Rust 最棒的部分是它的社区。很难解释成为这个群体的一部分是什么感觉,但有两件事很突出。首先,它的纯粹的活力:在任何一个星期都会发生很多事情,以至于本周 Rust 新闻对于任何希望跟上潮流的人来说都是一个重要的资源。其次,它的热情好客的精神。Rust 的核心信息是赋权——你可以无所畏惧地编写安全、低级的系统代码——这在社区中得到了体现。我们都在这里学习如何成为更好的程序员,并互相支持这样做。

现在是开始使用 Rust 的最佳时机,无论你是参加当地的聚会、在用户论坛上打招呼、观看演讲,还是阅读书籍。无论你如何找到自己的方式,我们都欢迎你。

Rust 生日快乐!