分享

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

 网罗灯下黑 2022-01-13

哪怕你不是个习惯掉头发的程序员,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./web/20210704022108/https://github.com/Marak/faker.js/issues/1046

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

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

https:///suspicious-package-queens-astoria-fire/6425363/

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

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多