开源必须有趣(否则它将消亡)
摘要
文章主张,开源必须让维护者感到有趣,以避免倦怠和项目终结。作者结合自己在Homebrew的17年经验以及对KDE和GNOME社区的观察进行了阐述。
<p><a href="https://lobste.rs/s/vjwhqn/open_source_must_be_fun_it_will_die">评论</a></p>
查看缓存全文
缓存时间: 2026/07/27 15:47
# 开源必须有趣(否则它将消亡)
来源:https://mikemcquaid.com/open-source-must-be-fun-or-it-will-die/
2026年7月26日 (https://mikemcquaid.com/open-source-must-be-fun-or-it-will-die/)
几周前,我和一群参与其他知名开源项目的人通了个电话。组织者开玩笑地让我们举手,如果过去六个月比之前更好的话。我举起了手。其他人没有。为什么?我维护 [Homebrew](https://brew.sh/)(跨平台包管理器)已经近 17 年了。在那期间,绝大多数周我都在做这件事,而且从未感到倦怠。我现在比以往任何时候都更有乐趣。
当前关于开源的主流叙事令人沮丧。显然它“正在消亡”。
AI 刷屏式的问题、拉取请求和安全报告让维护者不堪重负。不断增长的安全期望(感谢 [Mythos](https://www.anthropic.com/research/mythos-preview))要求维护者做更多工作。开源资金难以获得且不足。
其中一些确实在发生,但我绝对没在 Homebrew 中看到这种情况。另一位 Homebrew 维护者告诉我:
> 我比以往任何时候都更有乐趣。
## 💎 最稀缺的资源
正如我之前写过的,开源中最稀缺的资源不是金钱,而是 [维护者的动力](https://mikemcquaid.com/open-source-economics/)。今天给 Homebrew 发送 1000 美元并不会神奇地创造更多维护者时间(但如果你能负担得起,请 [捐款](https://github.com/Homebrew/brew#-donations) 以资助 Homebrew 的基础设施、津贴、资助和聚会)。我们都有不是维护 Homebrew 的工作。如果我们积极维护 Homebrew,我们会收到少量资金(每月 300 美元 [每月 300 美元](https://docs.brew.sh/Maintainer-Stipends-and-Grants))。这可不是“市场时薪”。许多送报纸的小孩时薪都比这高。
存在一个门槛效应:资金只有在能让维护者减少带薪工时或辞职时才会创造更多时间。没有维护者愿意做的工作是付费合同的好候选。如果你付不起钱:就别做。
那为什么还要做这些呢?为了乐趣。
并非所有事情一直都有趣,但需要是“功利主义的净乐趣”:总体上乐趣多于不乐趣。这主要适用于志愿者运营的开源项目,但大多数开源都是如此。如果你有带薪的开源工作却讨厌它:你也应该辞职。
这是一个周日下午。我昨天大部分时间都在带孩子,所以今天有一些“自己”的时间。我把其中不少时间花在了 Homebrew 上。不是因为“必须”做;没有紧急的事情进来。不是因为“供应链”。不是因为钱。因为我想做。因为很好玩。
我第一次真正体验开源软件(OSS)是通过一个成功且成熟的项目,我可以观察其文化。那是 [KDE](https://kde.org/),Linux 桌面环境背后的社区。2009 年,我参加了 [Akademy](https://akademy.kde.org/)(KDE 贡献者大会)和 [GUADEC](https://guadec.org/)([GNOME](https://www.gnome.org/) 贡献者大会),它们合并在加那利群岛举行。
首先,这很奇怪,因为如果你阅读网上的讨论,你通常属于“KDE 很烂,GNOME 很棒”或“GNOME 很烂,KDE 很棒”的阵营。然而:两个群体却在合作。不仅仅是合作,还一起吃、喝、社交并建立新的友谊。
其次,我能看出,对于 KDE 阵营中的许多人来说,这些是他们的同类,这是一年中最重要的事情。他们回来时精神焕发,充满动力去开发 KDE。大多数人没有报酬来修复、维护或编写 KDE 的代码。他们似乎也不是为了用户而做。他们做是因为他们乐在其中,无论是个人编写代码,还是帮助朋友构建他们关心的事情。
过去几年,Homebrew 维护者每年都会在布鲁塞尔与 FOSDEM 合办的“Homebrew 年度大会”上会面 [与 FOSDEM 合作举办](https://docs.brew.sh/How-To-Organise-the-AGM)。我们见面,吃、喝、社交并为 Homebrew 制定计划。之后,我们回来时精神焕发。自从开始这样做以来,我还看到人们更多地为其他维护者做事,而不是直接为用户做事。开源跨越国界:我们大多数人不在乎另一个维护者来自哪个国家或是什么国籍,只在乎我们是朋友,一起建造我们觉得有趣的东西。这些关系很重要,因为没有维护者,项目就死了。
## 🍺 保持 Homebrew 有趣
这就是为什么我一直希望 Homebrew 是一个有趣的项目。处理 [自以为是的行径](https://mikemcquaid.com/entitlement-in-open-source/) 并不有趣。设置 SLA 并不有趣。维持无限期的向后兼容性并不有趣。
Homebrew 之所以成功,是因为从早期开始就重视乐趣、[自动化](https://mikemcquaid.com/homebrew-ci-evolution/)、社区和把维护者放在首位。具体来说,我们自动化了审查评论,这样机器人就可以负责挑剔,而人类可以专注于共情 [机器人挑剔,人类共情](https://mikemcquaid.com/robot-pedantry-human-empathy/)。我们的 [护栏](https://mikemcquaid.com/ruby-on-guard-rails/) 包括 CI、代码检查、类型检查和测试,以便在维护者指出之前捕获常规错误。[功能标志和分阶段发布](https://mikemcquaid.com/user-and-feature-segmentation-in-homebrew/) 让我们在不破坏所有内容的情况下进行实验。这意味着维护者花更少时间在重复修正上,更多时间在感兴趣的工作上。
AI 擅长无聊的工作,比如编写 CI 工作流、代码检查器和文档。这些做法对 AI 和人类贡献者都有帮助。维护者可以使用或避免 AI,无论哪种方式更能保持他们的动力。
如果你在阅读低质量的 AI 生成内容时感到乏味:直接关闭,无需评论或解释,并屏蔽那些不学习、不改进的惯犯。在 Homebrew 中,[我们的拉取请求模板](https://github.com/Homebrew/brew/blob/cd454b3a669d4ba902e7bd4cd8db051dbc0d0ba4/.github/PULL_REQUEST_TEMPLATE.md) 要求贡献者披露 AI 使用情况,[CI 作业](https://github.com/Homebrew/.github/blob/aaf9401fdf463b562f403c26a6386e0df69493ad/.github/workflows/check-prs.yml) 会自动关闭模板不完整的拉取请求。通过 API 提交且没有我们模板的问题或 PR,往往暗示 AI 使用且缺乏足够的人为参与。
## 🛑 停止,付费,或退出
Homebrew 正在蓬勃发展 [蓬勃发展](https://formulae.brew.sh/analytics/install/30d/),而不是消亡。它有 [28 名活跃维护者](https://github.com/Homebrew/brew/blob/56dfdc06db96ae562ac8c73805110e24b482dd76/README.md#-who-we-are)。在一年前的 [29 名维护者](https://github.com/Homebrew/brew/blob/d661cffc1f78fdccb2d740bffd88a3eb854b8ed6/README.md#who-we-are) 中,26 人仍在。根据我们的 [治理规则](https://docs.brew.sh/Homebrew-Governance),我们会在维护者连续两个季度未达到活动阈值后将其移除。
如果你的项目正在消亡,也许是因为它不再有趣。你应该退出。你 [不欠任何人任何东西](https://mikemcquaid.com/open-source-maintainers-owe-you-nothing/)。Homebrew 维护者被鼓励在没有任何愧疚或解释的情况下离开 [无需愧疚或解释地离开](https://docs.brew.sh/Maintainers-Avoiding-Burnout)。
如果你不想退出(或者你正在一个不希望别人退出的项目上)且情况很糟:做出改变。不要只要求更多钱、赞助商或捐赠。那不会神奇地让事情重新变得有趣。获得更多钱不在你的控制范围内。
相反:停止做项目中那些无趣的部分。也许那是稳定版本发布。也许是发布说明。也许是向后兼容性。无论是什么:再说一遍,你 [不欠任何人任何东西](https://mikemcquaid.com/open-source-maintainers-owe-you-nothing/)。你可以随心所欲地做开源软件。
经营施粥所的人不会一直听到抱怨说汤很难喝。他们不会因为不提供最佳宏量营养素平衡而受到批评。他们尽其所能。那么,一些收入颇丰、拥有技术工作的开源用户却如此糟糕地对待志愿者,这该有多可悲呢?
## ⏭️ 好了,接下来呢?
你是维护者吗?如果是,考虑是什么让你在维护项目时保持乐趣,或者什么能让它再次变得有趣。如果没乐趣了并且你无法让它恢复乐趣:退出。
你是贡献者吗?确保你在贡献时感到快乐,但不要以让维护者感到不快为代价。如果你提交 AI 生成的内容,请仔细审查和测试。与人类维护者交谈,而不是依赖你的大语言模型。
你是用户吗?如果你提交错误报告,请花时间并提供所有请求的信息。最重要的是:感恩你免费得到的开源礼物。把你的抱怨留到酒吧或咖啡店,不要发到网上。路过式的负面情绪会扼杀开源。
你是使用开源的公司吗?允许你的员工参与 [开源星期五](https://mikemcquaid.com/contribute-on-open-source-friday/)。或者,当他们参与 [开源抵抗军](https://ossresistance.com/) 时睁一只眼闭一只眼。赞助一些你依赖的项目。
保持乐趣,开源社区将比我们所有人都活得更久。
---
感谢 [John Peebles](https://peebs.org/)、[Graeme Arthur](https://www.graemearthur.com/)、[Patrick Linnane](https://www.linkedin.com/in/patrick916/)、[Andrew Nesbitt](https://nesbitt.io/) 和 Lindsay McQuaid 审阅本文并提供有益反馈。
由我本人撰写,非 AI。我征求 AI 建议,并且仅在我同意时才采用(通常我不同意)。
相似文章
@msimoni: 有趣的文章:《工程代价:开源如何在免费代码时代生存》"重点不是重建行会……"
这条推文分享了一篇文章,探讨开源社区必须要求付出代价(而不仅仅是规则)来维持公地,因为进入成本才能保存价值。
开源项目作死的种种方式
文章列举了开源项目消亡的多种方式,包括维护者弃坑、企业忽视、资金断崖和官僚僵局,揭示了开源可持续性中的系统性问题。
开源坚守:在公司时间保持OSS活力
本文讨论了通过鼓励员工在上班时间为开源项目做贡献来维持开源软件的重要性,强调了公司支持开源项目的必要性。
在不妥协的情况下资助开源软件
分析了资助开源软件面临的挑战,评估了捐赠、开放核心模式、资助等方法,重点讨论了如何在不妥协的情况下维持像Inko这样的项目。
@evanyou: 看到用户离开你的项目并不是件好事,但这正是开源的重要性所在:丰富的…
尤雨溪反思开源中的选择自由,承认看到用户离开一个项目虽然困难,但最终是生态系统健康的标志。