社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GitHub最火开源项目作者删库跑路!直言不想被白嫖,上万个应用崩溃

扩展迷Extfans • 4 年前 • 715 次点击  

“最初,没有人在意这场灾难,这不过是一场火山,一次海啸,一个物种的灭绝,一座城市的消失,直到这场灾难和每个人息息相关......”如同一场火山爆发给人类带来的预警,作为一款明星开源项目的作者,自毁代码删库跑路这件事,或许是2022年开发界一次全新变革的开始。



这几年里,开源热潮席卷全球,在代码托管平台Github上,来自世界各地的优质开源项目层出不穷,软件开发效率和质量得到显著提升。


无论是国内外科技巨头还是个人开发者,纷纷投身其中,高举开放、协作、共享的大旗。


开源的确在帮助这个世界变得越来越好,但另一方面,开源项目背后仍有大量的维护者处于水深火热之中。



去年年底,全球知名开源日志组件Apache Log4j2被曝“核弹级”高危漏洞,几乎所有行业都受到波及。


这个漏洞的出现,也撕开了开源光鲜亮丽的外表下的残酷事实:


当有人使用开源项目时,他们会对作者充满感激。


然而一旦这个项目出现Bug,它背后的开发者便会遭到如潮水一般猛烈的骂声——哪怕这是没有任何酬劳的工作。



那么,在没有报酬的情况下,有多少人能够在业余时间坚持维护这些开源项目呢?


Apache Log4j 2漏洞爆发过去一个月后,又一位知名开源项目的作者用行动做出了回答。


今年1月上旬,开源工具Faker.js和Colors.js的作者Marak,在没有任何征兆的情况下,突然将Faker.js项目仓库的所有代码清空了。



他在commit中留下了“endgame”字样,并且在README中写道,“What really happened with Aaron Swartz?”


(注:Aaron Swartz曾建立Creative Commons、RSS和Reddit,在2011年被指控非法入侵MIT和学术数据库JSTOR以窃取文件,于2013年自杀。)


值得注意的是,Faker.js上一个版本依旧可以下载,版本号却被改为了在西方中代表恶魔的数字6.6.6。



另一个仓库Colors.js的代码虽然没有被清空,但Marak也在v1.4.44-liberty-2版本中添加了一个“new American flag module”。


新的代码中引入了一段无限循环,会让所有使用了Colors.js的程序都在控制台无休止地打印各种非ASCII字符的乱码。



数万个使用了这两个开源项目的应用一夜之间要么“变砖”,要么不断输出满屏乱码。


Marak的删库行为,无疑往整个开源社区扔了颗威力惊人的大“炸弹”,无数人都不敢相信这一事实。



对于前端开发者而言,应该对Faker.js和Colors.js并不陌生了。


它们是前端工程中非常火爆的开源仓库,被很多公司和个人在生产环境中深度使用。


Faker.js提供了各种类型的模拟数据,用于开发调试,周下载量高达两百万多万,且多次进入Github日榜前三。



而Colors.js则是一款基于Node.js Console命令行参数神器,用于终端着色colors插件,每周下载量约2314万。



Marak这番令人匪夷所思的操作,令大家疑虑顿生:明明花费了多年心血打造的两个项目,为什么会突然选择自己毁掉这一切?


据了解,Marak这些年的确投入了大量精力和时间来维护这两个项目。


但因为它们使用的是十分宽松的MIT开源许可协议,所以即使被拿来商用,也不用向作者支付任何费用。


通俗来讲就是“白嫖”,所以Marak的获益非常少。



随着开源项目规模的不断增大,Marak也需要投入更多精力来对其进行维护。


但有一个前提,那就是只有在他自己能保证足够生存的条件下,这一切才能顺利进行。



压倒骆驼的最后一根稻草,或许是2020年9月Marak遭遇的一场火灾。


当时,Marak的公寓失火,所有财产几乎被全部烧毁,在身无分文且处于无家可归的状态下,Marak在推特上发布求助信息。



他公布了自己的PayPal账号,请求网友们给他提供捐助。



可能是网友们捐助的金额难以维系生活,2020年11月,Marak在GitHub上发文,谴责大型公司使用其Faker.js开源项目却不支付费用的行为。


Marak表示,如果这些公司不支付费用,那么就fork项目自行维护,因为他不再打算为任何人提供无偿的维护工作了。


于是,在两个月后,Marak兑现了他的“承诺”。截至账号被封之前,他在GitHub上已经有90多个开源项目。



事情爆发后,全球上万个项目的开发者在忙于修复工作的同时,也对Marak的行为进行了激烈的辩论。


有人认为,Marak的行为太不负责任,如果不想免费维护,那一开始就不要发布出来。


也有人认为,从GitHub删除自己的代码是每个用户的权利,Marak有权对他维护的项目进行任何处置。


还有人直言,大公司凭什么能从别人的无偿劳动中赚到一大笔钱,这本来就不公平。



毫无疑问,这起事件再次引起了人们对于开源开发者生存现状的关注。


在现实中,大量网站、软件和应用依赖于免费的开源项目。


而开源项目维护工作是一项长期且艰巨的任务,大到新建功能、修复Bug,小到把控代码质量。


可以说,作者参与得越多,用户对项目的要求就越多。



素不相识的伸手党,会因为你没有及时回答问题而开骂;


下班后只想好好休息,但手机和电脑上会有消息不断提醒有多少人在等着你解决问题;


当你熬夜爆肝做出来的成果,被别人使用后赚得盆满钵满,而你除了不断上涨的star数,再也收获不到任何利益......


久而久之,曾经全力以赴创建这个项目的快感,大概只会消失得无影无踪。



根据去年Tidelift发布的调查报告显示,近50%开源项目维护者拿不到任何报酬。


而年收入在1000美元(约等于6300元人民币)以上的维护者仅占16%。



在“为什么选择持续维护开源项目”这一问题中,71%的开发者选择了“享受能够对世界产生积极影响的感觉”。


也就是说,开源带来的物质上的收益不多,大多数开发者们都是在成就感的激励下坚持下去的。



除了Faker.js和Apache Log4j2外,还有许多开源项目的开发者,也正处于类似的尴尬处境。


去年11月,有用户向苹果请求更新macOS 12中与Curl有关的信息,结果苹果直接回复用户让他自行联系Curl的开发者。


为此,Curl创始人发言讽刺称:“一家市值万亿美元的公司将各种开源组件组合在一起,每年可从中获利数十亿美元。当用户就其提供的产品寻求帮助的时候,这家公司反而将用户推给开源项目。这个开源项目是志愿者运营和维护的,而这家公司(苹果)从没有赞助过一分钱。”



众所周知,除了Linux等大型项目外,大多数开源项目都只是由一个小团队甚至单个开发者在进行维护,工作量自然不言而喻。


Marak的这件事应该给所有人敲响警钟:任何一个能够坚持更新和维护的开源项目,背后都一位值得尊敬的程序员,给予他们必要的赞助是非常值得鼓励的行为。


无论如何,开源不易,还是得相互理解与支持,才能走得更远。




温馨提示



关注【扩展迷Extfans】

阅读更多精彩内容


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/126457