[Rust] Rust,风雨六载,砥砺奋进
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: 在 2015 年发布版本 1.0 以来,2021 年 5 月 15 日,是 Rust 的 6 岁生日。2015 年以来,世界发生了很多变化,Rust 同样如此。本文从 2020 年 Rust 改进和补录,生产环境中的 Rust 使用状况,未来的工作计划等方面,综合回顾了 Rust 的 6 年历程。同时,也对 Rust 2021 版次做了展望。
Topics: rust rust-官方博客 rust-2021 rust-生产环境 rust-production
Rust 官方博客(中文版)仓库为 github.com/zzy/blog.rust-lang.org-zh-cn,欢迎您的参与,一起丰富中文网络的 Rust 资源。
2021 年 5 月 15 日,Rust 团队发表文章 Six Years of Rust,回顾了自 2015 年发布 Rust 1.0 以来的 6 年发展历程。
在 2015 年发布版本 1.0 以来,今天是 Rust 的 6 岁生日。2015 年以来,尤其是在过去的一年(2020)里,这世界发生了很多变化,Rust 同样如此。在 2020 年,Rust 还没有基金会,没有常量泛型(const generics),许多组织还在怀疑 Rust 是否已经为生产环境使用最好准备。
在新冠疫情(COVID-19)大流行期间,Rust 全球分布的数百名团队成员和志愿者共同努力,发布了 9 个新的稳定版本。此外,还有各种错误问题修复版本。今天,“生产环境中的 Rust(Rust in production)”已经不是问题,而是评估和认定。在新成立的 Rust 基金会中,有几个成员认为:在生产环境中充分利用 Rust,有助于继续支持和促进 Rust 开放生态系统的发展。
今天,我们想回顾一下过去一年中的一些重大改进,阐述社区是如何在生产环境中使用 Rust 的。最后,我们会展望当前正在进行的一些工作,以便在小型和大型项目中,改进和使用 Rust。
我们开始吧!
近期补录
2020 年中,Rust 语言有了很大的改进,收获了很多高质量的特性。虽然它们并没有从根本上改变语言,但是它们在很多地方,辅助性地令使用和维护 Rust 变得更加容易。
-
Rust 1.52.0,升级为 LLVM 12,转发进度(forward progress,比如处理无限循环)中出现的一些不合理的情况,终于得到了解决。这是 Rust 团队和 LLVM 项目之间长期合作的结果,是 Rust 改进方面的一个很棒的例子,也有益于更广泛的编程语言生态系统。
-
关于对 Rust 生态系统进行更广泛的支持方面,引入了对 64 位
ARM Linux
的第 1 级(Tier 1)支持,以及ARM macOS
和ARM Windows
的第 2 级(Tier 2)支持。这使得 Rust 变得更好,可以轻松地构建对不同体系结构的跨平台项目。 -
最值得注意的是:Rust 编译时(compile-time)能力的重大提升;原语类型中,常量泛型(const generics)的稳定;添加了
const fn
的控制流;以及允许过程宏(procedural macros)在更多的地方使用。这些改进,将允许创建完整而强大的新类型 APIs 和 crates。
Rustc
并非是唯一有显著改进的工具。
-
最近,Cargo 刚刚稳定了它的新特性:解析器
resolver
,这使得在跨不同目标构建中,对依赖项的管理将变得更加容易。 -
Rustdoc,稳定了它的“文档内联链接(intra-doc links)”功能,允许你轻松自动交叉引用文档中的 Rust 类型和函数。
-
cargo clippy
,现在使用单独的构建缓存,提供了更加一致性的行为。
生产环境中的 Rust
自 Rust 问世以来的每一年当中,Rust 在社区和行业中的发展及采用都令人难以置信,过去的 2020 年也不例外。2020 年,在 StackOverflowRust 网站,Rust 再次被评为最受欢迎的编程语言。感谢社区中对 Rust 给予支持的每一个人,帮助我们实现了今天的伟大目标。
随着 Rust 基金会的成立,Rust 已经有了更好的定位,建立了一个可持续的开源生态系统,授权每个人建立安全和高效的软件。许多使用 Rust 的公司已经组建了专门维护和改进 Rust 项目的团队,包括亚马逊(AWS)、脸书(Facebook),以及微软。
而且,不仅仅是 Rust 越来越强大。而且,在项目中使用 Rust 的公司也越来越大,并提供了官方支持的 Rust APIs。
-
微软和亚马逊,最近都宣布并发布了官方支持的与 Windows 和 AWS 交互的 Rust 新库。对如此大规模 APIs 的官方支持,将使 Rust 成为相关开发的第一选择。
-
cURL
项目发布的新版本中,提供了可选性支持,可以使用 Rust 库来处理 HTTP/s 及 TLS 通信。这是 ISRG、Hyper & Rustls 两个团队与 cURL 项目之间的巨大社区协作。我们要感谢每一个人:对于 cURL 这样大规模和广泛使用的项目,为其提供新的内存安全后端而付出了辛勤工作! -
Tokio(Rust 的一个异步运行时库),发布了1.0 版本,并宣布为其提供三年的稳定保证。Tokio 为每个人提供了稳定而可靠的技术基础,以编写安全而有性能保障的网络应用。
未来的工作计划
当然,目前这一切,才仅只是开始。我们关注到,越来越多的开发者,倡议将 Rust 用在令人兴奋的新地方。
-
Critical Section & Ferrous 系统公司已经开启新的项目 Ferrocene。这个项目是专注于安全和任务方面的关键型系统,其使得 Rust 成为整个行业中的实施性编程语言。
-
Embark 工作室发布了项目
rust-gpu
的初始原型,这是一种新的编译器后端,允许使用 Rust 为 GPUs 编写图形着色器。 -
目前,Linux 项目正在考虑将 Rust 添加第二内核语言,以便于能够编写更安全的驱动程序和内核空间(kernel-space)代码。
-
谷歌已经宣布,现在支持在 Rust 中构建 Android 操作系统的底层组件,并且已经开始努力使用 Rust 重写他们的蓝牙协议栈!
目前,Rust 团队正在计划和协调 Rust 2021 版次。如同去年一样,许多改进的主题都是围绕着提高语言质量。你可以查看我们最近的文章,关于“Rust 2021 版次工作计划”,了解团队正在进行改进计划。
这只是冰山一角;还有更多的改进正在进行中。令人兴奋的基于 Rust 技术栈的开源新项目,每天都在产生。在未来的一年里,你的计划是什么?我们迫不及待地想看看!
过去的一年中,Rust 的改进或项目,你对此感到兴奋吗?你想开始 Rust 历程吗?你想为 Rust 2021 版次做贡献吗?请你移步来此,自我介绍,加入我们的 Discourse 论坛和 Zulip 聊天频道吧!欢迎任何人,我们致力于为所有人提供友好、安全和舒适的环境:无论性别、性取向、身障、种族、宗教,或任何类似的个人特征。
谢谢您的阅读!