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