关于core-js和开源的感想
这两天看到开源社区讨论 core-js 作者发布的文章 so-whats-next,看完原文后感触挺挺深。
去年 Log4j 漏洞让大批开发不眠不休的升级,但是 Log4j 的作者,真心有点惨。软件被白嫖,还要负无限责任!没有报酬,还要挨骂!
这些骂人的家伙们,可能忘记了开源软件经常存在的一个声明:
开源软件的用户需要对软件的使用、分发负责,并承担相应风险。
2014年4月,OpenSSL的维护者收到了Google报的安全问题,要求修复。他感慨道:为什么一个每年只能收到2000美元捐助的人,却要负责加密17%的互联网流量?
2018年,一个每周下载数百万次的JavaScript库ua-parser-js被添加了恶意代码,用来窃取加密货币。原因就是最初的作者没有动力维护了,他把控制权交给了匿名的人。
他肯定没有动力,因为这个项目只筹集到了微不足道的41.61美元的钱,但是他却要应付各种各样,海量的需求。
这实在是太不公平了,为什么开源软件会走入到这个境地?像Log4j , OpenSSL还是靠志愿者在背后默默努力,一旦暴雷,只有硬抗。
再回到 core-js ,他是 JavaScript 标准库中最流行也最常用的 polyfill,为最新的 ECMAScript 标准和提案提供支持,包括古老的 ES5 功能到迭代器助手等前沿选项;就连与 ECMAScript 密切相关的 structureClone 等 Web 平台功能也离不开它的协助。
core-js 的月均 NPM 下载量为 2.5 亿次,总下载量高达 90 亿次,1900 万次 GitHub 仓库依赖 ,这些都是相当惊人的数字。但这仍不足够概括 core-js 的真正热度。目前,在对全球 TOP 1000 网站进行统计后,脚本发现有 52% 的测试对象在使用 core-js。
虽然 core-js 被下载了数十亿次,被世界上一半的网站所使用,“可以说是最流行的 JavaScript 运行时之一”——但他从捐赠中获得的收入却急剧下降。当他开始全职维护 core-js 时,他每月大约 2,500 美元的收入,而现在已经下降到每月 400 美元左右。
这有多种原因。一是 Pushkarev 身处俄罗斯,自从乌俄开战,俄罗斯一直受到广泛的金融制裁。2020 年,他因骑摩托车与两名行人相撞并导致其中一人死亡而入狱约 10 个月,这让他的情况雪上加霜。
收入不足的他试着向 core-js 用户直接求助,针对那些在 core-js 失去维护后会受到影响的人。虽然不抱太大希望,但 Pushkarev 还是在 core-js 安装上添加了这样一条消息:
没想到这却成了舆论的主流。一天之内,几百条消息、帖子和评论涌向了他,千言万语汇成一句:让弱智和他的 core-js 滚蛋!据说还有更为激烈的表达,甚至还有人要求限制 Pushkarev 对代码仓库和软件包的访问,把权限直接移交给他人的。
对于那些从开源免费劳动力身上获得收益的大公司,使用开源是一笔相当划算的交易。然而,对于个人开发人员而言,无偿创建和维护代码是有成本的——不仅是在财务方面,还有社会和政治资本方面的。
开源维护者是软件世界的无名英雄,他们全心全意地创造大量价值,但往往不被重视。这些无名英雄的工作是所有现代软件发挥作用的关键,他们不知疲倦地编写新功能、修复错误、回答用户查询、改进文档,但他们的努力几乎得不到认可。很多维护者是隐形的,而且更为过分的是,这些维护者的工作做得越好,他们就越隐蔽。这也是 core-js 维护者所面临的情况。
我也在维护几个开源的组件,虽然用的人不多,但是如果遇到问题我还是比较乐意去帮忙答复的,本来做这个就是为了帮助更多的开发者去解决问题,毕竟我也希望等我需要帮助的时候,作者也能及时响应。
我也经常会给一些开源组件提一些PR:
现在,我想国内的开发者应该要思考一下开源的模式,如果无法体面的生活,那就还是及时放手比较好一点。
补充一个Core-js作者文章的中文翻译:https://www.infoq.cn/article/S8JSFyHXU8vowD1UphKP
挺悲催的,辞掉工作,一心一意开源事业,到最后赞助的人也没多少,感觉都要饿死了。
他说的没错,后悔开源了,不然估计能赚钱。
事先声明,看来是必须的。使用后果,使用者自负。