最近,Daniel Stenberg 的一篇博客《Curl Summer of Bliss》引起了我的注意。文章记录了 Curl 项目在夏天进行的一系列“冲刺”式开发活动,看似是项目进入“极乐”状态,但细读之下,我感受到更多的是开源项目维护者们不为人知的艰辛与不易。
核心观点: Curl 的“夏日极乐”并非项目进入了舒适区,而是维护者们在巨大压力下,依靠个人时间和热情,试图在短暂的时间内集中解决大量问题的体现。这暴露了许多小型但至关重要的开源项目普遍面临的困境:过度依赖少数核心维护者的个人牺牲,而缺乏可持续的资金和人力支持。我们享受着开源带来的便利,却常常忽略了其背后的付出与脆弱。
论据支撑:
首先,文章中描述的“冲刺”模式,即在特定时期内集中开发和修复问题,本身就暗示了日常维护的压力并非均匀分布,而是需要通过这种“爆发式”努力来弥补日常资源的不足。Daniel 提到,项目需要“all hands on deck”来处理积压的 bug 和功能请求,这表明团队(即便核心只有一人)在日常运营中是处于一种“赶工”状态的。这与真正意义上的“极乐”——那种轻松、自由、有条不紊的开发状态——相去甚远。
其次,文章中透露出对资金支持的渴望,尽管 Curl 已经非常成功。Daniel 提到“总会有需要钱的时候”,并且对于像他这样的核心维护者来说,这项工作已经成为了“一份全职工作,但却没有全职工作的报酬”。这是一种非常普遍的现象:成功的开源项目往往被视为理所当然,其维护者也很少被公开地、稳定地资助,他们的付出更多是基于个人热情和对社区的责任感。这种模式极易导致“过劳”和“倦怠”。
再者,社区贡献的“质量参差不齐”也是一个隐性问题。虽然 Daniel 对社区的贡献表示感谢,但他同时也暗示了并非所有贡献都能直接被采纳,这需要核心维护者投入更多时间去评审、整合甚至重写。这意味着,即使有外部贡献,核心维护者的工作量并未因此减轻,反而可能增加了协调和质量控制的负担。
反驳与回应:
有人可能会说,Curl 已经得到了很多公司的使用,为什么不能直接获得更多资助?我的看法是,使用一个项目和资助它,是两回事。许多公司将 Curl 视为基础设施的一部分,但这种“使用”往往是被动的,是“拿来就用”,而很少主动思考如何回馈。而且,即使有公司愿意资助,如何在众多贡献者和用户中,建立一个公平、有效、可持续的资助模型,本身就是一个巨大的挑战。
还有人可能会觉得,开源就是这样,核心开发者就应该“奉献”。我必须说,这种观点是不公平且不健康的。AI 的发展、互联网的蓬勃,很大程度上都建立在大量开源项目之上。如果这些项目的核心维护者都因为缺乏支持而“倦怠”或离开,整个科技生态都会受到严重影响。我们不能再用“情怀”来要求维护者们无限度地牺牲。
我的建议:
我认为,我们需要建立更成熟、更普适的开源项目资助机制。这不仅仅是捐赠,而是应该包括:
- 企业级支持计划: 鼓励大规模使用 Curl 的公司,以项目或部门的名义,提供定期的、可预测的资金支持,而不是仅仅依靠个人捐款。
- 基金会和托管模式: 像 Linux 基金会那样,为小型但关键的开源项目提供一个中立的托管平台,协助处理资金、法律和社区事务。
- “购买支持”模型: 对于有能力支付的公司,提供付费的技术支持或咨询服务,这样核心开发者就能从中获得直接的经济回报。
我的看法:
Curl 的“夏日极乐”是一面镜子,映照出整个开源软件生态系统在快速发展中,在可持续性方面存在的巨大挑战。我们享受着开源的红利,是时候认真思考如何反哺那些默默支撑起这一切的维护者了。他们的辛勤付出,不应仅仅被视为“情怀”,而应得到应有的尊重和经济上的补偿。只有这样,像 Curl 这样关键的开源项目才能走得更远,真正实现“Bliss”——一种建立在健康生态基础上的、可持续的繁荣。
个人认为, 科技的进步离不开底层技术的支撑,而开源项目正是这些技术的基石。保护和支持开源项目的维护者,就是保护我们共同的数字未来。
转载请注明出处:罗可龙的博客 | 联系邮箱:[email protected]