编者按:在过去的24个月中,发展迅猛,开发者的数量从60万涨到了220万。过去C/C++、Java等是大厂的常用语言,现在Rust也逐渐崭露头角,谷歌、亚马逊等公司都开始采用Rust了。随着开发人员暴涨,社区贡献的志愿者越来越多,未来的Rust会朝着最流行的行列靠拢吗?

原文链接:
https://thestack.technology/rust-language-explosive-growth-challenges-rust-governance/

编程语言界,Rust正在迎来自己的高光时刻。

根据SlashData2021年开发者报告的数据显示,**使用Rust编程的开发人员在过去24个月内增长了两倍,达到220万。**在行业内,Rust语言也得到了很多领先的CISO(首席信息安全官)的支持,企业对其的接受程度也在不断地提高,比如Canonical、Chef、Cloudflare、Deliveroo等公司都在使用Rust。(列举的只是小部分公司)

![图片: https://uploader.shimo.im/f/5G49XEtkRb6ZSXtc.png!thumbnail?accessToken=eyJhbG
C和C++分别诞生于1972年和1983年,作为许多现代软件的构建模块,它们无处不在。但是用C和C++构建也还是容易出现关于内存安全的问题,从而导致下游的严重安全漏洞。相比之下,Rust这种语言会更安全地处理内存管理和其他对安全性要求高的任务。(在Rust中,编译器扮演着守门员的角色,它能够拒绝编译一些有错误的代码,包括并发性错误。)

当然,对于一些为了美观编写整齐的代码的码农来说,这并不值得太过于担忧。谷歌的Project Zero安全研究团队上个月的分析中发现,**在2021年发现的58个被利用的零日漏洞中,有67%是内存损坏漏洞。内存安全问题往往会造成网络安全问题。**在这方面很容易就能找到很多例子。比如,微软所有的CVE中,大约有70%是内存安全问题。以及三分之二的Linux内核泄露也是来自安全问题。

粗略的说,用Rust构建不容易出现这些问题,而且Rust开发者们已经形成了一个非常强大的开发者社区,他们关心性能、内存安全等问题。

多而杂的事情需要基金会处理

**诞生于2006年的Rust,是Graydon Hoare在Mozilla的副业项目。作为一个开源项目,其维护者主要以志愿者身份自主工作。**自2015年Rust 1.0推出以来,该项目一直自主运作——该版本有53个贡献者,主要由Brian Anderson和Patrick Walton与Hoare一起构建。

直到2020年,随着Rust基金会的成立,结束了Rust没有一个独立组织管理的局面。而由于赞助商Mozilla基金会进行了全面裁员最终才促使了Rust基金会的成立,这种情况引起了社区中很多人对Rust未来的担忧,社区所面临的挑战也逐渐凸显出来。(Rust总共有6621名个人贡献者,平均有300人对最近的版本做出贡献。)

Alt
Rust基金会本身的规模并不大,是一个由四个人组成的非营利组织,由Rebecca Rumbul博士领导。

Rebecca Rumbul博士是一位经验丰富的非政府组织的董事,还曾是广告标准局的理事会成员、Hansard协会的受托人以及隐私集体的英国代表索赔人。2021年11月,Rebecca Rumbul成为Rust基金会的CEO,她将工作描述为“建立一个团队,坦率地说,我可以做所有‘无聊’的事:处理所有关于法律、会计、财务、商标和许可证的事情、那些人们不愿意在休息时间做的事情以及提供尽可能多的基础设备和支持、以便减少维护者社区对项目管理产生过多的担忧。”

在今年早些时候的一篇博客中,她详细地介绍了最近的工作,从确保Rust在美国之外的商标使用,到创建、管理和组织由Rust基金会赞助的社区支持项目的法律、财务和行政工作等。
她在那篇博客中指出,“在关于法律、安全和合规的问题上,我们仍然需要做大量的工作。”

并在与The Stack的谈话中补充道:“Rust是从Mozilla中分离出来的,而且Mozilla并没有真正计划长期管理它。因此,很多基本的事也需要我们来完成,比如商标或者一些非常罕见的法律问题。我们为项目的开发提供基础设施,所以我们需要负责遵守项目落地的地方法律。我们试图加强在基金会内部以及与项目社区合作的程序,这其中甚至包含了一些很小的事情需要处理,比如确保有人退出某个工作组时有一个既定的流程、确保有合适的基础设施支持、确保能够及时发现空缺,如果有人在休假,能够安排合适的人代替、管理云计算计划等等。还有一些在管理复杂关系之上的问题。例如,4月的Rust基金会会议记录中显示,收到来自其他Sliver(赞助)成员公司的反馈,认为Rust社区的某些贡献者正在代表其雇主,即基金会董事会的大公司,影响Rust的发展。”

一个赞助商甚至认为,成员公司很难影响Rust的发展。与此同时,不断壮大的Rust维护者队伍在继续推动Rust发展——例如,语言、库和编译器团队最近都发布了其计划表,Rust语言团队的目标时间是2024年、编译器团队是2022年,而库团队没有指定具体的时间。(不过如果深入了解了库团队的计划表,就能感受到其中的复杂挑战)

和许多开源项目一样,许多关键贡献者都是志愿者,尽管Rust基金会拥有谷歌、华为、Meta、微软和Mozilla等 "白金 "赞助商,这些大公司似乎还没有拨出大笔资金来支持维护者。不过,2022年启动的Rust基金会社区自主项目预算为62.5万美金,并且会提供四种类型的资助。如下:

  • Rust基金会奖学金:价值1,000美元/月的一年期奖学金(共20个).;
  • 项目资助:单项奖,用于支持1,000美元到20,000美元的独立作品;
  • 活动支持补助金:单项奖,金额从100美元到500美元不等,支持活动开展;
  • 困难奖补助金:单项奖,金额从500美元到1500美元不等。

Rust的未来

随着企业对Rust的兴趣不断增长,Rust的企业赞助商和基金会如何更好的支持Rust发展呢?对此,Rust库团队负责人Mara Bos在与The Stack的谈话中给出了回答。

资助开源,公司不能只顾自身利益

“Rust的发展依靠的是很多志愿者做他们喜欢的工作,以及做他们认为对项目最有利的事。公司应该尽力的支持这一点,而不只是关注自己对Rust的近期目标。有很多公司会为了实现他们特定的新功能而赞助很多钱,但是很少有公司会在没有具体任务的情况下提供赞助。这意味着很多工作,如组织、审查、探索、一般维护、重构和清理、文档、贡献者指南等等,大部分仍然是无偿/无赞助的。”
Alt

(Rust库团队负责人Mara Bos)

Mara Bos提到Go维护者Filippo Valsorda最近的一篇文章中的话:“要成功资助一个开源项目,公司需要资助的是维护者,并且金额要与他们作为高级工程师收入相当。”另外,Mara Bos补充道:“这类工作对项目来说非常重要,可以说比创建新功能更加重要。因为这类工作让人焦头烂额,做着一些保持项目健康发展所必须的基础性工作。对我来说,无附带条件的赞助才能让我最大限度地做对项目有利的事。”

关于企业赞助商试图为自己的利益而影响Rust语言的发展方向的问题,Mara Bos表示:“这不是我现在关心的事情。每一个Rust的贡献者都有自己的目标,所以这个项目才一直在处理许多潜在的冲突目标。如果参与决策的每个人都为同一家公司工作,而这家公司一开始为项目进行了管理和规划,那么这个项目就好像是公司的一部分,而不是他们只是在为之做出贡献的独立项目,那就会成为一个问题。Rust领导层的每一个人都对项目的独立性非常关心,如果雇主试图强迫他们做一些不符合Rust项目最佳利益的事情,他们就会进行反抗。如果一个人的下一次奖金或晋升和Rust项目是否接受他们的新功能挂钩时,他可能会感到更多的压力,这可能会导致做出决定的团队面临更大的压力。顺便说一下,Rust是通过共识而不是多数票来做决定的。”

“即使团队中大多数人都同意也不足以让决策实施。需要决策团队中的任何成员都不能对一项永久性的改变有任何反对意见,这样决策才能被接受。因此,要影响那些对项目最有利的决定并不是件容易的事。”Mara Bos在电子邮件中补充说。

除了在基金会工作,其他人也在其他领域努力。例如,由由Ernest Kissiedu和Beni Issembert领导的DevX计划(最初由Concordium提供支持),旨在“弥补从(F)OSS工具中受益的企业与构建和维护这些工具的服务不足的社区之间的差距”,他们不仅共同创立了Rust Cryptography兴趣小组,而且支持Rust形式验证兴趣小组,并赞助Rust项目的五名维护者七个月。
Alt

(Josh Triplett,Rust 语言团队的联合负责人)

Rust语言团队的联合领导Josh Triplett(也是DevX赞助的顾问)很高兴看到这里有各种各样的努力。他说道:“赞助必须通过任何特定的组织或实体,这是没有道理的。”“许多公司在赞助Rust开发者方面已经领先了很长时间,比如Embark工作室、Ockam、Discord等等。DevX正试图协调多家公司的关系,使其联合起来,以便能够做更大规模的赞助。Rust基金会开始了他们自己的赞助工作,这非常重要。”

面对暴涨的开发者,Rust的方向需要更加谨慎

Triplett补充说:“我们正在让Rust变得更加实用、把以前只在内部使用的工具带到更广泛的社区,以及推动Rust社区的扩展与合作。我们一直在思考,如果Rust要扩展到不止是两倍的用户,而是一百倍,他们都有自己的用例、目标和背景,那么Rust需要发展成什么样子。我认为2024年的路线图应该从这个方向开始。Rust走的是一条非常谨慎的路线,我们希望听到人们能够说他们能够感受到Rust的支持,因为它很稳定,而且让人相信其不会崩溃。”

在关于是否希望看到社区能够有更多的成就上,Triplett表示:”在实践和统一之间有一个连续的循环:我们尝试解决一类问题的方法,随着时间的推移,我们围绕共同的解决方案进行统一,作为未来工作的基础。”

“现在,我期待步调一致。例如,在标准库中标准化异步特征的工作让我感到很兴奋,因为人们可以编写异步代码,而不必担心他们应该使用哪个框架。我最期待的下一轮实验是基于能力的系统,比如I/O安全工作、Rustix库、WASI及其模块链接······”

不断出现的许可证问题

与此同时,在Rust基金会,关于许可证的问题一直不断出现。“Rust主要是在MIT许可证和Apache许可证(2.0版)的条款下发布的,还有一部分是在各种类似BSD的许可证下发布的。”

Mara Bos说:“大部分的贡献者都认为这算不上挑战。Rust(以及几乎整个Rust生态系统)使用的是非常宽松的许可证…开源和资本主义不相容的方式并不是通过许可证来解决的,而是需要更大的文化变革。我不认为Rust的许可证会改变,即使做出改变可并非让人难以置信。也许我们只是需要对许可进行一些澄清,使其更清楚地了解哪些条款到底适用于哪些部分。”但实际上,Rust基金会表示,他们接到了许多企业用户要求澄清的电话。

正如Rebecca Rumbul所说的那样:“目前我的当务之急只是,做一个全面的审计。我们认识到缺乏清晰度是一个问题,我们每周都会收到几封电子邮件提到,‘你能告诉我,如果我们使用Y,是否可以做X?’我们非常幸运拥有很好的律师,所以能够回答出个别问题。**但如果Rust继续以这样的速度发展,这些问题将会接踵而至,变得难以管理。任重道远。**实际上,我想很多维护者社区参与到一种工作小组中来,在那里可以运用他们的专业知识,但是我也不清楚将会发生些什么。

“但其实Rust基金会对于维护社区没有控制权,我们的存在是为了尝试和管理语言,并且确保语言的持续发展和取得成功。但我们也必须确保我们与社区的需求保持一致,了解他们想要什么,以及他们想怎么做。一些开源项目有点陷入困境,因为开源社区有他们自己的想法,有自己的个人/竞争权力结构。如果我想强迫人们做一些事情,那么我就像是在为企业工作,不是吗?”

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐