所以,开源是程序员的原罪吗?

所以,开源是程序员的原罪吗?

软件仓库woniu2023-10-31 15:28:1529A+A-

哪怕你不是个习惯掉头发的程序员,GitHub 这玩意相信你总或多或少听说过吧,我一直把 GitHub 放到了诸如 P 站的高度,属于不可或缺的存在。


然而就在上个星期,GitHub 上爆了个大瓜,事情虽然发生在大洋彼岸,传到咱这多少已经有点滞后了,但从头到尾,讨论颇有一种愈演愈烈的感觉。


所以,开源是程序员的原罪吗?

容我先给不明前因后果的小伙伴说说这次 GitHub 上到底发生了点啥,放心,就算你刚听说 GitHub 也能轻松听的懂。


删库投毒


事情发生在 2022 年刚开年,我们或许还没有真切感受到 2022 年的到来,还在按部就班的上班打工,但 GitHub 上一位拥有上百项目的开发者做了一个决定——


主动删除了本该是自己最得意的两个开源项目,「faker.js」和「colors.js」。


现在去 GitHub 上看「faker.js」,会看到只剩下了一些配置文件,和一句 endgame。



说实话,这俩项目以及它们背后的作者 Marak,或许你听说过,或许你没听说过,这不重要,重要的是得看这俩项目的传播力度。


在 npm(包管理工具)上,「faker.js」这个项目的周下载量接近 250W,「colors.js」这个项目的周下载量在 2240W。


换句话说,有大大小小的公司,形形色色的项目在开发过中可能都有用到这俩项目,删库跑路这事真从天而降了,说没影响那是骗人的。


可谁也没想到的是,这不单单是普通的删库跑路事件,大佬 Marak 在删库之余,还提交了被国外开发者称为「反美」的毒代码——6.6.6 版更新。


先说毒在哪里,当你美滋滋的更新了「faker.js」或「colors.js」这俩库,然后运行程序的时候会喜提一个死循环,然后迎来乱码界面。



至于为啥被人称为「反美」,那是因为 Marak 投毒的更新项所用的名号——新增美国国旗模块。



而且在乱码界面的前三行,更是大写着 9 个「自由」。



说实话,吃瓜的时候看到这愣是把我给看笑了,但笑的同时,我又有了更大的疑惑,Marak 是谁?他为什么要这么做?


疑惑的不止有我们这些吃瓜群众,国外的媒体和网友早已开始了对 Marak 的挖掘。


嗯,不查不知道,一查吓一跳,Marak 不仅是曾经的纽约创业之星,更是美国的炸弹嫌犯,这位老哥身上光环的正反面都吊足了胃口。


Marak


彼时,19 岁的 Marak 刚刚大学毕业,凭着一手扎实的基本功拿下了微软的 offer,此后作为一名合格的打工人,积攒了多年的开发经验。


直到 2010 年,Marak 和 Node.js 这个刚刚发芽的开源技术相遇了,受够了商业公司闭源开发限制的 Marak 遇到了「真爱」。


于是就在那一年,Marak 以超高的执行力,拉着朋友创办了一家主营 Node.js 服务器托管的公司,Nodejitsu。


在刚刚创业的日子里,别说 996 了,Marak 恨不得直接 007,好在努力并没有让 Marak 失望——


仅仅用了 1 年的开发经营,Marak 的公司就迎来了首轮 75W 美元的融资,并一举拿下纽约创业之星的名号。


要知道,那时的 Marak 走在了时代的前面,不说在 Node.js 的赛道里独一份,但绝对处在领头的那个梯队,可以说 Marak 被称作 Node.js 布道者并不为过,无比风光。


但这样的好日子很快就结束了,随着 Node.js 这门技术的开枝散叶,有钱、有人、有技术的大公司开始下场了。


时间来到 2015 年,Marak 的故事以公司被收购而匆匆结尾,自此,世界上少了一个创业者 Marak,GitHub 上多了一个自由开发者 Marak。


从创业到失业,Marak 用了 5 年,从创业之星到炸弹嫌犯,Marak 也用了 5 年。


2020 年,在纽约皇后区的公寓里发生了一起火灾,而后 FBI 带走了 Marak。



在 nydaily news 的新闻报导中有说到,调查人员在 Marak 的家里发现了镁粉、硫磺粉、铜粉、铝粉、保险丝和搅拌杯,以及不少关于爆炸的书籍。


但从头到尾,没有人知晓 Marak 曾经是创业之星的身份,没人知晓他开源大佬的身份,在新闻最后所留下的,只有一条 Marak 毕业于东汉普顿高中的信息。


事件草草发生,草草结束,对 Marak 而言并没有什么帮助,一个月后,时年 37 岁无家可归的 Marak 在推特上发帖向网友求助。



有人劝他不要再搞开源了,找个工作,但 Marak 只说了句:


我想我这辈子剩下的时间和下辈子都只会去做社会工作来帮助别人。我已经没有写代码的欲望了。


落魄至此,我们不知道为了开源付出了 10 年青春的 Marak 到底经历了什么,但能从那一年他 GitHub 的帖子里看到 Marak 的不甘。



谁错了


无论 Marak 是怎样的人,经历了什么,我们还是要回归上个星期的删库投毒。


这件事发生后,Marak 和开源一起走到了风口浪尖,不用想都知道网友对 Marak 的苛责声有多大,但 Marak 这么做真的错了吗?


如果你从道德和开源精神以及事后影响力来看,毋庸置疑,Marak 的所作所为肯定是错的,可以说极其不负责任。


但是,Marak 作为开源项目的发起人和维护者,当他选择较为宽松的 MIT 开源协议,他有权删除自己的代码,也有权在代码中加入死循环引用。


就像白嫖开源代码的公司一样,它们直接拿着 MIT 开源的代码商用,也不用付出任何代价。


一饮一啄,好像没谁有资格强迫开源作者无私充当保姆,协议可清清楚楚写着呢,我开源,风险使用者承担。


但结果呢,Marak 的 GitHub 账号被官方停用了,说好的开源权力呢?说好的开源自由呢?



Marak 行为艺术般的删库投毒,撕破了开源的假象,现在想想,Marak 最后那三行「自由」充满了讽刺。


最后


我喜欢开源,因为我是受益者,我在享受开源所带来的便利,为数不多的几次赞赏,给的都是开源项目。


可我不得不说,开源真的很具有浪漫主义色彩,越是底层,开源协议越是宽松,好像收益越是不大。


过去总有人说开源的人是为众人抱薪者,那当抱薪者都快要冻死了,是不是也该少骂两句了。


参考链接:

http://web.archive.org/web/20210704022108/https://github.com/Marak/faker.js/issues/1046

https://www.theverge.com/2022/1/9/22874949/developer-corrupts-open-source-libraries-projects-affected

https://www.reddit.com/r/programming/comments/rz5rul/marak_creator_of_fakerjs_who_recently_deleted_the/

https://abc7ny.com/suspicious-package-queens-astoria-fire/6425363/

https://mp.weixin.qq.com/s/TdPk4GXUk6xPfiuaQhlTxQ

点击这里复制本文地址以上内容由小高教学网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交
qrcode

小高教学网©All Rights Reserved.  Copyright Your WebSite.Some Rights Reserved1.
Powered by 小高教学网原创
联系我们关于我们留言建议网站管理