整理 | Tina
商业公司和开源社区必须团结起来,找到一种方法来承认和奖励维护者的宝贵贡献。如果牺牲个人才是参与开源的先决条件,我们就会继续将这些聪明有才华的人排斥在开源之外。
数百万网站使用的 core-js 库的维护者 Denis Pushkarev 表示,他准备放弃开源开发,因为很少有人为他们所依赖的软件付费。
“免费开源软件的根基已经崩塌了”,他在 core-js 存储库的注释中写道。“其实我可以直接转身离去,但面对这片自己曾经倾注了热情的社区,我还是想最后说点什么,也是给开源最后一次机会。”
这还是一个谁该为志愿者维护的开源软件付费的问题,它一直是开发者社区里产生摩擦和不满的根源。
对于那些从开源免费劳动力身上获得收益的大公司,使用开源是一笔相当划算的交易。然而,对于个人开发人员而言,无偿创建和维护代码是有成本的——不仅是在财务方面,还有社会和政治资本方面的。
开源维护者是软件世界的无名英雄,他们全心全意地创造大量价值,但往往不被重视。这些无名英雄的工作是所有现代软件发挥作用的关键,他们不知疲倦地编写新功能、修复错误、回答用户查询、改进文档,但他们的努力几乎得不到认可。很多维护者是隐形的,而且更为过分的是,这些维护者的工作做得越好,他们就越隐蔽。这也是 core-js 维护者所面临的情况。
1 辞去高薪工作,全职投入开源
core-js 是 JavaScript 标准库中最流行也最常用的 polyfill,为最新的 ECMAScript 标准和提案提供支持,包括古老的 ES5 功能到迭代器助手等前沿选项;就连与 ECMAScript 密切相关的 structureClone 等 Web 平台功能也离不开它的协助。
它是目前最复杂也最全面的 polyfill 项目,高度强调模块化,在设计上充分考虑到了工具集成需求,并提供所需的一切支持——@babel/preset-env、@babel/transform-runtime 以及基于 core-js 的类 SWC 功能等。
就是因为有了 core-js,开发人员多年以来才能随意使用现代 ECMAScript 功能,只是大多数人并不知道背后的功臣就是它。因为 core-js 在间接起效,所以用起来让人感觉支持是由转译器 / 框架 / 中间包(例如 babel-polyfill 等)实现的。
core-js 的月均 NPM 下载量为 2.5 亿次,总下载量高达 90 亿次,1900 万次 GitHub 仓库依赖 ,这些都是相当惊人的数字。但这仍不足够概括 core-js 的真正热度。目前,在对全球 TOP 1000 网站进行统计后,脚本发现有 52% 的测试对象在使用 core-js。
这也就是说,大多数流行网站都在使用 core-js。对部分大公司,即使他们的主站点上没用 core-js,它的身影也一定存在于某些项目当中。
因为不显山、不露水,几乎没人意识到自己正在使用 core-js。“几乎每位 JS 开发者都间接用到过 core-js,也知道 babel-polyfill、babel-runtime 或者框架 polyfill 的各种功能,但却没人听说过 core-js。”Denis Pushkarev 表示。
作为开源项目,core-js 绝不是那种写完之后就万事大吉的小库。跟绝大多数库不同,它会受到 Web 状态的约束,需要对 JS 标准或提案中的变更、新的 JS 引擎版本、JS 引擎中的 bug 检测等做出反应。起初,Pushkarev 每天都要花几个小时来维护 core-js 和相关项目(主要是 Babel 和 compat-table),工作规模又在不断扩大,同时因为没有名气而找不到其他人一起维护,很显然,这些原因最后导致了 Denis Pushkarev 辞职全身心投入到了开源维护工作中。
“这就是我,不仅辞去了原本的高薪工作,后来还拒绝了好几份相当诱人的邀约。因为一旦接受,我知道自己就再没精力从事开源工作了。”而且他的维护工作进行得相当积极:“维护 core-js 期间,我几乎成了所有现代和未来 JS 标准库功能的首个实现者,几乎所有功能中都有我的反馈和相应修复。core-js 成为试验 ECMAScript 各类提案的最佳平台。一次又一次,用户们是在体验过 core-js 的提案实现之后,才对原始提案做出反馈。”
2 因想养家糊口发帖求助,反被侮辱
虽然 core-js 被下载了数十亿次,被世界上一半的网站所使用,“可以说是最流行的 JavaScript 运行时之一”——但他从捐赠中获得的收入却急剧下降。当他开始全职维护 core-js 时,他每月大约 2,500 美元的收入,而现在已经下降到每月 400 美元左右。
这有多种原因。一是 Pushkarev 身处俄罗斯,自从乌俄开战,俄罗斯一直受到广泛的金融制裁。2020 年,他因骑摩托车与两名行人相撞并导致其中一人死亡而入狱约 10 个月,这让他的情况雪上加霜。
二是情况变了,他需要“养家糊口”。“当我开始研究 core-js 时,我是单身一人,”他写道。“现在我有了一个家庭。(就)一年多前,我成为(一个)儿子的(父亲)。现在我必须为他提供体面的生活水平。”
收入不足的他试着向 core-js 用户直接求助,针对那些在 core-js 失去维护后会受到影响的人。虽然不抱太大希望,但 Pushkarev 还是在 core-js 安装上添加了这样一条消息:
没想到这却成了舆论的主流。一天之内,几百条消息、帖子和评论涌向了他,千言万语汇成一句:让弱智和他的 core-js 滚蛋!据说还有更为激烈的表达,甚至还有人要求限制 Pushkarev 对代码仓库和软件包的访问,把权限直接移交给他人的。
“前后过了 9 个月,成千上万的开发者,包括那些高度依赖于 core-js 的项目开发人员,都了解到我的困境。但没人愿意帮忙,连接替我做维护都不行。”
3 开源可持续性是值得讨论的话题
Pushkarev 的帖子成了近期编程领域最热的讨论话题。
Pushkarev 承认他受到了很多仇恨和敌意。“一位开发人员给我写了一条消息,他称我为开发者社区上的寄生虫,想通过开源不劳而获。”
还有很多人告诉 Pushkarev :“别在开源社区混了,这是自我放弃。好好找个班上吧。某某才干了一年开发,技术根本就不行,但挣的已经是你的好几倍了。”
“有人称我为杀人犯,希望我和我所有的亲人都死光。这不算什么,因为我每个月都会收到几条这样的信息。去年,有更过分的,说我是‘俄罗斯法西斯分子’。”
Pushkarev 更愿意关注开源的经济学,而不是他的处境和他居住的国家的政治。“开源应该脱离政治,”他说。“我回到俄罗斯是因为在那里可以用相对较少的钱过上体面的生活,并专注于 FOSS 而不是赚钱,”他写道。“现在我不能离开俄罗斯,因为事故发生后我有数万美元的未决诉讼,在还清之前我不能离开这个国家。”
当然,他也得到了开源社区人士的大量支持,他们有真正认识到开源的可持续性仍然是一个问题,并努力帮助 Pushkarev 想办法解决当前困境。
“生存才是第一位”,“祝你找到一份体面的好工作!以我的能力也只能支持你一个月几杯咖啡而已。”
“哪个平台的捐款收费低?Patreon 还是 OpenCollective?我可以选择其中一个,哪个对您来说更有利?”
“老兄,谢谢你分享的故事。我会寄给你 100 美元。我从来没有一次性捐过那么多——但也许我应该开始这样做了。”
“你真的是 XKCD 的化身,我们甚至之前都不知道...... 感谢你在 core-js 上的工作,你一直背负着整个现代网络时代。我会尽我所能来分享这个故事,也希望大家都来分享它,直到机会出现。”
“我看到很多项目有多个许可;一个用于开源,另一个用于商业。鉴于您有证据大公司正在使用您的产品,您可以添加分层的许可结构吗?”
“如果他让 core-js 成为一个公司项目,我会笑死的。一夜之间,至少 50% 的主要网站将面临公司依赖。”
......
参考链接:
https://www.reddit.com/r/programming/comments/111k9aq/corejs_maintainer_so_whats_next/
https://github.com/zloirock/core-js/issues/1179
https://github.com/zloirock/core-js/blob/master/docs/2023-02-14-so-whats-next.md
https://www.infoq.cn/article/S8JSFyHXU8vowD1UphKP
今日好文推荐
活动推荐
勇敢者创造历史,探索者改变世界!如果你有丰富大数据算法知识,满腔推动工业互联网前进的热情,那么这场大赛不容错过!
第六届全国工业互联网数据创新应用大赛,由中国信息通信研究院和深圳市宝安区人民政府主办,联合中国东方电气集团有限公司、TCL 华星光电技术有限公司、阿里云计算有限公司天池平台、工业互联网产业联盟等合作伙伴,装箱百万奖金,为你提供专业的技术指导和展现风采的舞台!
喊上同伴,点击阅读原文立即报名!
继续阅读
阅读原文