第一次想写一篇关于开源经济学的博客是在 2013 年,所以这篇东西酝酿已久。最接近写成的是 2022 年,我在手机备忘录里写了一段意识流吐槽,结尾基本就是什么都行不通。然后它又搁了 4 年,因为写 5000 字讲什么都不行太丧了。现在终于有了一个想法,但还是要 5000 字才能讲到,没时间的话可以直接跳到注册表部分。
正文
开源是一场有稳定结局的游戏,结局是免费获胜
以前我写过进化生物学里的鹰鸽模型:鹰战斗鸽分享,稳定的是混合比例,叫进化稳定策略(ESS),重点是“稳定”。软件也有鹰鸽:闭源是鹰, withholding 代码收溢价;开源是鸽,送代码并获他人同享收益。竞争的资源终归是钱。
我们落到的均衡非常具体:软件的进化稳定策略是“任何人可免费将软件用于任何用途,含商业”,即 MIT、BSD、Apache 等不提要求的许可。 任何想少慷慨点的鸽都输给全鸽项目,例子:
- 2017 年 Apache 基金会禁 React 的 BSD+Patents 许可,WordPress 弃用,几周内 Facebook 改 MIT。
- 2021 年 Elastic 将 Elasticsearch 转源码可用许可挡 Amazon,Amazon 叉 OpenSearch 到 Linux 基金会,2024 年 Elastic 悄回开源。
- 2023 年 HashiCorp 对 Terraform 同理,OpenTofu 叉到 Linux 基金会,HashiCorp 被 IBM 买。
- 2024 年 3 月 Redis 也如此,Valkey 一周内聚齐云厂商,2025 年 5 月 Redis 回 AGPL,CEO 承认损失巨大。
在许可层试收费的都没挡住能干的叉,非因意识形态,而是市场结构。颠覆是更差更便宜产品先占底部再吃掉全部,直至免费。软件市场两半:巨大廉价半所有人用,小巧昂贵半赚几乎所有钱。Android 有份额 iOS 有利润,都成功。免费赢份额,闭源赢利润,二者皆赢。
稳定结局靠人倦怠运转
这本身没问题,但免费层内部是这样的:Tidelift 2024 调查显示 60% 维护者无薪(2023、2021 同数),无薪者 61% 独自干,近 60% 所有维护者退或想退,因生活、没兴趣、倦怠。
他们撑的软件量荒谬:Sonatype 2023 看 120 万项目仅 11% 活跃维护;Linux 基金会 Census II 指 136 人写了五十个最常用包 80% 以上代码;哈佛估若开源消失公司需 8.8 万亿替代,5% 开发者产 96% 价值。JS 生态尤甚:大量单维护者小包在依赖树底。我在 npm 五年看此景总心惊。
现成例子 xz:2024 年几乎每 Linux 机都有的压缩库被植后门,假贡献者两年社交工程骗唯一无薪维护者交钥匙。他说撑不住却无人资助反被 groomed。后门因微软工程师觉 SSH 慢半秒才抓,非可靠防御。
流行讲法是“系统崩了”,我以为错。系统没崩,是稳定在我们集体容忍的人力成本上。 维护者倦怠,下个接,再倦怠。接连的近乎倦怠不是均衡的漏洞,而是均衡本身。开源很老,要塌早塌。这部机器靠血肉运转,因是 ESS,我们无力改。
改变的唯一是速度
但觉更糟因一输入变:速度。Linux 慢积,web 和 npm 十年出百万小模块,几周变生产负载。软件重要快过机构察觉资助。安全也快:流行库 bug 几天被利用直撞数万公司。维护流行包成本大增,回报仍零。
夜周末不够,人还写,因开发者写软件如歌手唱,听否都写,非修的问题而是系统动力。任何让开发者少写或少慷慨的提案我不接。问题非人免费写,是我们安排让最有用者得第二份无薪工为奖。
我们试过的一切都挪了钱,没动均衡
快过这抑郁段,试过:
- 打赏。 GitHub Sponsors 2026 年七月过 1 亿总付,对比 8.8 万亿渺小,幂律分布中位数仅午饭钱。Open Collective 等同形。
- 基金会。 Linux、Apache 等真机构,多付员工活动基建。Tidelift 调仅 3% 维护者从基金会拿钱,1% 政府。基金会是付舵手非划桨者。
- 企业慷慨。 Google/Microsoft 开源办,Sentry 2024 Pledge 要公司给每开发 2000 刀/年,启动约 130 万。Dan Lorenc 说 Google 钱多到花不完没修好。
- 付费安全。 Tidelift 付维护者保安全卖保证,2024 年十二月被 Sonar 购。OpenSSF Alpha-Omega 年给五六百万多给基金会安全员工。
- 政府。 德国主权技术基金 2022 来超 2400 万欧给六十项目,但仅一国一基金年约 2000 万欧,EU 版 2028 才预算。
- Mozilla。 吸 Google 搜索营收,无法多样化。没足够营收流可插管。
- 许可。 双许可等,鸽装鹰必输全鸽。
共性是自愿。公司被求予,有些予大多不,不予者得同软件。慈善不规模,无权威下令。我们求公司付三十年,可认求已彻底测败。
公司确实为开源付钱,只是不给付写代码的人
让我改想的是:公司早付开源钱不少,只是不给付维护者。JFrog 卖 Artifactory 私镜,2025 收 5.32 亿增 24%。Snyk 扫漏洞年约 3.26 亿。Docker 管注册表 2.07 亿。Chainguard 硬版图年靶 1 亿。Sonatype 管 Maven Central 且 86% 流量来自云厂。加 Sonar/Socket 等供应链全超十亿年。
钱买啥?剥营销皆卖免费代码可靠供应:构建不因注册表 down 崩,依赖缓存扫描签名,Log4Shell 时一小时知哪服务受影响。真产品,公司踊跃买,因“依赖免费物可能坏或恶且不可辨”是采购部知如何花钱的问题。
我不认这些公司是恶人,解真问题(公司需靠不能审代码),但在错层:卖针对维护者保险,而维护者链中唯一能保安者得零,上层公司付费告你她干没。这改我全观:以为约束是钱供,JFrog 发票证否,公司乐付当无聊项“供应链”。钱供从未是问题,是向下捕获位置问题。
免费赢代码游戏,但默认赢供应游戏
为何 ESS 不适此?因两游戏不同赢家。代码游戏资源是软件,免费因可复制必赢;供应游戏资源是不操心代码哪来,谁默认谁赢。
证:没人成功叉注册表。npm/PyPI/Docker 免费镜易跑,公司照付 JFrog 五亿。Red Hat 桌面输 Ubuntu(鸽赢代码),但卖 IBM 340 亿年超 60 亿卖同免费代码加电话。Docker 清例:2020 限流,2021 Desktop 对超 250 人或千万收,个人免费,Podman/containerd 免费却 Docker 收 2020 年 1200 万到 2024 年 2.07 亿百万付费座。2025 试按拉收被掀,证向公司而非下载收费有效。
免费赢代码,供应游戏默认赢且可收费。 注册表是两游戏唯一触点,免费码转供应处,且不像许可可复制绕,因是极便基建。人不想绕,绕是值得付免的痛。
没人在注册表层认真试过
有人问“试过?”狭义定义注册表层:拥有大家下载域名者。几乎不数。
2019 年 Feross 在 npm install 时向终端打赞助消息,开发者恨,赞助撤,npm 禁终端广告推 npm fund 打印捐赠链接。弱。我在 npm 从未敢试烈者该试。
Flossbank 2020-2022 包 npm/yarn 收捐分依赖树,是我要提的付半部,但 opt-in 死“为何我付人不付”,且非注册表是前装摩擦。
Ruby Together 2015-2022 收会员费 fund RubyGems, modest 成至并 Ruby Central 后 2025 大赞助商接管辞职攻击。是注册表运营费非包内且自愿单捐三败。
模式:自愿死,非自愿(Docker)成留钱己。无域名主曾向公司收供应费并付制造供应价值者。
注册表应向公司收费,并付给维护者
提议三部件皆不新,新在同位:
一、注册表计量企业用收费。已计量。npm/PyPI/Docker/Maven 有限流认证企业级,镜商按座收。Docker 规则对:个人小队学生开源免费。超规公司订阅如 JFrog 价 procurement 不会议签。多公司非新本因已付,发票换单行。
二、固定片收作版税给包。非注册表基金会委员会。按比例给付费客户依赖树每包,加权多少付费客依赖,自动月付无仪式无邮件,因无人需动钱移。2022 笔记:“钱一端进一端出,不用 crypto 用库”。付半不难,thanks.dev 今做比例分,Flossbank 2020 做。从未接连收半。
三、干这的是域名主。约十几个注册表。每维护者已有账户名和收款法。账单有限几千大公司多已是供应链客。前试最难找收付双方已同库解。
npm 创建者 Isaac Schlueter 主张收访问非支持费,我同意但移收费站,放许可被叉放注册表得 JFrog 收。GitHub 拥 npm 和 Sponsors 可本季开。JFrog/Sonatype 明日可加项。我管 npm 五年担保管道不难。
公司不会换免费镜像?
会,但如 Docker 不重要。能跑镜者早免费跑却付 JFrog 因付不操心。走者永不付,早蹭他人镜。Docker 丢些拉取收翻十五倍。
这不就是 Tidelift 重来?
不,异在重要。Tidelift 是分购决:新商新 pitch 赢预算行。镜账版税非决,采购永不见。Tidelift 证公司付同物,但在需被问层。
没人刷量?
会。Spotify 模型:按流刷农场,按依赖人发千废包互依进 lockfile。按付费客户依赖树非裸下载加权难多,接些欺诈是无委员会代价。当今付维护者欺诈率 100% 因没付。
为何此能成而余否
因不请均衡变。许可不变不叉无人辩开源意。代码游戏仍免费赢,歌手唱。
非慈善非强制。无人求予无人法令令莽司忽。公司已付供应,发票加行。
付长尾,他机制漏。打赏付名基金会付员政付二十关键,依赖树版税付 is-odd 这样的包。写小有用物进四百公司产系统者得四百小贡,不申请不营销不品牌。此我最重,因可持续谈变叫维护者善商我谓反。机制应付有用而非善求。
LLMs 使之急且更值
2022 后写软成本崩,三十载首变数非仅速。
更便宜软更多软。更多人建小有用物,长尾更长,静进依赖树包数升。付长尾机制此世更值。
AI 代理现最快增开源消者,唯过注册表。2026 五月 OpenAI 代理两日发超 2000 包到 RubyGems exploit API 夺证执文档站码,志愿关注册四天,无支票。curl 维护者 Daniel Stenberg 关赏金因 AI 垃圾真 bug 从 15% 掉 5%,六载无 AI 报真漏。Google Big Sleep 找真漏但修在某夜,负载升快减具,具属安队非写补人。
我不知向。曾猜 LLM 效抵消同均衡仅快。今不太确,因两游戏首发散:码廉造供应贵保。正是付供应层值,正决谁获付时。
我们向来有力做此
不欲结尾愿公司善因写百次无用。结尾可干事。在 npm 时因冲突不能议,今离久仅赏其生态强力位。
开源者描无力散志可忽,录反。2017 使 Facebook 改 React 许。2024/25 使 Redis 百亿后司十四月反转略。每鹰试我码我们成。协调拒工,鸽善罚叛。
我们从未瞄许可外。三十载靶欲收码司,而公司实花开源钱流无抗至十几个瓶颈贩,因未坏规,无规即全题。
故我要规:跑表者付使表值得跑者。 是少量具名靶 norm,皆售开发者且在乎评。不需法基委或单司慷慨。需注册表镜贩加发票行公司已付并跑定时任务。三十载诉万消开源司,此令十二供者。
评论
讨论的焦点是开源软件能不能、该不该向商业使用者收钱:多数人认为在「自由」的定义下强制收费根本行不通、也没必要,少数人主张用分级许可或商业支持合同来变现,另有相当一部分精力花在质疑文章本身和纠正文中引用的事实。
认为免费写出来的东西就不该指望别人付钱
- 主打比喻是「主动擦了别人的挡风玻璃再要钱」:FOSS 早期作者多是有薪学者、拿科研或国防经费的人,靠 FOSS 本身赚钱的尝试几乎次次失败(较多人) > 你想要别人为你的软件付钱,就别免费写它;你免费写了,就别指望别人付钱。(@otterley)
- 规则一开始就是公开的,谁都能随时停手不管;有人接手是好事,烂掉也无所谓,地球照转(较多人)
- 有人一句话概括这类方案的反讽:这不就是想「强迫别人为免费的东西付钱」吗(少数人)
认为出路在别的商业模式,而不是向软件本身要钱
- 除了捐赠和慈善,只剩支持合同与「众筹下一个版本」两条路;数字商品处在后稀缺状态,硬套实体产品的生意经才造出了 Adobe 那一类公司(较多人)
- 最容易被企业财务流程接受的是「社区支持终止后的商业支持」:想继续用停更的老版本,就开一张支票(较多人)
- Krita 是可参考样本:源码自由获取,同时在 Steam、微软商店、Epic、苹果商店卖,买的人得到的独家好处主要是自动更新和云同步,本质是图个方便和支持开发者(较多人)
- 有人的思路更彻底:从硬件这类有形物上赚钱来养软件,因为知识产权本就是虚构的(少数人)
- 众筹式的致谢也有野生实践——把赞助者名字挂上「披萨墙」,不强迫任何人掏钱(少数人)
支持按商业规模分级收费或限制商用
- 真正的错误是起步时就选了最宽松的许可;如果大家都从一开始就用 source-available 或 OpenRAIL 这类条款,要求年收入超过 500 万美元的公司付费,就不会有今天反复换许可的乱局(较多人)
- 更激进的做法是修改 GPL,让它只约束自然人而不约束公司:企业要用就去谈许可,钱进一个信托,分给所有支持过这个项目的人(少数人)
- 大公司订阅费的大头应该流向它们实际依赖的那些包,音乐流媒体订阅恰恰是在这点上失败的(少数人)
- 再往前一步,干脆连 fork 也限制——生态里做同一件事的库源源不断,只会让本就脆弱的体系更加碎片化(少数人)
- 有人提议 YC 把旗下公司 0.5% 的股权(自愿)捐出来设立开源基金;也有人期待主流 registry 团队真的去试,并顶住那些根本不在付费范围内的旁观者的骂声(少数人)
担心付费机制会制造出扭曲的激励
- 一旦「处在依赖链上」能收钱,就会有人发布 xz 的复刻版本——Rust 移植、GNU 移植、「更快的」版本,甚至只是赌注册表里有人手滑打错字(较多人)
- 随之而来的是一连串说不清的问题:接受一个 PR 是否等于承认对方对该项目享有版税?按代码行数计价是最糟的量化方式;公司员工提交的代码,是否也来索要回报?「收不收这个 PR 会不会让我挨官司」不该进入维护者的决策(较多人)
- 许多人眼中 FOSS 里那个 F 的意义,恰恰就是不沾这种麻烦(较多人)
质疑文章本身,或认为问题被夸大了
- 文章充满大模型的腔调,开头还专门写了「要 5000 字才到重点」的免责声明;要是作者自己动笔,可能既不需要这么长,也不需要这句声明(较多人)
- 也有人不承认存在什么真问题:大模型只是个可选工具,不会让这件事在根本上变糟,顶多让不适应的人表面上更难受(少数人)
有价值的补充
- 一位 Ruby Central 志愿者出面纠正文中案例的细节:当时该组织有两个主要赞助商(Alpha Omega 和 Shopify),GitHub 权限事件更多源于人际冲突而非赞助商结构;报告点到的人情况各异,有人早已离开、有人只负责 Bundler 不碰 registry,真正的运营损失是自己退出的那个人,而 Colby 反而是这段时间转成全职。Maciej Mensfeld、Jenny Shen 等维护者和安全研究者并未离开,还有公司以工时形式投入工程师。他认同「整体脆弱」这个结论,但强调细节和分寸有意义。
- 有技术视角反驳文章「完全宽松的许可才是稳定演化策略」的说法:Linux 用 GPLv2,就是现成的反例。
- 与 Anaconda 模式对照:区别在于 Anaconda 把收来的钱留在自己手里而不分发;发帖者所在研究组约十人、全校约六万人,Anaconda 对大机构转为收费后,他直接卸载了。
- 当讨论一路滑向「如何强制付费」时,社区里有人认真追问 FOSS 里的 F 到底代表什么——这句玩笑本身就是对整场讨论的提醒。