原文[1]:Jacob Kaplan-Moss[2] - 2024.02.16
(译者注:Jacob Kaplan-Moss 是一名软件开发者,Django 的共同创造者。Django 是一个开源的 Python Web 框架。)
警告:以下是一段抱怨。我现在的情绪有些挫败,对于控制自己的语气并无太大兴趣。如果你不想听我在开源问题上大发牢骚,那就请跳过这篇文章吧。
本周早些时候,在一个挫败的时刻,我登录上 Mastodon, 写下了这样的话[3]:
“我们坚信开源应该是可持续的,开源维护者应该得到报酬!”
维护者:*引入商业特性* “不,不是这样的”
维护者:*为一家大型科技公司工作* “不,不是这样的”
维护者:*接受投资* “不,不是这样的”
这条消息在网上引起了一些轰动,因此收到了大量的争论和反驳。(当然,也有很多人表示赞同,这让我感到很欣慰。)我认为其中一部分反驳是恶意的,对我原意的解读并不公正,但也有一部分是出于好意的误解或对我尖刻讽刺的误读。这是我的错,因为没有直接表达原本的意思。所以,这篇文章就是我对那条讽刺性帖子的补充和深化。
我的基本立场是,支付人们从事开源工作是好事,毫无例外。我们需要停止批评那些得到报酬的维护者,开始庆祝他们。 是的,所有的机制都有一些缺陷,但那是因为世界本身就有缺陷,而不是接受报酬的人的错。对那些找到谋生之道的维护者大喊大叫是错的。
为什么这个问题很重要这当然是一个个人问题:我已经参与开源社区超过二十年了,有许多来自这些社区的同事和朋友,他们最希望的就是能把开源工作变成他们的职业。但大多数人做不到,这让人感到遗憾。那些能做到的人,却常常收到恶意邮件,批评他们的财务选择,质疑他们的道德。
但更深层的是,开源对人类来说是有益的。不太夸张说,开源是人类作为一个物种最显著的集体成功之一!它是少数几个基本上全人类共同努力造福所有人的地方之一。。没有开源的世界,将比我们现在生活的世界要糟糕得多。
所以,我希望那些愿意从事开源工作的人能够做到,而且应该能够过上舒适的生活,满足他们的基本生活需求。他们为人类做出了有益的贡献;他们不应该为此作出牺牲!
定义讨论的一部分问题在于,我们对核心术语的理解并没有共识。因为我在原始帖子中使用了“开源”这个词,所以回复中的一个主题是人们对我所说的“开源”的误解(或者更令人疲倦的,重新点燃了“开源 vs 自由软件”的辩论)。
所以,如果我想有一半的机会来解释我真正的意思,我需要首先定义这些术语对我来说是什么意思:
“开源” / “自由软件”(“open source” / “free software”)注意这里故意使用了小写。我指的并非 是 OSI 定义的 Open Source™,也不是 FSF 定义的 Free Software™。我使用这些术语的方式是最广泛、最包容的:“我可以阅读、修改和发布变体的源代码的软件,或许有一些条件。” 所以包括了 OSI 和 FSF 的许可证,但也包括了 Polyform 许可证[4] 和 JSON 许可证[5],以及 BSL[6],这些都在我对“开源”的理解中。
这或许是一个旁观点,但“最小化”的开源定义意味着“只有 OSI 批准的许可证” —— 或者更糟糕的是,“GPL 是唯一的 '真正的' 自由软件许可证” —— 这就是问题的一部分。我希望看到更多的许可证选项的创新和多样性,如果这意味着要引入一些超出“任何人都可以用于任何目的”的额外限制,我完全可以接受。在我看来,从 Blue Oak[7] 到 BSL[8](甚至比 BSL 更严格的)的广泛许可证都“算作”开源。
所以,在这篇文章中,我将使用“开源”来指代从“完全无限制”到“有一些限制的无限制”的这个范围内的任何东西,我不打算明确说明“一些”会是多少,以至于仍然可以被认为是自由的。我甚至会交替使用“开源”和“自由软件”这两个术语,以强调在这个上下文中,这些术语的精确定义对我来说并不重要。
这种立场可能真的会让一些人感到恼火,这在某种程度上是有意为之。不是因为我想故意激怒任何人,但……我可以这么说:如果我对这些术语的随意使用在谈论人们如何谋生 的上下文中让你感到不安,那意味着你更关心术语和定义,而不是人,我希望你能坐下来,感受一下这种不安。
“可持续性”接下来,当我谈论开源中的“可持续性”时,指的是什么?人们用这个词来指很多事情——良好的治理,健康的社区,资金,等等。
但是,当我谈论“可持续性”时,指的是非常具体的事情:“维护者能否过上体面且舒适的生活,同时编写自由软件?” 如果开源是“可持续的”,对我来说,就意味着人们可以选择将编写开源软件作为他们的工作,并确保至少能满足基本的生活需求——住房,食物,医疗保健等。理想情况下,这应该更多;我希望编写开源软件能让人们过上舒适甚至奢华的生活。
开源并不可持续几乎没有人能通过编写自由软件赚钱。在所有的软件工程师中,这样的人如此之少,我们基本可以忽略不计。
当然,有一些公司雇佣人们从事开源工作:Canonical、Red Hat、Hashicorp 和 Mozilla 是我想到的几个,相信你还能想到更多。但是,(a) 这些公司雇佣的工程师与编写专有软件的数百万工程师相比,数量微乎其微,(b) 并非这些组织的每一位工程师都只编写开源软件;几乎所有这些组织的商业模式都依赖于产品的某一部分是专有的。因此,即使是最大的开源成功案例也只占了一小部分。
让我们看看 Django。据我估计,每天有数十万的工程师使用 Django。有多少人得到报酬来开发 Django 本身?1.5 个人 —— DSF 雇佣了一位全职和一位兼职研究员。这就是所有只为开发 Django 获得报酬的人。Python 本身的情况也类似:每天有数百万人使用 Python,但是被支付以此为生的人不到十个。
“可持续性”意味着大约有十几个人在 Django 上全职工作——并且报酬接近行业中位数。这意味着有数十人全职工作在 Python 上。甚至,考虑到其范围、规模和重要性,仅仅 PyPI[9] 本身就应该有一个至少 10-15 人的团队。
更重要的是,开源的“可持续性”意味着,维护关键依赖项的“内布拉斯加州的普通人”[10]能过上富裕的生活,并且有几个同事,这样他们就能偶尔休假。
我们生活的世界与此相差甚远。
梦想:全自动化的豪华生活,性取向自由,共享太空共产主义这通常是某人讽刺地指出,“你并不真的讨厌开源,你讨厌的是资本主义”的时候。这是一种虽然正确,但没有帮助的说法。
是的,人们必须在编写开源软件和负担得起医疗保健之间做出选择,这是一个问题,深深地根植在我们当前实施的零和资本主义中,这个问题完全不能归咎于自由软件运动。梦想是,社会和政府将认识到自由软件肯定是公共利益,并适当地为其提供资金。同时也解决医疗保健,住房问题,公共交通,社会安全网,等等……
我百分之一百万地支持这个愿景,但这种情况不会在一夜之间发生。事实上,我怀疑它是否会在我们的有生之年,甚至是否会发生。
我们必须接受世界的现实——即使这不是我们想要的世界。这意味着我们必须接受维护者需要得到报酬的这个想法。我经常看到这样的争论:“维护者不应该被私人公司支付报酬,因为政府应该支持他们。”听起来很好——但 政府并没有这么做! 所以这个争论归结为“开源维护者不应该得到报酬”。我无法接受这个观点。
每当有人得到报酬来编写开源软件时,这都是一次胜利现在,在现实世界中,开源的可持续性意味着支付维护者的报酬——每次发生这种情况我们都应该庆祝! 每当维护者找到一种获得报酬的方式,都是一次胜利。
被 Microsoft 雇佣来开发 Python?胜利。
通过资助获得资金?胜利。
在 Patreon 上达到可持续的资助水平?胜利。
通过 VC 资金开发自由软件?胜利。
基于 Open Core 模型建立一个可持续的业务?胜利。
Hashicorp?胜利。
通过付费托管选项支持开源项目?胜利。
成功使用非 OSI 批准的许可证以避免被 Amazon '剥削'?胜利。
在我们实现梦想之前,每一位找到了编写自由软件并支付房租的人,都代表着一次胜利,我们应该相应地庆祝。
取而代之的是批评但现实并非如此。相反,每次维护者找到一种获得报酬的方式时,总会有人出来批评和抱怨。非 OSI 许可证“不能算作”开源。被 Microsoft 雇佣的人“受制于公司利益”,不值得信任。Patreon 是“乞求施舍”。通过 GitHub 筹款是“支持 Microsoft 获利的行为”。风险投资的资金意味着可能会面临“被突然撤资”或“项目质量急剧恶化”的风险。Open Core 是“以次充好”。
这些都不是假设;每一个例子都是我看到的关于接受报酬的维护者的真实言论。甚至有一位维护者告诉我,他因为出售 T 恤而受到批评!
看,我们支持维护者的每一种策略确实都有问题。VC 投资确实带有附加条件,这常常会导致后续的问题。Patreon 或 GitHub(以及 Stripe)从赞助款中抽取一部分,这确实让人不爽。PolyForm 或 BSL 强加的额外限制确实违反了 Freedom 0[11] 的理想。我自己经常因为发现想要的某个开源工具的关键特性,只对付费许可证持有者开放而感到沮丧。
但你可以在支持和庆祝维护者的同时,批评这些系统! 你想怎么骂 A16Z 这家风险投资公司都行,我不在乎。(他们也不在乎。)但是因为维护者接受了 VC 的钱而责怪他们,这是把愤怒指向了错误的方向。使所有这些不同的融资模式问题重重的结构性和社会性问题,并不是那些试图以开源工作谋生的人的错。
这就像因为某人在 Dollar General 购物而责怪他们,而这可能是他们可以接触到的唯一商店。Dollar General 的掠夺性商业模式绝对糟糕,政府政策导致的食品欠缺地区也是如此,但这些都不应由需要牛奶且没有其他选择的人来承担。
纯粹性只会限制开源对社会的价值应该有更多的人得到报酬来编写自由软件,但要实现这一点,我们必须接受一些并不纯粹或完美的机制。 如果你愿意,可以批评这些机制。请努力改变潜在的社会不平等!
但是,当一个维护者找到了获得报酬的方式时,应该为他们欢呼。这对我们所有人来说都是一次胜利。
参考资料[1] 原文: https://jacobian.org/2024/feb/16/paying-maintainers-is-good/
[2] Jacob Kaplan-Moss: https://jacobian.org/
[3] 写下了这样的话: https://social.jacobian.org/@jacob/111914179201102152
[4] Polyform 许可证: https://polyformproject.org/licenses/
[5] JSON 许可证: https://www.json.org/license.html
[6] BSL: https://mariadb.com/bsl-faq-mariadb/
[7] Blue Oak: https://blueoakcouncil.org/license/1.0.0
[8] BSL: https://mariadb.com/bsl-faq-mariadb/
[9] PyPI: https://pypi.org/
[10] 内布拉斯加州的普通人: https://xkcd.com/2347/
[11] Freedom 0: https://en.wikipedia.org/wiki/The_Free_Software_Definition