用户数百万、月下载超 1 亿,著名开源项目 Babel 却说自己快没钱维护了

1,093 阅读6分钟

本文转自【机器之心】

著名 JavaScript 编译器 Babel 没钱了,而创建者认为维护者在「高薪摸鱼」。

近日,JavaScript 编译器 Babel 的一则声明成为了开源社区的议论焦点。拥有数百万用户,Facebook、Airbnb 以及 Netflix 等大型公司都在使用的 Babel 的维护团队在官方博客宣布:我们「没钱了」。

博客地址:babeljs.io/blog/2021/0…

以「我们没钱了,需要捐款」为核心思想,整篇博文分为五个部分,提炼一下就是:

  • 起初,我们向维护者 Henry Zhu 支付全职工资 11000 美元 / 月,此外还有三位兼职开发者 Jùnliàng、Nicolò、Kai 的工资,最初为 2000 美元 / 月;
  • Babel 发展迅速,在全球拥有众多用户,月下载量已经超过了 1.17 亿次;
  • 但 Babel 的资金状况堪忧,支付全职工资也很困难,团队成员之一 Kai 不得不辞职去寻找另外的工作;
  • 未来,我们希望能够得到一定数量的赞助资金,继续完善 Babel 的用户体验;
  • 为了维护 Babel 的良好运营,我们每年至少需要 333000 美元(是目前年收入的两倍),希望大家能够提供资金支持。

博客中提到,现在 Nicolò、Henry、Jùnliàng 薪水暂时是每月 6000 美元,尽管大家拿的薪水都不高,但目前看来,Babel 的资金余额也只够维持到 2021 年底。

Babel 项目开始于 2014 年,就主要功能来讲,它能帮助用户在最新版本的 JavaScript 中编译代码,当用户支持的环境无法支持某些特性时,将这些特性编译为支持的版本。

由于该项目是开源的,任何人都可以免费使用、下载以及修改。作为一个社区驱动的项目,很多公司和项目都在使用 Babel,并由志愿者团队进行维护。

GitHub 项目地址:github.com/babel/babel

Babel 已经实现了对很多新的 ECMAScript 提议的支持,跟进每个新发布的 TypeScript 和 Flow 版本,并设计了新的特性以生成更小的编译输出。此外,Babel 已经集成到了 JavaScript 生态系统中各类框架中,如 React、Next.js、Vue、Ember 和 Angular。Babel 支持自定义插件和各种场景中的优化,如 CSS-in-JS、GraphQL 或跨大量代码库的本地化。

在博客中,团队也提到了即将发布的 Babel 8 版本。然而,对于 Babel 这款底层工具,很多人使用它但不其实不太了解它,更别提赞助项目资金了。

全职维护之路走不通?

从 Babel 官网可见,该项目当前有 6 名核心维护者,包括 Brian Ng、Henry Zhu 等,这个小团队承担了 Babel 的维护工作。

为什么会出现资金耗尽的情况呢?这就要从 2018 年说起,当时 Babel 团队进行了一次实验:全职对项目进行维护,并支付维护成员相应薪水。

Henry Zhu 从 Adobe 辞职,开始了在 Babel 的全职工作。到了 2019 年 11 月,Babel 已经成功支付了 Henry Zhu 一年多的薪水(每月 11000 美元),并开始向其他三位兼职成员支付薪水,分别是 Jùnliàng、Kai 和 Nicolò,最初每月 2000 美元。并且,Babel 还希望后期增加预算,将三位兼职成员转为全职。

几年过去了,Babel 团队发现「全职维护之路似乎行不通」,并在充分考虑目前所收捐款的情况之后意识到需要做出一些调整。目前,虽然 Babel 团队依然向 Henry Zhu、Jùnliàng 和 Nicolò 这三位成员支付薪水,但在博客中表示:「已经快没有钱给维护者发薪水了」,并寻求支持。

其实,从一开始,Babel 团队就知道没有足够的薪水支付给全职维护成员。所以,成员 Henry Zhu 花费了大量时间积极寻求持续的资助,比如做会议演讲或游说公司赞助。但 2020 年,Babel 团队的融资受到了很大的影响,丢掉了一些大的赞助商。成员 Kai 也不得不放弃维护工作,另找一份全职工作。之后,Babel 希望可以收到更多的捐款以发给 Jùnliàng 和 Nicolò 更多的薪水,但这一愿望也落空了。

Babel 团队写道:

我们坚信,开源工作应是一条行得通和可持续的职业道路。但现在,我们不得不面对一个残酷的事实:几个月后就没钱了。

此外,Babel 团队也正在向一些公司寻求赞助。Nicolò 补充道:

很多公司都依赖我们的软件,所以确保 Babel 项目得到维护并永远维持下去符合他们的利益。

创建者:有人拿了钱不干活

这则声明一经发布,迅速引发了社区热议。Nicolò 表示,截止当地时间周三,团队已经收到了 4 万多美元的捐款。

但 Babel 创建者 Sebastian McKenzie 的推文,又引发了一波更加激烈的讨论。

Sebastian McKenzie 现在是另外一家公司 Rome 的负责人,已经不再从事该项目的维护工作。他发了一条推特内涵核心团队成员 Henry Zhu 居其位而不谋其事:

之所以没有钱,是因为有人拿了 13 万美元的年薪,实际上并未从事项目工作。

但 Sebastian McKenzie 随后删除了推文,并对自己造成的影响感到抱歉。

我不该公开提到 Henry,而应该私下沟通。因为过于沮丧发了那条推文,表达也过于粗糙,这些都是不好的行为。

项目资金紧张,归责于某个人,合理吗?面对 McKenzie 对 Henry Zhu 的指责,包括 Vue 创建者尤雨溪(Evan You)在内的独立开发者都出面声援。

维护项目不止意味着 push commit,还要管理团队、寻求资金来源,同时担负着精神压力。」

一位将维护工作完全移交出去的创建者,显然不应该如此责备项目成员。「如果 Henry Zhu 当时不接管 Babel,那这个项目可能已经不在了。」

JavaScript 代码检查工具 ESLint 创建者 Nicholas C. Zakas 表示,虽然 Henry Zhu 并非 Babel 的创建者,但他也是 Babel 一路走来的见证者,并且为此放弃了在业界获取更多报酬的机会。「我们总不能要求维护者始终拿着跟大学毕业生一样甚至更少的薪水。」

同时,Nicholas C. Zakas 也坦承,开源项目运转不易:「在 ESLint,我们一直为维护者提供的薪资都是比较保守的,因为没有太多的钱来支付劳务费用。赞助商常常突然消失,我们也不想让任何人失业。」

有开发者认为,Henry Zhu 一直以来的维护工作都是优秀的,指责他是一种野蛮行为。

问题来了,这钱捐还是不捐呢?

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。