The Future of Rust

Matthias Endler

Rust 的未来

原文由 Matthias Endler 发布,订阅该博客

首先说点显而易见的:是的,这个标题有点哗众取宠。你也许会问,我凭什么来谈 Rust 的未来。毕竟,我既不是 Rust 核心团队的成员,也不是 Rust 生态的主要贡献者。对此我想说:为什么不行呢?去畅想系统编程的未来,尤其是 Rust 的未来,本身就是一件很有趣的事。

Ferris 是 Rust 非官方吉祥物
Ferris 是 Rust 非官方吉祥物
来源:插图由 FreePik.com 提供

你可能已经听说过核心团队为自己定下的近期目标,比如更快的编译速度和更平缓的学习曲线。但本文要谈的不是这些。相反,我想探讨一些更具想象空间的领域,看看 Rust 在未来五到十年里可能大放异彩的地方。想要真正取得成功,我们既需要根基,也需要翅膀

数据科学

目前,数据科学领域最流行的语言是 Python、Java、R 和 C++。

数据科学的编程语言流行度
数据科学的编程语言流行度(来源)。

我们观察到,虽然原型大多是用 Python 和 R 这样的动态类型语言编写的,但一旦算法达到可投入生产的水平,出于可扩展性的考虑,往往会被用 C++ 等更快的语言重写。可以想见,在不久的将来,Rust 很有可能成为 C++ 的有力竞争者。用 Rust 编写的机器学习库 leaf 的基准测试结果,已经令人印象深刻。

爆款游戏

游戏是另一个 Rust 可能大显身手的领域。对游戏工作室来说,能够以较小的成本支持多平台,在经济上非常有吸引力。Cargorustup 让交叉编译变得轻松。现代化的各种库也在逐渐填补大型游戏开发的工具链空白。Rust 对 Vulkan 3D 图形 API 的支持甚至可能已经是同类中最好的。不过,真正的杀手锏在于安全性和性能的独特结合。如果你要向一百万玩家发布一款游戏,而他们为此付费,你最好确保它不会崩溃……对吧?

话虽如此,第一款完全用 Rust 开发的 3A 游戏或许仍需时日。这是暴雪在 2017 年对 Rust 的看法

系统工程

也许——终有一天——我们还会看到 Rust 核心的形式化验证。像 RustBelt 这样的项目将为航天等对安全性要求极高的行业带来新的机遇。设想一下,一艘由 Rust(或其某种精神续作)控制的飞船安全着陆火星,岂不是很美妙?不知道 SpaceX 是否已经在尝试 Rust 了……

与其他语言的集成

还有许多领域我尚未提及,例如金融和医疗软件,或是科学计算,仅举几例。在这些场景下,Rust 都可能是合适的选择。目前最大的入门障碍恐怕是庞大的遗留代码。许多行业仍在维护用 Cobol、C 或 Fortran 编写的大型代码库,这些代码并不容易重写。

好在 Rust 已被证明能与其他语言很好地协同工作,一方面得益于其对 C 的良好兼容性,另一方面则是因为它没有运行时和垃圾回收。一种典型的模式是用 Rust 重写应用中对安全性/性能有严格要求的核心部分,而其余部分保持不变。我认为这种共生关系从长远来看只会变得更紧密。甚至还有像 Corrode 这样雄心勃勃的项目,尝试将 C 代码自动翻译成 Rust。

总结

总体而言,我认为 Rust 在那些对安全性、性能或对机器完全掌控至关重要的领域具有巨大潜力。有了 Rust 和 Crystal 这样的语言,整整一类错误已成为历史。没有空指针,没有段错误,没有内存泄漏,没有数据竞争。想到未来的程序员会将这一切视为理所当然,就令人倍感振奋。

本文章由 muse-spark-1.2-contributor 进行翻译

评论