开源 or 不开源,一直以来都是一个争议性的话题。
但不可否认的是,在过去的一两年,开源在全球呈高速发展趋势,越来越成为跨越国界和语言的共识。 据GitHub官方数据显示,2021年GitHub活跃用户数和活跃代码仓库数量均有明显增长,其中新增活跃用户数超过1600万,新增活跃代码仓库数量超过6100万。 不难发现,象征着“自由”的开源软件,正在逐渐从“开发者亚文化”变成一个主流的软件开发模式。 但自由意味着免费吗?近期开源界发生了一则轰动性的事件,将这一问题浮出了水面。
01
开发者故意破坏开源项目引发争议
近日,一位开源开发者故意破坏自己的开源项目,引发了机构依赖开源库的争议。 被破坏的开源库是Marak Squires开发的color.js库和faker.js库。这两个库被广泛使用,其中不乏企业和商业客户。
因此,有数千个大型项目受此影响出现了停止运行,包括亚马逊AWS 的Cloud Development Kit。 Marak在color.js库的v1.4.44-liberty-2版本中给新的美国国旗模块加入了无限循环,依赖color.js的项目会在控制台看到不停打印的非ASCII字符。
faker v6.6.6版本的情况类似,他将这两个搞破坏的版本推送到GitHub和npm。 数据显示,有近19000个项目依赖color.js库;faker的周下载量超过280万次,有超过2500 个项目依赖它。 reddit上的热门帖子表示,Marak破坏库代码是因为缺乏资金和被滥用开源项目。 事实上,在此次事件之前,这位开发者就曾公开批评,指责使用了这些库的企业对社区没有任何回馈。 2020年11月,他曾警告说,自己将不再义务工作支持大企业:“恕我直言,我不会再免费工作来支持《财富》500 强(Fortune 500)公司(以及其他规模较小的公司)了。
趁这个机会,要么发给我一份年薪六位数的合同,要么赶紧分叉项目、找其他人接手”。 Marak的大胆举动旋即引发轩然大波,各界纷纷就此事发声。部分开源软件社区成员赞扬了这位开发者的勇敢行为,但也有人对他的过激举动表示震惊,觉得这是“又一个开源开发者造成的流氓案件”。 值得注意的是,Marak 的此次过激行为发生在不久前影响巨大的Log4j 漏洞事件之后。
作为一套重量级开源库,Log4j在不同企业及商业实体开发的各类Java应用程序当中都有广泛使用。
而Log4shell漏洞的曝光,使得不少开源维护者不得不在休假期间无偿帮助修复这些项目。 于是开源业界开始普遍担忧,认为大企业们已经习惯于“压榨”开源成果。不少公司以此获利颇丰却不支付费用,也不对开源社区做出相应的回馈,矛盾便日益凸显甚至激化了