作者 | 徐杰承
审校 | 云昭
一直以来,Rust都因其能够提供极佳的内存安全保护、并发和高效的编程体验而得到广大开发者和大量科技企业的青睐。然而作为一款无论在特性还是采用率方面都十分成功的语言,Rust的项目治理却存在着很多问题。
Rust基金会长期以来的官僚主义行为,使得Rust开源社区中的用户怨声载道,而不久前发生的“商标闹剧”更是使将Rust的内乱推向了高潮。最终,部分无法忍受Rust基金会强权的社区成员对Rust进行了分叉并创建了CrabLang社区。
1、离谱草案引发的fork
其实就背景而言,Rust基金会与开源社区之间的关系本就如履薄冰。而在今年4月,Rust基金会就正在更新的商标政策在社区征求反馈意见。在新版草案中,Rust基金会希望禁止在与Rust相关工具或用Rust编写的软件名称中使用“Rust”,甚至在域名或子域名部分也有针对性限制。
这意味着若草案政策成立,将迫使许多基于Rust的开源项目为了合规而不得不更改名称。对此,大量感到不满的Rust社区成员向基金会提出了抗议,甚至有人直言,“希望基金会尽快放弃这项政策,否则将严重影响Rust语言的发展”。
虽然在社区的压力之下,Rust基金会最终发表了新的声明,并在更改商标政策草案的同时关闭了草案的反馈表单,试图平息这一争议事件。但经此一役,部分对Rust基金会彻底失望的用户还是选择将Rust进行了fork并成立了CrabLang社区分支。
2、CrabLang:新的乌托邦
在CrabLang的官方介绍中,他们表示社区分支的创建是对于企业和基金会提出的限制性商标政策而做出的回应。而Rust基金会的新草案正是引发社区fork的原因,CrabLang希望能够通过一种更好的方式解决这个问题。
CrabLang的目的并不是取代Rust,如果用户和社区成员对于Rust的现状满意,CrabLang会鼓励用户继续使用Rust语言。CrabLang并不希望分裂社区,而是希望能够帮助为Rust感到担忧的人提供一种新的选择,保障他们在使用、创造和推广语言方便有更多自由。
CarbLang强调称,其与Rust并非对立。fork的主要分支将继续与Rust代码库保持同步。fork的主要目标是确保社区拥有一个与成员价值观和开源愿景相同的替代方案,让社区可以在不被任何利益因素所干扰的情况下茁壮成长。
CarbLang的发展源于社区成员对这门语言的热爱,他们会尽可能保证成员与用户在使用它的同时保留创建内容、推广名称或商标以及其他资产的能力,通过提供社区的驱动替代方案,CrabLang希望保持协作、创新和自由精神。CarbLang拥有Rust全部的内存安全功能,但不会有充满官僚主义的作风。
3、Rust基金会作死不断
然而对于CarbLang社区的一系列动作,Rust基金会却显得十分不屑。在一次公开采访中,Rust核心团队成员、Rust基金会原执行董事及创始人 Ashley Williams表示,fork更像是谈判策略,她认为社区之中没有人是语言专家。在这种情况下,没有人会在意这个组织,他们只能作出些滑稽的动作。
但很快,由Rust基金会主导的另一场闹剧就狠狠打了这位趾高气昂的领导者的脸。就在上周,RustConf2023的组织者找到即将于会上进行主题演讲的JeanHeyd Meneide,让他接受从“主题演讲”降级为“常规演讲”。而其中的原因是由于Rust基金会领导组的部分成员对JeanHeyd的肤色及演讲主题感到不满。
Rust领导组对JeanHeyd的不尊重引发了Rust社区中的“海啸”。面对这种强权政策和种族歧视,Rust项目的核心贡献者JT愤然辞去了Rust的工作并发文表示:基金会羞辱了该领域最重要的专家之一。这种情绪得到了社区强烈的响应,也使得社区中的大量无法忍受基金会行为的成员开始转向CarbLang。
根据GitHub star history显示,在四月发布后,CarbLang在短期内获得了1900+ stars。虽然增长在4月至5月期间开始放缓,但随着Rust基金会的再度作死,CarbLang的stars数量迎来了新一轮的暴涨,截止目前该项目已拥有3800+ stars,并且这一趋势仍在延续。
4、Fork会是好的选择吗
事实上,在如今的开源社区中有很多知名项目都是forks。例如目前世界上最流行的Linux发行版Ubuntu便是Debian的一个分支;而拥有仅次于Chrmoe用户群体数量的Mozilla Firefox也是从Mozilla应用程序套件中fork出来的,各种成功的案例比比皆是,但同样也有许多项目最终失败。
总而言之,fork开源项目有它的两面性。新的项目要么会在成员的支持下产生更多新的产品,并建立自己的生态系统;要么则可能会随着主项目的继续繁荣而逐渐走向衰落并最终慢慢消失。
然而CarbLang的分叉并不是为了取代或是重新创造Rust,用他们自己的话说,“我们并不反对这个项目的原始语言Rust,我们的主要目的是建立一个与开发者价值观相同的社区,让不满于Rust现状的人们能够拥有更多选择的权利。”
CarbLang的目标不同于以往绝大部分的fork项目,而对于其能否最终取得成功,开发者和社区成员的选择与态度决定着一切。无论最后Rust和CarbLang会走向哪里,这件事都证明了一个事实,即使是开源基金会,所谓的民主和开放治理也可能会存在问题,但开源精神始终在推动着一次又一次的创新。
参考链接:
https://github.com/crablang/crab
https://analyticsindiamag.com/internal-drama-unveiled-a-behind-the-scenes-look-at-rust/
https://www.jntrnr.com/why-i-left-rust/
https://crablang.org/
https://twitter.com/crablang