雷锋网AI源创评论报道,
一位彪悍的俄罗斯程序员,名字叫丹尼斯·普什卡列夫(Denis Pushkarev),平时爱好就是飙摩托车。[1]
【雷锋网注:俄罗斯程序员、摩托车爱好者,丹尼斯·普什卡列夫】
在一次事故中,他以 60 km/h的速度驾驶,结果撞了两个行人,一人现场死亡。根据俄罗斯联邦法律,他被判处有期徒刑 18 个月,剥夺 2 年驾驶权利,另处以罚金 138 万卢布。[2]
【雷锋网注:俄罗斯法院驳回了上诉】
丹尼斯认罪,但是请求缩短刑期,从 2019 年 11 月就递交了上诉,如今上诉被驳回了。
问题是,丹尼斯写程序也很彪悍,他是 JavaScript 的模块化标准库 core-js 的作者,这个库通过 npm 软件包管理器下载,每周居然高达 2600 万次。[3] 甚至连苹果公司的网络服务,也用到了这个库。[4]
【雷锋网注:core-js有超高的人气和下载量】
真正的问题来了,如果丹尼斯进班房这么久,谁来维护这个库?
一个人的开源
core-js 并没有公司支持,其实就是丹尼斯写的一个 JavaScript 标准库的 Polyfill(插件),有点像装修用的腻子,把缺损的地方填充抹平。在 Web 开发中,在不支持在 HTML5 的旧版浏览器上,实现最新标准。它是最普遍、最流行的给 JavaScript 标准库打补丁的方式。
丹尼斯写这个库花了 5 年业余时间,还一直在找新的全职工作。他想了各种办法来筹集资金,以便维护开源项目。结果是筹到了每个月 57 美元的赞助,仅仅比没有强。
他还想到了广告的方式,方法就是在 npm 安装之后出现日志式的文字广告。但是并没有什么广告商愿意为之付费。
现在,面临高额的罚金和 18 个月的入狱,问题变得很严重。社区用户 nathanjd 问了大家都关心的问题,“如果您在监狱中,那么谁来维护呢?” [5]
丹尼斯没有提供答案。有一位项目贡献者 slowcheetah 声称他可以有一些时间来修复关键错误和重大更新,并且显示他具备“合作者”的权限。但是并不清楚这能否维持该项目的进展。
开源项目的挑战
另一个 JavaScript 加密库 jsrsasign 也遇到过类似的挑战。自 2018 年 4 月以来,项目就没有任何活动。但是在 npm 上却有 350 个项目完全依赖这个库,项目也受到了微软、Mozilla 这样有影响力公司的青睐。[6]
有人指出,JavaScript 社区里不少项目都有这样的问题,就是项目的作者是唯一的维护者,特别是这些使用量大的项目,不应该由一个人,而是应该由一个基金会来掌控。
【 雷锋网注:图片来源:Pixabay 所有者:Boskampi 】
然而现实问题摆在这里,需要有一个解决办法。GitHub 社区与安全高级产品经理本·巴尔特(Ben Balter)回应说,如果项目维护者无法响应,GitHub 有一个账户所有权转移的流程,比如转给合作者或者同事。同时鼓励维护者将项目从个人账户转移到组织中,不仅可以获得高级社区管理功能,还可以添加其他维护人员作为共同所有者。[7]
这些都要取决于项目维护者的选择。也有的网友提出,项目可以分叉,由另外的人来维护。但是分叉对于 npm 上依赖这个名字的其他软件包而言,并没有任何帮助。
最后有网友建议,大家有没有想过,丹尼斯可以在监狱的图书馆里,继续维护这个项目?
引用来源:
[1] 丹尼斯的个人网页,https://vk.com/xrock
[3] core-js库,https://www.npmjs.com/package/core-js
[4] https://www.apple.com/legal/internet-services/news/notices-acknowledgements.html
[5] https://github.com/zloirock/core-js/issues/548#issuecomment-494112872
[6] https://github.com/kjur/jsrsasign
[7] https://www.theregister.co.uk/2020/03/26/corejs_maintainer_jailed_code_release/