Rust语言杀疯了!前有谷歌高薪争夺 Rust 人才,Facebook再官宣加入Rust基金会
共 3680字,需浏览 8分钟
·
2021-05-05 02:15
新智元报道
新智元报道
来源:reddit
编辑:小匀
【新智元导读】继 AWS、谷歌、华为、微软和 Mozilla后,Facebook 近日也宣布加入 Rust 基金会,并承诺将会加大对 Rust 的采用。这个编程语言最近非常受青睐,相比较 C 和 C++ 而已更快速、更安全的它,对编写驱动程序和编译器等组件很有吸引力。
近日,Facebook 宣布以最高级别 (Platinum Member) 的会员身份加入 Rust 基金会,与其他基金会成员一起负责 Rust 开源生态以及社区的运作和发展。
此外,Facebook 开源生态负责人 Joel Marcey 也加入了 Rust 基金会董事会。
他表示:「自2016年以来,Facebook 就已开始使用 Rust,并应用在开发工作的各个领域——从源代码控制工具到编译器。加入 Rust 基金会,是为了帮助贡献、改进和发展这门对 Facebook 和世界各地的开发者来说已经变得非常有价值的语言。同时还希望 Rust 成为系统编程和其他领域的主流语言选择。」
另外,Rust 基金会的临时执行董事 Ashley Williams 也对Facebook的加入表示欢迎,他说,Facebook 一直是 Rust 的坚定支持者,并说到 Joel 拥有广泛而多样的经验,从标准化组织到文档框架,这些业务能力都与现在的 Rust 发展有着密切的关联。
那么这个Rust基金会到底什么来头?让我们先从Rust这门语言说起。
从小哥私人项目到Rust基金会,这门语言很「网红」
众所周知,Rust是一门专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言,在语法上与C++类似。
Rust语言原本是Mozilla员工Graydon Hoare的私人计划,而Mozilla于2009年开始赞助这个计划,并且在2010年首次公开。
也在同一年,其编译器源代码开始由原本的OCaml语言转移到用Rust语言,进行bootstrapping工作,称做「rustc」,并于2011年实际完成。这个可自我编译的编译器在架构上采用了LLVM作为它的后端。
Graydon Hoare,他在2009年成为Mozilla的雇员
第一个有版本号的Rust编译器于2012年1月发布。Rust 1.0是第一个稳定版本,于2015年5月15日发布。
在1.0稳定版之前,语言设计也因为透过撰写Servo网页浏览器排版引擎和rustc编译器本身,而有进一步的改善。虽然它由Mozilla资助,但它其实是一个共有项目,有很大部分的代码是来自于社区的贡献者。
由于Rust是在完全开放的情况下进行开发,并且相当欢迎社区的反馈。长期以来,Rust都受到大批开发者的青睐。
2021年2月8日,AWS、华为、Google、微软以及Mozilla宣布成立Rust基金会,并承诺在两年的时间里,投入 100 万美元的预算,用于 Rust 项目的开发、维护和推广。
其中,微软正在为Windows和Azure的一些组件探索Rust,而谷歌正在使用Rust构建Android操作系统的新部分,并支持将Rust引入Linux内核的努力。
Facebook的Rust身影
虽然Facebook已经以最高级别加入了Rust基金会,在该基金会的董事会中占有一席之地。 但Facebook现在只是通过其Novi数字钱包成为该协会的核心成员。、
但整体而言,Rust之于Facebook,可以简单划分为几个时段。
2016–2017:尽早在源代码控制中使用
Facebook最早的Rust代码库可追溯到2016年,当时Facebook的monorepo中的源代码更改率开始侵蚀Mercurial源代码管理工具可以跟上的最大提交率。对此,Facebook的源代码管理团队启动了一个名为Mononoke的重写项目,其目标是将Mercurial的提交率提高几个数量级,以服务于Facebook的数千名开发人员和自动化流程。
首先,用C ++开发Mononoke是显而易见的选择。当时,Facebook的后端代码库非常C ++,这意味着Mononoke默认情况下将用C ++实现。但是源控制团队需要考虑源控制后端的可靠性需求。当损坏或停机可能导致服务中断时,可靠性是重中之重。这就是为什么团队选择在C ++上使用Rust的原因。
Mononoke项目的生产实践,证明了Rust值得进一步投资。并且,Rust帮助他们降低了Bug的成本。
2017–2019: 采用曲线
随着时间的推移,Mononoke作为其可行性和实践的证明,其他项目也考虑并采用了Rust。
最初,这些通常是开发人员工具项目,不需要与更广泛的服务基础架构集成,或者是小型服务/守护程序,可以仅使用一些围绕C ++客户端库的手写包装来完成其工作。
Facebook上许多采用Rust的工程师都来自Python和Javascript背景。
Python在机器学习和后端系统开发方面很受欢迎,而JavaScript则统治着网络前端系统。
他们十分赞赏Rust,因此这门编程语言不仅性能高,而且编译时还有错误检测。
2019–2020年:对Rust的一些专门支持
从2017年到2019年,Source Control团队的人数增加了一倍,成为Facebook内非官方的Rust支持团队。到2019年,Facebook的Rust开发人员数量呈指数增长,超过了100个。
作为这种增长的一个重要例子,Rust是Diem(以前称为Libra)区块链开发中的领先语言,由独立的Diem协会监督。Facebook通过其数字钱包Novi,成为Diem协会的会员。Diem区块链主要用Rust编写,覆盖了94%的开源代码库。
此外,与Rust一起开发了Move,一种用于区块链的新型安全编程语言。
2021年及以后
2020年底,Facebook成立了一个Rust团队,该团队由负责Facebook的C ++标准工作和工具链的同一组织负责。
根据官网的介绍,在短期内,这个新团队专注于四个领域:
1 从语言和工具链的角度为内部用户提供支持:这包括工具链的推出,跨领域迁移,代码审查/审核,最佳实践,并充当语言和工具链问题的联系点。
2 在Facebook以外的社区中做出积极贡献:该团队执行标准库和编译器的代码审查,并为Rust社区的优先事项提供开发人员资源。
3 Rust与C ++的轻松安全的互操作性:Facebook需要大量的C ++代码才能与构建服务的后端系统进行通信。
Facebook需要开发人员能够安全,轻松地使用这些库,而又不牺牲Rust提供的好处。相反,如果Facebook想将Rust组件与更大的C ++二进制文件集成在一起,则需要异步代码中的智能运行时互操作性。
Facebook的服务器高度分散且线程密集。Rust任务需要在C ++线程池上很好地发挥作用,并安全地共享同步原语和I / O资源。Facebook已经在C ++领域完成了大量工作,以改善异步性,已经支持并迅速采用了C ++ 20的协程。
将Rust引入游戏将是对它的扩展,并将基于Rust异步库堆栈中已经发生的出色工作。
4 积极支持和与Rust基金会互动:自2016年以来,Facebook一直致力于Rust社区并通过Rust扩展其发展。在加入Rust基金会后,Facebook表示希望一通推进Rust的发展,让其成为主流语言之一。
他们加入基金会说明了什么?
通过基金会的成员来看,除了最初的Mozilla,其他成员大多都和云有关系。
一方面,Rust 的安全性使其适合写偏底层的软件,比如运行时。
另外,Rust可能会在未来与Golang组CP——Rust负责底层部分,Go负责中间部分,共同服务上层各种语言的应用。
参考资料:
https://www.tectalk.co/rust-programming-language-we-want-to-take-it-into-the-mainstream-says-facebook/
https://www.zhihu.com/question/443595816
https://engineering.fb.com/2021/04/29/developer-tools/rust/
AI家,新天地。西山新绿,新智元在等你!
【新智元高薪诚聘】主笔、高级编辑、商务总监、运营经理、实习生等岗位,欢迎投递简历至wangxin@aiera.com.cn (或微信: 13520015375)
办公地址:北京海淀中关村软件园3号楼1100