Rust 最初是 Mozilla 员工 Graydon Hoare 在 2006 年开始做的私人项目 [1],Graydon Hoare 原来是语言工程师,会参与编译器或工具的实现但并没有参与设计,因此开始有了自己设计语言的想法 [2]。
Rust 语言的设计参考了很多其他语言,在 70 年代末和 80 年代初,编程语言有很多优秀的竞争者,许多好想法并没有转化成广泛使用的系统语言,Graydon Hoare 希望能结合现代编程语言的理论实现这些好想法 [2]。
Rust 基因图谱 [3]
Mozilla 从 2009 年开始赞助这个项目,成立了团队来支持 Rust 的开发,并开始应用于实验性的 Servo 浏览器引擎项目 [1] (2020 年 8 月 Mozilla 大规模裁员,已经基本砍掉了对 Servo 的官方支持,也包括不少 Rust 活跃开发人员 [4])。
2010 年 Rust 首次公开,同年开始改写自托管编译器(基于 LLVM 后端)来替换原来用 OCaml 写的编译器,在 2011 年实现了自我编译 [1]。
第一个稳定版本 Rust 1.0 到 2015 年才首次发布,随后按照“6-week train model”进行发布,可能每天都会产生一个开发版本,固定每 6 周发布一个测试版本,但仍需要经过测试才会合入稳定版本,就像火车一样按照时刻表发车 [5]。
nightly: * - - * - - * - - * - - * - - * - * - *
| |
beta: * - - - - - - - - * *
|
stable: *
Rust 2021 的稳定版预计在 10 月发布 [6],经过 11 年的发展,Rust 开源社区已有超过 6000 贡献者 [7],约有 1300 万开发者 [8]。
Stack Overflow 的开发者调研显示只有 7% 的开发者在使用 Rust,对比 JavaScript、Python 等语言,使用 Rust 的开发者占比并不高;但从 2016 年开始,Rust 每年都是开发者最爱的编程语言 [9]。
开发者使用的语言占比 [9]
开发者喜欢和讨厌的语言 [9]
# 最爱的特性 #
首先 Rust 是存在一些不足的,比如学习曲线陡峭,在 2020 年的调研中约 15.8% 的开发者认为如果 Rust 更好学那么应用 Rust 的人会更多,而完善文档和课程是提及最多的方法。Rust 语言概念层次结构如下图 [10]:
Rust 语言概念层次结构梳理 [10]
其中生命周期、所有权等概念对于初学者来说可能难以理解,特别是“生命周期”,有 61.4% 的反馈者认为难以理解或学习困难 [11];
Rust 中最难的话题 [11]
另外编译时间较长也是 Rust 社区一直在讨论的问题,在 2020 年的调研中约半数开发者(50.5%)感觉已经有一定的提升,但缩短 Rust 的编译时间仍然是 Rust 团队接下来的重要任务 [11]。
不过这些不足完全不能掩盖 Rust 的突出优势。
Rust 设计的目标人群是“被 C++ 所困扰的开发者”。C/C++ 一直是系统编程的首选,但由于内存安全、数据竞争等引起的问题也一直存在,Rust 就是为了从语