没人愿意为 FOSS 付钱,而我们可以逼他们付
作者用演化稳定策略解释开源为何总是免费获胜,然后指出真正的钱早就流向了 JFrog、Snyk、Docker 这些卖「可靠供应」的厂商。他的提议只有一句:注册表应该向公司收费,并把其中固定一块按依赖树分给维护者。
中文
复制
我第一次觉得「该写一篇关于开源经济学的博客」是在 2013 年,所以这篇东西酝酿了很久。到今天我为止最接近的一次是 2022 年,我在 iOS 备忘录里写了一段意识流吐槽,结尾基本就是「这他妈什么都不管用」。然后它又躺了四年,因为「什么都不管用」这件事太让人沮丧,不值得为它写 5000 字。现在,我终于有一个想法了。不过要讲到那儿得花 5000 字,所以如果你没这个时间,直接跳到关于注册表(registry)的那部分。
开源是一场有稳定结局的博弈,而这个结局就是免费获胜
我以前写过鹰与鸽,那是演化生物学里的一个模型。你有一群动物在为某种资源竞争。其中一些会为它打斗(鹰),另一些会分享它(鸽)。全是鹰的种群是不稳定的:大家都在不停受伤,而最先出现的两只鸽会互相合作,把所有人竞争下去。全是鸽的种群同样不稳定:第一只出现的鹰跟所有人竞争,而且每次都赢。稳定的是两种类型的混合,比例刚好到「改变自己的行为对你没有好处」的程度,于是没人改。这种混合叫做演化稳定策略(ESS),而关键词是「稳定」。它不是最好的策略(最好的大概全是鸽,谁都不会受伤),它只是种群最终停在、并且离不开的那个状态。我觉得它是思考软件的一个有用方式,因为软件里也有鹰和鸽。
闭源是鹰。它竞争:把代码扣住,为「别人没有的东西」收高价,并努力维持这种局面。开源是鸽。它合作:把代码送出去,并从别人也把代码送出去中获益。它们最终争夺的资源是钱,虽然首先表现为用户和开发者的注意力。
我们落到的是一个非常具体的均衡。一段软件的演化稳定策略是「任何人都可以免费把它用于任何用途,包括商业用途」。 那就是 MIT、BSD、Apache,那些什么都不要求的许可证。每一个试图做「稍微没那么慷慨的鸽」的项目,都输给了留在「完全的鸽」的项目,我可以给你很多例子:
- 2017 年 Apache 软件基金会禁止 React 的 BSD+Patents 许可证进入 Apache 项目,WordPress 宣布要弃用 React,几周之内 Facebook 就把 React 改为 MIT 许可,而不是看着它死掉。
- 2021 年 Elastic 把 Elasticsearch 改成 source-available 许可证,以阻止亚马逊把它当服务卖。亚马逊把它分叉成 OpenSearch,那个分叉最后进了 Linux 基金会,有数千名贡献者,而 2024 年 Elastic 悄悄改回了开源许可证。
- 2023 年 HashiCorp 对 Terraform 做了同样的事。OpenTofu 分叉进了 Linux 基金会,而 HashiCorp 被 IBM 收购。
- 2024 年 3 月 Redis 也这么干了。Valkey 分叉在大约一周内就拉到了每一家云厂商,而 2025 年 5 月 Redis 把 AGPL 加了回来,CEO 承认这次改动让他们损失惨重。
在许可证层面试图为开源收费的人,没有一个能在面对一个运作得当的分叉时守住阵地,而我认为这不是因为意识形态。运营那些公司的人会很想为自己的代码收费,而大多数分叉它的人也并不真的在乎抽象意义上的自由。这是市场结构造成的。「颠覆」在最初的意义上,是指一个差得多、也便宜得多的产品占据了市场底部,然后逐渐变好,直到把整个市场吃掉,而这个过程会不断重复,直到产品变得完全不值钱。软件从有软件那天起就一直被这样颠覆,最后你得到的是一个分成两半的市场:一个几乎人人都在用的巨大的廉价半区,和一个赚走了几乎全部利润的小得多的昂贵半区。安卓拿走了市场份额,iOS 拿走了利润,而看你在看哪个数字,它们都是巨大的成功。免费赢走份额,闭源赢走利润,而两者都赢了。
这个稳定的结局靠人们烧尽自己来运转
到目前为止都还好。自由软件赢,闭源软件赚钱,大家各有各的位置。问题在于那个免费层从里面看是什么样子。
60%的开源维护者没有为这份工作拿到报酬。这来自 Tidelift 2024 年的调查,和他们在 2023 年得到的数字一样,也和 2021 年一样。在没报酬的那些人里,61% 是独自在干。所有维护者里有近 60% 已经退出或想过退出,他们给出的理由你也能猜到:他们有自己的生活,他们失去了兴趣,他们烧尽了。
这些人撑住的软件量多得离谱。Sonatype 在 2023 年看了 120 万个开源项目,发现其中 11% 有人在积极维护。Linux 基金会的 Census II 发现,136 名开发者写了五十个最常用包里超过 80% 的代码。哈佛的一项研究估计,如果开源消失,公司得花8.8 万亿美元才能替代它,并发现 5% 的开发者创造了其中 96% 的价值。顺便说,这就是 JavaScript 生态的全部性格:一大堆只有一个维护者(甚至不到一个)的小包,坐在那些把身家押在它们上面的公司的依赖树底部。我在 npm 待了五年,看着这件事发生,它从来没有变得不那么让人警觉。
现在人人都在用的例子是 xz。2024 年人们发现,一个几乎存在于地球上每一台 Linux 机器里的压缩库里面有后门,是一个假贡献者在两年里植入的——他非常耐心地把一个无偿维护它的人社会工程了,让对方交出了钥匙。那位维护者公开说过自己在苦苦支撑、跟不上了,而没有人去资助他,倒是有人去操控他。这个后门是被一位微软工程师抓到的,他注意到 SSH 比应有的速度慢了半秒——这不是你希望依赖的那种防线。
现在,讲这个故事最流行的方式是「这个系统正在崩坏」,而我认为那不对,这个区别很重要。这个系统没有崩坏。它是稳定的,稳定在我们集体决定容忍的人力代价这个水平上。 一个维护者烧尽,另一个人接手,他也烧尽,如此往复。接连不断的接近烧尽不是这个均衡里的 bug,它就是均衡本身。开源非常老了,如果它要崩,早就崩了。这是一台靠血运转的机器,而因为它是演化稳定策略,我们一直无力改变它。
变的是速度,而且只有速度
但这个问题感觉在变糟,对吧?如果一个稳定的系统产出的结果比以前更差,那就是某个输入变了。变了的那个是速度。
Linux 是慢慢积累起来的,所以你可以用十年里的夜晚和周末维护内核的一部分,因为没人在等你。然后 Web 出现了,然后 npm 出现了,十年里冒出一百万个微型模块,其中任何一个都可能在发布几周内成为某个人的生产系统的承重结构。软件变得重要起来的速度,快过任何机构注意到它重要的速度,更别提资助它了。与此同时安全也变快了:一个流行库里的 bug 现在几天内就会被利用,并且一次性落到数万家公司头上。所以维护一个流行包的成本大幅上升,而维护它的回报恰好停在原地,也就是零美元加一点暖心感。
夜晚和周末不够用了,但人们还是继续做,因为他们本来就会写这些软件。开发者写软件就像歌手唱歌,也就是说就算没人在听他们也会做,而这不是一个待修复的问题,它是让整个系统运转起来的东西。任何以「让开发者少写软件、或者少慷慨地写」为前提的解决方案,在我这里都是不可接受的。问题不在于人们免费写软件。问题在于我们把事情安排成:那些免费写出最有用软件的人,得到的奖励是第二份没有报酬的工作。
我们试过的每一种办法都只是挪动了钱,没有一种挪动了均衡
这是最让人沮丧的一段,也是我拖了四年的那一段,所以我们快点过。下面是我们试过的:
- 打赏。 GitHub Sponsors 在 2026 年 7 月的累计支付额突破了 1 亿美元,听起来很多,直到你把它放在 8.8 万亿美元旁边。它的分配方式也是打赏一贯的分配方式,也就是幂律分布:少数知名人士过得不错,而受赞助维护者的中位数收入只够买顿午饭。Open Collective、Patreon、Ko-fi,形状一样。
- 基金会。 Linux 基金会、Apache、OpenJS、Python 软件基金会。这些是真实存在的机构,有真实的预算,而它们花钱的主要方向是员工、活动和基础设施。这不是批评;总得有人办会议。但在 Tidelift 的调查里,只有 3% 的维护者从基金会拿到过钱,1% 从政府拿到过。基金会是公司在花钱掌舵,而不是公司在给划船的人付钱。
- 企业慷慨。 谷歌的开源办公室、微软的 FOSS 基金,以及 Sentry 的开源承诺,它要求公司按每位开发者每年 2000 美元捐出,2024 年启动时承诺额约 130 万美元。我喜欢这个承诺。它和这份清单上其他所有东西有同一个缺陷,就是它是慈善,而慈善没法扩展到万亿量级。在谷歌和 OpenSSF 花了好几年试图把钱送给维护者的 Dan Lorenc 说过,他们手上的钱多到送不出去,而它没有修好任何事。我认为那是一次失败的尝试,而不是一条自然规律,但它确实要记进失败尝试的清单。
- 付费安全。 Tidelift 的整套模式就是付钱给维护者让他们的包保持安全,再把这份保证卖给公司,这是个好主意,而 2024 年 12 月它被 Sonar 收购了——好主意如果自己找不到足够的买家,就会这样。OpenSSF 的 Alpha-Omega 每年发出五六百万美元,主要用来资助基金会内部的安全人员,这很合理,但规模很小。
- 政府。 德国的主权技术基金是个很棒的想法:纳税人的钱,没有附加条件,直接用于关键基础设施的维护,从 2022 年以来向六十多个项目投了 2400 多万欧元。但它也只是一个基金,在约 190 个国家里的一个,每年花约 2000 万欧元,而全欧盟范围的版本还是一个要从 2028 年开始的预算周期的提案。
- Mozilla。 Mozilla 的资金来自插进谷歌搜索收入里的一根吸管,Mozilla 的每个人都知道这是个问题,所以他们一直试图多元化,也一直没能做到。(有一段时间 Mozilla 和谷歌真的在旧金山同一栋楼里,只是不同楼层。)你没法把「找到别人的收入流然后插根吸管进去」推广开来,因为收入流不够分。
- 许可证,这个我们已经讲过。双许可、source-available、「fair source」:每一种都是一只试图当一点鹰的鸽,而每一种都输给了隔壁那只完全的鸽。
看看这些东西有什么共同点。它们全都是自愿的。公司被请求捐出,有些捐了,大多数没捐,而没捐的那些得到的软件和有捐的一模一样。慈善没法扩展,而没有人有发布强制令的权力。我们已经请求公司为开源付钱付了三十年,我想我们可以认为这个「请求」已经被充分测试过了。
公司确实在为开源付钱,只是不付给写它的人
下面这件事让我意识到我之前的思路错了:公司已经在为开源付钱,而且是相当多的钱,他们只是不把钱付给维护者。
JFrog 卖 Artifactory,那是一个坐在你的构建服务器和公共包注册表之间的私有镜像。JFrog 2025 年营收 5.32 亿美元,增长 24%。Snyk 扫描你的依赖找漏洞,年营收约 3.26 亿美元。Docker 运行着每个容器镜像都来自的那个注册表,营收 2.07 亿美元。Chainguard 卖加固过的开源镜像版本,一年里从约 4000 万美元做到 1 亿美元的目标。Sonatype 是私营的,但它既运行着每个 Java 构建都会拉取的 Maven Central,又卖你放在它前面的 Nexus 镜像;按 Sonatype 自己的数字,Maven Central 86% 的流量来自云厂商,也就是说来自公司。再加上现在拥有 Tidelift 的 Sonar,还有 Socket,以及供应链安全市场里的其他玩家,你轻松就超过每年十亿美元。
这些钱都是干什么用的?剥掉营销,这些公司卖的其实是同一样东西,也就是可靠的免费代码供应。注册表宕了你的构建不会断。你的依赖被缓存、被扫描、被签名,而且能被证明就是它们声称的东西。下一次 Log4Shell 发生时,你能在一小时内查出你两千个服务里哪些受影响。那是一个解决真实问题的真实产品,公司买得很踊跃,因为「我们依赖的那个免费东西可能坏了或者是恶意的,而我们看不出来」正是采购部门知道怎么花钱的那类问题。
我想说清楚,我不认为这些公司是反派。其中几家是我喜欢的人在运营。他们解决的是真问题:公司需要能依赖自己没有写、也检查不了的代码。他们只是在错误的层次上解决它。他们卖的是针对维护者的保险,而维护者才是这条链上唯一真正能让代码更安全的人,她什么也拿不到,而上面两层的某家公司靠告诉你她做了没有来收钱。
这改变了我对整个问题的看法。多年来我以为约束是钱的供给:公司就是不愿意为开源付钱,也没有任何机制能让他们付,而 Lorenc 的故事符合这一点。但 JFrog 的发票说的正相反:公司愿意为开源付钱,而且很乐意,只要它以「供应链」这个无聊条目的形式出现。钱的供给从来不是问题,问题是它在往下走的过程中被谁截走了。
免费赢下代码这场博弈,但默认赢下供应这场博弈
那为什么 ESS 在这里不适用?如果免费总能赢,为什么没有一个免费镜像把 JFrog 吃掉?
因为这里有两场博弈在同时进行,而它们有不同的赢家。在代码这场博弈里,资源是软件本身,免费每次都赢,因为任何人都能复制代码,所以任何为它收费的尝试都会招来一份不收费的副本。在供应这场博弈里,资源是「不用去想代码从哪来」,而这场博弈由默认选项赢下。
看证据。从来没有谁成功分叉过一个注册表。npm、PyPI 和 Docker Hub 的免费镜像都存在,跑起来微不足道,有时离你只有一个命令的距离,而公司照样每年付给 JFrog 五亿美元。Red Hat 把桌面输给了 Ubuntu,而 Ubuntu 是一个有钱人免费送出来的,而且输得很彻底;鸽赢下了代码这场博弈。Red Hat 后来以 340 亿美元卖给 IBM,如今每年靠给公司供应同样的免费代码(附一个电话号码)赚超过 60 亿美元。任何人都可以免费拿到同样的代码,很多人也确实拿了,但非常多的公司还是付钱给 Red Hat。
Docker 是最清楚的例子,因为它发生得近,而且是公开的。2020 年 11 月 Docker Hub 开始对匿名和免费拉取限流。2021 年 8 月,Docker Desktop 对员工超过 250 人或营收超过 1000 万美元的公司变成付费产品,对个人、小公司和开源项目继续免费。如果免费总能赢,一个免费替代品本该把他们吃掉,而 Podman 和 containerd 确实存在、免费、而且完全够用。但 Docker 的营收从 2020 年的大约 1200 万美元,到 2021 年超过 5000 万美元,再到 2024 年的 2.07 亿美元,付费席位超过一百万。(Docker 还试过宣布按拉取量计费,然后在 2025 年开发者闹起来之后取消了——这恰好告诉你哪种收费形状行得通:向公司收费,而不是向下载收费。没人想要一张每次 CI 重跑就变高的账单。)
免费赢下代码这场博弈,但供应这场博弈由默认选项赢下,而默认选项可以收费。 注册表是整个系统里两场博弈唯一接触的地方,因为它们是免费代码变成供应的那个位置;而与许可证不同,注册表没法靠复制绕过,因为它不是一条法律限制,而是一件极其方便的基础设施。他们并不_想_绕开它;绕开它是一件麻烦到值得花钱避免的事。
没有人在注册表层认真试过这件事
这时有人会说「这事不是试过吗?」,答案是某种意义上是,而它们失败的方式很有教益。我要把「注册表层」定义得窄一点:谁拥有那个所有人都在从它那里下载东西的域名。按这个定义,这份清单上几乎没有东西算数。
2019 年 8 月,Feross Aboukhadijeh——他维护着一百多个 npm 包,包括 Standard——开始在 npm install 期间在终端里打印赞助信息。开发者讨厌它,赞助商几天内就撤了,Feross 把它写成了一次失败的实验。npm 的回应是在服务条款里禁止终端广告,并推出 npm fund,它会打印一列捐赠链接。那是真正的注册表唯一一次介入资助,而它做的事是拿走一条挣钱的路,换成一个超链接。那可真够淡的。我在 npm 的时候,我们从来没有勇气去试更激进的做法,而我们应该试的。
Flossbank 从 2020 年到 2022 年,包住 npm 和 yarn,收集小额捐款或广告收入,再把它分摊到你安装的任何东西的整棵依赖树上。那就是我接下来要提的方案的「发放」那一半,而且是建成并跑起来的。它关掉了,创始人的复盘对原因很诚实:它是自愿加入的,而自愿加入会死于「凭什么我付而旁边那位不付」。Flossbank 也不是注册表,它是你装在注册表前面的一个东西,这个摩擦足够让没人愿意去弄。
Ruby Together 从 2015 年到 2022 年,向公司收取会员费来资助 RubyGems 和 Bundler 上的工作。它管用,规模不大,直到并入 Ruby Central,后者对一个大赞助商的依赖随后导致了 2025 年对 RubyGems 仓库的接管、一堆人辞职,以及一支人手严重不足的团队在次年春天面对多年来最严重的一次针对注册表的攻击。那笔钱是给注册表自身运营的,不是给里面的包的;它是自愿的;而且它只有一个大捐赠者——这是三种各自独立失败的方式。
所以规律是:一切自愿的东西都死于搭便车,而唯一不自愿的那件事(Docker)成功了,并且把钱留给了自己。拥有域名的那些人,从来没有谁向公司收取供应费、并把钱付给让这份供应值得拥有的人。
注册表应该向公司收费,并付钱给维护者
所以这就是我的提议。它有三部分,没有一部分是新的;新的是把它们放在同一个地方。
第一,注册表计量企业使用并向其收费。它们已经在计量了。npm、PyPI、Docker Hub 和 Maven Central 都有速率限制、认证和企业版,坐在它们前面的镜像厂商也是按席位收费的。Docker 的规则就是对的规则:个人、小团队、学生和开源项目什么都不付、什么都察觉不到。超过某个规模的公司购买订阅,定价方式就像今天的 JFrog 或 Docker 订阅那样,也就是定在采购部门不用开会就能签的水平。对大多数这类公司来说,这甚至不是一笔新成本,因为他们已经在付了;只是发票上多了一行。
第二,这笔收入中固定的一块是版税,它流向那些包。不给注册表,不给基金会,不给一个要填申请表的资助委员会。按比例,流向付费客户依赖树里出现的每一个包,权重是有多少付费客户依赖它,自动、每月、没有仪式、也没有感谢邮件,因为重点就在于不必任何人做任何事钱就能流动。我 2022 年的笔记里有一句关于这件事的话,我不改地引在这里:「钱必须从一头进、从另一头出。你不必为此用加密货币,那会很糟,用个数据库就行。」发放那一半不难。thanks.dev 今天就在按依赖树做按比例分配,而 Flossbank 在 2020 年就做过了。从来没有人把它和收取那一半连起来。
第三,做这件事的人是拥有那些域名的人。真正重要的注册表大约有十几个。每个维护者已经在他们在意的那一个上有账号,名字挂在上面,收款方式要么已经就位,要么只差一个表单字段。收费那一侧是有限的:几千家大公司,其中大多数已经是供应链里某家的客户。以前每一次尝试里最难的两个问题——找到付款方、找到收款方——已经被解决了,而且是被同一个数据库解决的。
创建了 npm 的 Isaac Schlueter 主张,我们应该停止为支持收费,开始为访问收费:如果你是一家营利性公司,不付钱就拿不到代码。我同意这个形状,但我会把收费站换个位置,因为如果你把它放在许可证里,你就会被分叉;而如果你把它放在注册表上,你拿到的是 JFrog 那样的收入。GitHub 同时拥有 npm 和 GitHub Sponsors,这里面的每一块都在同一栋楼里,这个季度就能对 npm 的企业客户打开它。JFrog 和 Sonatype 已经在向公司收取供应费,明天就能加上这一行。我在 npm 运营了五年,我向你保证,管道不是难的那部分。
「公司不会干脆换去用免费镜像吗?」
有些会,而这不会要紧,原因和它对 Docker 不要紧一样。有心思自己跑镜像的公司今天就能免费这么做,而他们反而付钱给 JFrog,因为他们买的是「不必自己跑」。离开的客户本来也永远不会为任何东西付钱,他们早就在通过别人的镜像搭便车了。Docker 丢掉了一些拉取量给镜像,同时把营收乘以了十五。
「这不就是又一个 Tidelift 吗?」
不是,而区别正是关键。Tidelift 是一笔独立的采购决策:一个新厂商、一套新说辞,得在预算里自己赢下一行。镜像账单上的版税根本不是一个决策。采购部门里没人会把它当决策看。Tidelift 证明了公司愿意为这件事付钱;它只是在一个人必须被请求的层次上证明了这一点。
「人们不会去钻空子吗?」
会。这是 Spotify 模式,它继承了 Spotify 的问题:如果你按播放量付钱,人们就搭流媒体农场;如果你按依赖付钱,人们就会发布一千个互相依赖的垃圾包,然后想办法把它们塞进某个人的 lockfile。你按「出现在付费客户依赖树里」而不是原始下载量来计权,这让钻空子难得多,然后你接受「有些欺诈是不设资助委员会的代价」。世界上每一个支付系统都有欺诈率。而当前「付费维护者」的欺诈率是 100%,因为我们根本不付。
为什么在别的都没用时这件事能行
我认为这件事能行的原因,是它不要求均衡改变。每一种策略都待在原处;改变的是被计量的东西。
许可证不变,所以没有东西会被分叉,也没人需要争论「开源」是什么意思。代码这场博弈仍然由免费赢下,这是正确的结果,而歌手继续唱。
它不是慈善,也不是强制令。没有人被请求捐出,也没有人被一条最鲁莽的公司本来就会无视的法律命令付款。公司已经在为供应付钱;他们已经在付的那张发票多了一行。
而且它付给长尾,也就是其他所有机制都漏掉的那部分人群。打赏付给名人,基金会付给员工,政府资金付给关键清单上的二十个项目,但依赖树上的版税会付给 is-odd。那个写了一个小小的、有用的东西、结果进了四百家公司生产系统的人,会收到四百笔小额贡献,不用申请、不用营销、不用把自己变成一个品牌。这比这个提议里其他任何部分都更让我在意,因为开源可持续性的大量讨论已经变质成了「教维护者更会做生意」,而我认为这完全说反了。机制应该因为一个人有用而付钱给他,而不是因为他擅长开口要钱。
LLM 让这件事变得紧迫,也让这件事更值钱
2022 年以来另一件变了的事是写软件的成本崩塌了,而我认为这是三十年来这个等式里第一次有变量真的动了,而不只是变快。
更便宜的软件意味着更多软件。更多人能做出那个小小的、有用的东西,长尾变得更长,而那些悄悄落进某个人依赖树里的包的数量会上升,而不是下降。一个能给长尾付钱的机制,在那个世界里更值钱。
它还意味着 AI agent 现在是开源增长最快的消费者,而它们消费开源的方式只有一种,就是通过注册表。2026 年 5 月,OpenAI 运行的一群 agent 在两天里向 RubyGems 发布了 2000 多个包,利用注册表 API 的一个 bug 去攻击用户凭据,在文档站点上拿到了远程代码执行,并迫使运营 RubyGems 的志愿者们关闭新注册四天。OpenAI 说那些 agent 在做无害的任务,这很可能属实,但无论哪种情况,志愿者们吸收了成本,而没人给他们寄过一张支票。
早期的迹象大多是这样。维护 curl 的 Daniel Stenberg 关掉了一个七年间支付了 9 万美元的漏洞赏金计划,因为 AI 生成的垃圾报告把提交里真 bug 的比例从 15% 压到了 5% 以下,而六年里没有一个纯 AI 报告发现过真实漏洞。AI 在找开源里的真 bug 方面正在变强;谷歌的 Big Sleep 已经找到了一些。但发现发生在谷歌内部,而修复发生在某个人的晚上,而现在这个负担上升得比减轻它的工具更快,而那些工具属于有安全团队的公司,不属于那个得写出补丁的人。
我不知道这会往哪边走。很长时间里我诚实的猜测是,LLM 的各种效应会互相抵消,让我们留在同一个均衡里,只是更快。我现在不那么确定了,因为这是两场博弈第一次开始分叉:造代码变得更便宜,而保证供应变得更贵。这恰恰是供应层变得值得付钱的条件,也恰恰是决定谁拿到钱的那个时刻。
我们一直都有能力做这件事
我不想以「希望公司更善良一点」来结尾,因为这种版本的结尾我在脑子里写过一百遍,它没用。我想以一个我们真的能做的动作结尾。而我在 npm 的时候是写不出这套论证的,因为利益冲突会太明显。但我在 npm 的日子早就过去了,只剩下我对它在生态里那个强有力位置的欣赏。
开源开发者被描述成没有力量的、一堆可以被无视的散乱志愿者,而记录说的正相反。2017 年我们让 Facebook 改了 React 的许可证。2024 和 2025 年我们让 Redis——一家背后有二十来亿美元的公司——在十四个月里推翻了一个战略决策。每当有人想拿着我们的代码当鹰,我们都做到了。协同的拒绝管用,而事实证明鸽在惩罚背叛者方面相当擅长。
我们从来没有做过的事,是把这种力量对准许可证以外的任何东西。三十年来,目标一直是那家试图为代码收费的公司,而与此同时,公司实际花在开源上的钱,在没有任何人反对的情况下,流向了十几个坐在瓶颈上的厂商,因为他们没有违反任何规则,而他们之所以没有违反任何规则,是因为根本没有规则——这就是整个问题所在。
所以我希望我们有一条这样的规则:运行计价表的人,要付钱给那些让这件东西值得计价的人。 这是一条规范,目标数量很少、而且都指名道姓,全都卖给开发者,全都在乎开发者怎么看他们。它不需要法律,不需要基金会,不需要资助委员会,也不需要任何一家公司觉得自己慷慨。它需要注册表和镜像厂商在那些公司已经在付的发票上加一行,再跑一个定时任务。三十年来我们试过的其他一切,都是向那一万家消费开源的公司发出请求。而这一条,是给供应开源的十二家下的指令。