转载:本文来自微信公众号“新智元”(ID:AI_era),作者:新智元,转载经授权发布。
新智元报道
来源: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负责中间部分,共同服务上层各种语言嘅应用。
参考资料:
cantonese.live 足跡 粵字翻譯
2021-05-02 13:06:47
请登录之后再进行评论