Faker.js作者愤怒撤回代码,众多企业陷入困境
在开源领域,总有人以为这是一片和谐的乐土,然而Marak Squires的行为却打破了这种幻想。2022年1月,这位程序员在长时间的不满后,竟将自己多年的项目Faker.js全盘删除,并植入了恶意代码。这一举动导致数以千计依赖Faker.js的应用程序崩溃,尤其是众多《财富》500强公司的系统也受到影响。
Faker.js是一个用于生成各种虚假数据的Node.js工具库,广泛应用于开发和测试阶段,每周下载量高达200万次,全球数百家公司对此依赖颇深。尽管表面看起来是程序员的疯狂行为,但如果回顾Marak的过去发言,会发现这是积压已久的反应。早在2020年10月,他就已公开表达了对维护Faker.js的厌倦,而到2021年底,他更是声称将不再为财富500强公司提供免费支持。
他的操作方式颇为巧妙:他将原有代码仓库设为私有,创建了一个新仓库却仅保留了以前仓库名称,新的提交记录让人误以为是刚起步的新项目,极大迷惑了使用者。尽管npm上仍可下载旧版本,许多人却未意识到库的作者已然脱离。 千亿球友会
在网络讨论中,主要的原因归结为两方面:维护一个被无数公司无偿使用的开源项目,Marak不仅未获报酬,连基本的捐款都寥寥无几。而当出现错误时,往往是大公司先指责他,让他感到自己被视为廉价的劳动力。通过此举,他揭露了开源中的潜规则。
此事件的爆发并非个案,早前,left-pad的作者也因命名纷争撤除了自己的模块,导致了众多项目的构建失败。历史虽然不重复,但在开源界这类悲剧似乎时常上演。
事件发生后,开源社区迅速反应。一个由八名不同背景的工程师组成的团队迅速成立,接替了Faker.js的维护工作。他们创建了新的项目faker-js/faker,给予了Faker.js新的生机,并确保所有历史版本的可用性,完成了对TypeScript的迁移,建立了官方文档和社交媒体账号以促进社区交流。 千亿球友会
这个事件揭示了开源世界的深层问题:开源不应当被视为免费的劳动力,大型企业也不应无偿使用这些项目而不承担责任。一旦开源代码被广泛采用,谁来为其负责?是经济拮据的开发者,还是掘金亿万的公司,亦或者是志愿维护的社区团队?这种责任的划分仍在探讨之中,但Faker.js事件使更多人意识到了免费的背后,往往付出的是艰辛的代价。