.js|开源作者删库“跑路”,是玻璃心还是另有隐情?

2022年刚开始没几天,开源社区就发生了一件大事,一个知名开源库Faker.js的作者Marak Squires,选择主动恶意破坏自己的这个项目,并且不仅“删库跑路”、还注入了导致程序死循环的恶意代码,使得全球大量使用该项目的个人与企业都受到了不小的影响。

.js|开源作者删库“跑路”,是玻璃心还是另有隐情?
文章插图
.js|开源作者删库“跑路”,是玻璃心还是另有隐情?】作为GitHub上的知名开源库,Faker.js的主要作用是能快速为项目生成可用于测试的假数据,包括用户名、密码、邮件、日期、地址、文章等内容。对于开发者而言,在实际的软件开发过程中使用假数据进行测试是一个必要环节,其同时也能够帮助开发者验证前端设计的合理性。
如今打开GitHub上的Faker.js页面,所有配置文件最后的提交信息都是“endgame(游戏结束)”。并且耐人寻味的是,Marak Squires在Readme中写下了“What really happened with Aaron Swartz”这句话。据悉,Aaron Swartz是传记电影《互联网之子》的主角,作为Reddit的联合创始人,他用生命捍卫了互联网的开放、自由和共享。

.js|开源作者删库“跑路”,是玻璃心还是另有隐情?
文章插图
发生在Faker.js这个项目上的故事,简单来说,就是这一项目的开发者Marak Squires去年因为公寓失火,导致各种贵重物品丢失、无家可归,因此他提供了自己的PayPal账号寻求捐赠。但显然依靠网友捐款并不是长久之计,因此他还选择了在Faker.js的基础上,探索付费增值服务Faker Cloud,而这也是开源软件的一种重要商业模式。
然而意想不到的事情发生了,Marak Squires开发的Faker Cloud是提供在线“假数据”生成的云服务工具,而作为Faker.js的第二大捐助者,Retool.com在每月捐出500美元后,随即也以Faker.js为基础开发了与Faker Cloud一模一样的工具,并且还完全免费。更绝的是,Retool.com引用的CDN域名是cdn.fakercloud.com,简直是“杀人还要诛心”。

.js|开源作者删库“跑路”,是玻璃心还是另有隐情?
文章插图
事实上,Retool.com是一家已融资7500万美元的公司,这也使得Marak Squires的Faker Cloud在商业竞争中几乎是毫无胜算的。不过Marak Squires也很“识时务”,直接就给Retool.com的CEO写了封邮件,表示既然你们如此喜欢这个项目,要不就把Faker.js与Faker Cloud直接买了。而Retool.com随后做的,则是嘴上说着这个提议我们会认真考虑,然后就没有然后了。
这一操作就相当于是把Marak Squires当成了猴耍,所以难怪他会心态“爆炸”,最终不但删库“跑路”,还要往库里注入恶意代码,实实在在地恶心使用者。
而现在的情况也已经十分明了,结果是开源项目的参与者尽管嘴上喊着支持、在实际行动上却并非如此。更何况,Faker.js也并不是没价值,其在GitHub上一共获得了3.4万颗star、全球有近千万的开发者在使用、共计2万余个项目依赖它,并且每周下载量超过250万次、总计被下载了超过1.21亿次。

.js|开源作者删库“跑路”,是玻璃心还是另有隐情?
文章插图
上亿的下载量以及千万级的活跃用户群体,这样的数据即便是放到消费级市场都是相当出色的,更遑论Faker.js属于生产力工具。如今对于Marak Squires的这一操作,开源社区的风向则是相当分裂,有人认为“开源就是这样的,玩不起别玩,放恶意代码属于恶意破坏”,但也有认为“代码是人家的,人家有权在开源协议的范畴内任意处置”。
显然,这两种说法都有一定的正确性。毕竟开源代表的开放包容,是互联网精神在现实中的投射,开源追求是的降低技术门槛、避免重复造轮子、用价值回馈社区,是一种开放和共享的软件开发方式。开源精神讲究的是“人人为我,我为人人”,所以一旦将代码开源后,自己作品的命运可就不完全掌握在自己手中,变为了属于所有开源参与者或社区的了。

.js|开源作者删库“跑路”,是玻璃心还是另有隐情?
文章插图
具体到Faker.js这个项目,Marak Squires所使用的开源协议是MIT License,并且其应该是所有开源协议里最宽松的,除了必须包含许可声明外、再无任何限制,也就意味着开发者和使用者各自自行承担一切的责任和后果。开发者不需要肩负为社区提供可信引用源的责任,使用者也没有为开发者付费的义务。
但之所以会造成开源社区里对Marak Squires这一行为的态度分裂,其实也是开源软件先天性的缺陷所导致。开源软件带有鲜明的乌托邦色彩,然而现实却是“人人为我,我为人人”,并且这一切在利益面前也变得极为脆弱。对于商业公司而言,开源是展示技术实力、对行业产生影响力的一种方式,是服务于公司战略,属于实现商业利益中的一环。