这是一篇构思了很久的文章,今天借着 Alist 事件的契机,想和大家聊一聊我对于开源社区现状及未来的看法。
困境:个人项目蒙雾的未来
一个成功的开源项目,从另一方面说来,实际上是被少数人维护,却被无数人使用的基础设施。当 Feature 越来越多,当 Issue 永远处理不完,当开源的热情逐渐消退,而经济回报却遥遥无期,有多少维护者还能够扛得住这份沉重的责任?
开源社区死了,项目也就死了——要么把项目打包出售,要么将它归档,再不过问。
黄昏:中流砥柱的消失于乌托邦的破灭
曾经的 Linus Torvalds 与 Linux 社区,毫不夸张地说,就是每个开源项目的偶像与学习目标。然而,社区终究是人构成的,有人存在,就有矛盾存在。当 Torvalds 以硬派手段维护 Linux 内核的稳定时,其他人的怨气也在无形中悄然积累。终有一天 Linus 没有足够的精力掌管 Linux,那么接替他的人是否还有能力带领 Linux 继续走向辉煌呢?
事实上,当俄罗斯的开发者被 Linux 社区扫地出门的那一刻,这片由 Linus 倾尽一生打造的开源图腾已经在全世界面前崩塌。更遗憾的是,Linus 本人这一次没有坚定地与他的社区和代码站在同一边,而是默许着政治博弈席卷开源社区,甚至推波助澜地将俄罗斯定义为“侵略者”,并宣称该决定“不会撤销”,其表现出的优柔寡断,引发了 Linux 社区内外更强烈的指责与担忧。然而,从另一方面来说,我们确实不应苛求个人独面政治压力,不应逼迫 Linus 带着整个 Linux 社区冒着崩解的风险毅然决然地与政治实体对立。然而,无论过程如何,显而易见的结果就是,我们必须面对一个现实,开源不是与世隔绝的避风港,不是永远纯粹的技术社区,它已经被迫卷入了全球政治博弈和斗争,被迫掺杂了项目领导人的政治立场,代码面前人人平等的誓言,此刻已经风雨飘摇。
关门:与社区渐行渐远的开源
一个没有社区的开源项目,还是开源项目吗?
我们所期待的开源项目,不仅局限于字面的“开源(Open Source)”——开放源代码——更代表着社区的共建。
谷歌在 AOSP 周围挖起护城河,把控着整个项目的开发走向,掌握着绝对的话语权。所谓社区,只不过是追随者,而非参与者、共建者。项目的走向,不取决于社区的声音,而取决于企业的利益。
我们能在 pytorch 和 k8s 社区里罕见地看到 Google、微软、AWS 等互联网巨头倾力合作开发,看到项目在互联网的巨头博弈之中仍然保持开放性和自主性,其根本原因并非背后的基金会,而是这两个项目均涉及这些互联网巨头的核心或重要业务,是难以替代、难以割舍的重要基础设施。多方基于商业利益的博弈,最终形成了“谁也别想独吞”的开源共建模式。事实上,基金会治理并不是其维持相对自主的原因,而是特定的内外环境共同缔造的结果,因此并非所有开源项目都能够复刻它们的成功。大部分开源项目最终的结局仍旧是像 AOSP 那样,成为某家巨头公司的后花园,然后身不由己地走上一条服务企业利益的发展道路。
反目:脆弱的生态与不对等的责任
当开源项目之间的依赖关系变得错综复杂,一个看似微不足道的个人项目,却可能引起大厦的分崩离析。就如 NPM 曾发生的 left-pad 事件,NPM、开发者、使用者似乎都有自己的道理和苦衷,但崩溃仍然发生了。结局就是,社区大范围混乱,个人开发者仍然没有获得尊重,而隐藏的矛盾进一步浮出水面。
这个由高度信任、高度依赖、高度协作体系搭建的大厦,真的能够为它的成员们建立起高度的责任与回报机制吗?
毒瘤:自溃疡中浮现的信任危机
当我习惯于依赖自己长期使用的项目,习惯于信任与自己共处一室的贡献者,毒瘤就会悄然滋生。震惊全球的 xz 后门事件,将开源社区的弱点揭露于大众视野。这是一场时间跨度长达数年的、精心策划的攻击,攻击者超凡的耐心与能力令人叹为观止。
尽管多方采取了有效的行动让事件重回正轨,但这起事件彻底击溃了开源社区基于“能力和贡献”的信任墙——当身边看似最可靠、最有能力的人都可能是潜伏的敌人,开源项目还能信任谁,依赖谁?
眺望:曲折的道路与光明的未来
现实告诉我们,开源社区并非理想主义者的乌托邦。如今的开源社区,就像一个从青春走向成熟的孩子,正在一次次的伤痛中积累教训,学会与天真做道别,学会与现实做交易。我们看到更多的大企业、基金会、平台为开源开发者提供优惠、便利和经济收入,看到更成熟的安全审查机制被引入开源项目托管平台,看到更多项目从共建走向共治,看到更多开发者为社区提供源源不断的生命活力。
Alist 事件的矛盾爆发,是一场深刻的教训,同时也让我看到了未来的希望。我看到所有人站在一起,向私自出售项目的创建者说不,向有投毒前科的接手公司说不,向染病的旧社区说不,去自发地建立 Fork,凝聚力量建设起新的健康社区。
开源社区正在,也将会继续遭受挑战,迎来创伤。但开发者们的意志是坚定的,开源社区正在,也将会更加强调安全性、专业性、凝聚力、强调责任共担,强调经济持续,强调政治务实,强调民主法治。普通开发者也正在通过不断完善的协议体系,要求企业承担更多的社区责任,打破“无限索取,零回馈”的不可持续的传统思想。
开源社区正在经历一场漫长且深刻的变革。变革虽然痛苦,道路虽然曲折,但社区的努力将推动开源走向更更加强大与坚韧的光明未来。