坐拥百万用户的开源项目没钱了,尤雨溪发推力挺被质疑的全职维护者
作者 | 褚杏娟、核子可乐
开源项目,“用爱发电”不是长久之计。
近日,拥有百万用户的开源项目 Babel 宣布,尽管有 Airbnb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企业的赞助,但由于花钱速度继续高于获取捐赠的速度,项目储备资金目前只够维持到 2021 年底。
项目创建者 Sebastian McKenzie 在 Twitter 上表示,造成现在局面的原因是资金分配不当:“有人拿了 13 万美元的年薪,而实际上没有在该项目上工作。”这也引起了广大开发者对项目贡献问题的讨论。
1开源项目能否养得起全职成员?
Babel 是一个用于编写下一代 JavaScript 的编译器,可以帮助开发者在最新版本的 JavaScript 中编写代码,现已被集成至 JavaScript 生态系统中的 React、Next.js、Vue、Ember 和 Angular 等框架中,拥有数百万的用户,每月下载量超过 1.17 亿次。Babel 在 GitHub 也收获了 39,000 个星。
Babel 团队做了一项两年多的资金实验:开源项目是否可以养得起全职成员。但当前的 Babel 给出了答案:“很遗憾,现在可能不行。”
2018 年,在通过支持 Babel 项目的 Open Collective 基金获得一定报酬后,Henry 辞去工作成了 Babel 的全职工作人员。几个月后,Henry 每个月可以领到固定底薪 11000 美元。项目初期资金来源于 Handshake、Airbnb、Trivago、Gatsby、AMP 以及 Salesforce 的赞助。
2019 年 11 月,在成功向 Henry 支付了一年的薪水之后,Babel 全职团队又增加了三位成员:Huáng Jùnliàng、Kai Cataldo 和 Nicolò Ribaudo,这三人最初都是兼职做维护工作,每个月可以领取 2000 美元的报酬。
在早期尝试阶段,Babel 就清楚没有足够的资金向任何维护者支付全职薪酬。因此,Henry 一直通过在各类会议发表演讲、与企业用户交流等工作上投入大量精力,努力为项目获取持续的资金流。
Babel 表示,尽管科技行业在整个 2020 年获得了不错的发展,但新冠疫情的爆发还是让项目失去了几家大型赞助商,资金出现危机。Kai 不得不辞职,从事另一份全职工作。
各个项目都有独特的资金划拨思路与实际问题。Babel 表示自己当前的问题在于,就像大多数的构建工具一样,用户通常只需要一次设置就可以使用,不会直接与项目交互。虽然大部分主要 JS 框架都能与 Babel 相适配,但人才市场上并没有“Babel 开发者”这类岗位。
此外,随着 Next.js 等预配置框架的快速发展,用户已经不再需要亲自管理底层构建工具,这相当于把 Babel 与框架使用者彻底隔离开来。由于“存在感”不强,Babel 项目确实很难吸引到用户的关注,更遑论资金支持。
2年薪超 13 万美元却没有贡献?
但项目创始人 McKenzie 发表了另一种观点,并一度将矛头直接指向了 Henry。“有人拿了 13 万美元的年薪,但实际上并没有参与这个项目。”
McKenzie 现在拥有自己的 JavaScript 工具项目 Rome,已经不是 Babel 的核心团队成员。McKenzie 表示:“在 2020 年,Henry 创建了 12 个议题,评论了 25 次,创建了 29 个 Pull 请求。很抱歉,这绝对不值 13.2 万美元,特别是还有其他贡献者在免费做更多的事情。”
McKenzie 的说法受到了另外一位全职维护成员 Ribaudo 的质疑,他在 Hacker News 上表示,仅仅查看 GitHub 并计算每个贡献者的提交数量并不能说明一个人工作了多少。Ribaudo 解释道,Henry 的大部分工作是宣传和筹集资金。“Henry 联系企业,说服他们支持 Babel。可能没有他也会有企业捐助我们,但我认为不会达到现在可以支付团队费用的水平。”
而 Vue.js 作者尤雨溪也驳斥了 McKenzie 的说法。他表示在一个项目中,不仅仅是提交文件,还要制定决策、管理团队、筹集资金,以及处理“我要为项目负责”的精神压力,这些都是为项目工作的内容。
尤雨溪为 Henry 辩护道:如果 Henry 当初没有在 McKenzie 离开项目的时候接管过来,Babel 早已死掉。实际上,Henry 也完全不需要这样做,他大可以找一份高薪的全职工作,但他还是选择了留下来,因为他认为这是正确的选择。“对于一个让 Babel 持续保持运转的人来说,13 万是一个很大的数字吗?我认为可能还不够。”
根据 Ribaudo 透露,团队内部已经讨论过薪资差异的问题,成员们认为确实应该重新评估薪资水平。Henry 薪酬之所以比其他人高,主要是因为他是当初唯一一个付费的捐赠者。
Henry 也承认自己更像一个维护者而非创造者。“我意识到我喜欢处理更多人际关系和社区方面的事,即使我不擅长。”他在去年表示。
现在,McKenzie 删去了此前在推特上的言论,随后发文表示自己意识到了一个项目中的非代码贡献的重要性,并为之前的言论道歉。
虽然出现了资金危机,Babel 表示仍将向剩下的三位成员每月支付 6000 美元的薪酬,以便继续改善项目。处于这次争论中心的 Henry 也愿意接受减薪,因为他认为这是“在目前的资金状况下可以让项目继续进行的唯一途径。”
Babel 表示未来仍会努力提高核心团队的薪酬水平。不过理想很丰满,但现实却很骨感。为了给到核心团队成员理想的薪资水平,Babel 预计每年至少需要 33.3 万美元,但该项目当前的收入只达到这个数字的一半。
现在,Babel 团队在通过 Open Collective 与 GitHub 赞助商渠道为项目征集资金,希望获得更多企业赞助者的帮助。Babel 表示,“越来越多的企业正在使用 Babel 工具进行产品交付,而我们只希望从项目创造的价值中获取一小部分来维持正常运营。”
3开源可持续性问题
Babel 项目的资金问题是很多开源项目都会遇到的问题,这也是影响开源项目可持续性的一个长期性问题。开源项目要可持续,需要一个成熟的商业模式,仅凭志愿者“用爱发电”难以长久。
在线开发工具公司 Gitpod 高级开发工程师、开源代码长期维护者 Geoff Huntley 表示,许多开发者由于兴趣和爱好自愿贡献代码,社区得以发展。但缺乏资金可能会使负责保持项目进展的开源维护者筋疲力尽。
“导致倦怠的原因之一是很多人正在执行自己不喜欢的任务和活动,根本原因是开放源代码是建立在自由劳动之上的。”Huntley 说道。
根据 Synopsys 发布的关于开源安全性和风险报告,每个商业应用的开源组件数量从 2016 年的 84 个跃升到了去年的 528 个。但实际上,开源维护者通过开发软件所获得的收入并没有随之增长多少。
在 2019 年,开发人员 André Staltz 从 Open Collective 和 GitHub 收集了相关数据来评估项目收入。结果显示,超过 50% 项目的维护者维持收入连贫困线都达不到,而 31% 项目的工资在业内被认为是不可接受的。
开源项目还没有找到成熟、可持续的发展模式。国外比较成熟的运转模式是一手社区开源,一手商业版本 + 咨询服务,这反映了开源项目的维护和运行仍需要资金的支持。
现在开源项目主要的资金来源还是捐助,而这部分来源的资金数量并不客观。以被成千上万个公司和应用程序使用的 OpenSSL 为例,OpenSSL 是一个完全靠其贡献者和捐赠者的自愿努力维持的项目,在 2014 年发生 Heartbleed 安全漏洞之前,OpenSSL 软件基金会每年收到的捐款为 2,000 美元,在安全问题引发关注后也仅新增了 9,000 美元,同时人们还发现该项目仅有一名全职开发人员。
同时,捐赠资金也有很大的不确定性,就像在去年企业收益下行的情况下,Babel 得到的捐赠也随之大量减少。
André 给出了开源项目受捐赠的最佳可持续点(相当于维持行业标准):一个受欢迎的项目、拥有足够小的团队,并知道如何从一群捐赠者或赞助组织筹集大量资金。但要同时做到这三点很难。开源究竟该如何可持续地发展下去是需要开发者们共同思考的问题。
参考链接
https://babeljs.io/blog/2021/05/10/funding-update.html
https://www.theregister.com/2021/05/12/babel_money_woes/
本文文字及图片出自 微信公众号
你也许感兴趣的:
- 尤雨溪Vue 2022回顾及2023展望
- 尤雨溪向 React 推荐自己研发的 Vite,网友:用第三方工具没有任何意义
- 尤雨溪自述:打造 Vue 3 背后的故事
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
你对本文的反应是: