自己写的开源代码,有没有权利删除呢?

缘起faker.js

这几天,开源界又发生了一件大事,著名的faker.js被作者恶意注入了代码,如果使用新版的faker.js,会导致屏幕先输出三行“LIBERTY”,再无限输出奇怪的字母。

LIBERTY的意思是“自由”。

要理解faker.js的影响力,先要了解下这到底是个什么东西,为什么那么多大公司和个人开发者都在使用。

以往的前端开发时,往往需要依赖后端提供的数据,后端通过给一个接口和一堆数据,供前端调用。

这种方式就有个缺点,前端必须依赖后端。因此,faker.js出现了。

faker.js的用处就是制造大量的假数据,并且能够模拟一个restful接口,来供前端调用。

这些数据的类型五花八门,比如你可以一次性生成几万条个人信息,包括出生日期、家庭住址、电话,甚至照片等。

这就为前端的测试提供了非常便利的方法,众多公司都在使用faker.js。

但是意外终究还是发生了。

要么给钱,要么自己整吧!

这个在github上获得了32.3k标星的repo,完全由Marak一人完成,耗时十余年。

在2020年11月9日的时候,marak就发现包括Google在内的许多大公司都在使用faker.js,但是没有任何一家公司为他的工作付费。

于是,marak就在自己的代码库发了一条声明。

No more free work from Marak - Pay Me or Fork This。

(要么付钱,要么自己整吧。)

正文大意是我不想再被500强企业白嫖了,跟我签一个六位数的合同,或者自己维护。

然而,marak发现,他不光没收到酬劳。其中一家融资超过7500万美元的公司Retool,反而直接开发出和他功能相同的工具,而且完全免费对外开放。

自己单枪匹马,如何对抗Retool的整个开发团队呢,于是他给Retool的CEO写了封邮件,希望对方可以收购自己的Faker.js和相关服务。

笑话,已经有了免费的,怎么可能还要多花钱。

对方礼貌地回复“会慎重考虑”之后,就再也没有下文了。

哥删号不玩了!

marak发现自己接受不了这些大公司的白嫖,开始往自己的代码库里塞恶意代码,“你不让我好过,你也别想好过”。于是,就出现了上面说的乱码。

现在,marak已经把自己整个代码库给删掉了,并在最后一次代码提交时写上了“ENDGAME(游戏结束)”。这件事似乎也就以marak放弃维护faker.js为结束。

面对这件事,一部分人同情marak被白嫖,辛苦开发毫无收入,另一部分人觉得既然选择了开源就自然要接受被白嫖,而且无论如何往里面注入恶意代码绝对是不对的。

开源利于开发,但获利多数归于大公司

实际上,尽管开源促进了整个开发界的繁荣,但是真正获利众多的还是大公司。

以marak为例,如果他最开始不选择开源,那么很明显,不会有这么多公司和个人愿意付费使用他的服务,因为这本来就是一个能花时间重新造的轮子,只是marak完成了这个轮子,其他人也就没必要重新造了。

而marak选择的开源协议是MIT,这几乎是对商用最友好的协议了:

公司可以免费复制、修改、分发marak的代码。

公司可以选择不开源,而且商用。理论上,可以改都不改直接拿别人代码出去卖。

公司可以在宣传产品时可以利用marak的名气,比如可以说我这个是升级版的faker.js。

那么假设marak不选择MIT协议,选择强制开源的GPL协议呢?

GPL协议具有“开源传染性”,简单来说就是如果你使用了GPL协议的代码,那么你必须也把自己的代码改成GPL协议并且开源出去。

最有意思的是,理论上,尽管你的代码是对外公开的,你仍然可以卖你的软件。

使用GPL协议依然会造成上面说的问题,许多公司不敢用了,用了你的代码,我还咋卖我的软件?

不过,即使大公司用了他的代码,仍然可以用很多方法来避开这个风险,比如:拖着。

2015年,小米公司被指出违反了GPL协议,其使用了GPL协议的代码,但拒绝公开自己的代码,后来遭发现后,宣布未来会公开,但这个未来就一直没来。

逻辑就是“我肯定会开源,你等着吧。”

除了拖着,大公司还可以选择延迟版本。

比如我用了你的代码做开发,我们内部的版本已经开发到了3.0,但我只放出去1.0的代码,这也是没问题的。

总之,很多情况下,大公司都能从开源协议中挖到对他们更有利的规则。

基本上,个人是很难跟公司抗衡的,大不了到最后,我就不用你的代码了,我直接自己开发,反正你的代码都是公开的,我找几个人抄一抄、改一改就是了。

开源开发者的出路在哪里

但是我个人认为,作为开源开发者,marak的做法确实是有些过了。

我们在看待问题的时候总是要站在弱者的角度,似乎大公司就是恶龙。

在一定程度上确实是恶龙,因此我们才要保护好自己的权益。

但是既然一开始选择了开源,除了接受开源带来的名气提升、技术提升等好处,也必须接受被白嫖的事实。

这件事的逻辑就是,你选择了免费开源你的代码,那你就不可能再从你的代码中获得直接利益。
一件事,总不能好处都占了,坏处都丢了。

最重要的是,作为单枪匹马的个人,究竟该如何利用开源,为自己带来实在的收益呢?

与其盼着大公司发善心给捐款,不如想想如何利用自己的技术能力或者名气来为自己谋得一份高薪工作,或者写书卖书办讲座等等,想办法获取间接利益。

这可以参考vue.js的作者,活的很滋润。当然,这也得益于我们中国人的危机意识。

赌气没有用,那对自己完全没有任何好处,大公司也不会多看你一眼。

无论如何,理智选择,才是真正的为自己考虑。

程序员删库跑路,开源开发者的出路在哪里相关推荐

  1. 试用期被劝退,京东到家某程序员删库跑路,被判刑10个月!

    最近,又有程序员因为"删库跑路"被判刑. 根据上海市杨浦区人民法院的消息,京东到家一名程序员未经公司许可,在离职当天私自删除了京东到家平台系统代码,构成破坏计算机信息系统罪,被判处 ...

  2. 代码内容变成图片_网站只剩25行代码,真有程序员“删库跑路”?

    "可能我删了数据才会轻松吧 可能我格了硬盘才会休息吧 可能逃出了公司我就跑到天边 可能我还没找到 那个BUG--" 曾经,有一位程序员,在某个加班的深夜,一边听着<可能否&g ...

  3. php中文网侵权事件,【杂谈】程序员删库跑路事件,php中文网的几点声明!

    最近网爆<"安徽汽车网"被程序员删库跑路了,只留下了一张图片做为官网!>事件持续发酵! ki4网也被躺枪,上了热点,网上也出现了各种版本的杜撰,作为当事方之一,ki4网 ...

  4. 上有程序员删库跑路,这次是程序员锁死服务器,600万打水漂,创始人负债数百万!

    据说一家游戏公司做了两年的游戏,在上线测试当天,被一个员工锁死服务器和电脑,最终项目失败,600万投入付之东流,创始人负债数百万. 从微薄大V"首席内幕官"晒出的信息显示,这家游戏 ...

  5. 安徽汽车网程序员删库跑路?不,真相是这样!

    近日,朋友圈和相关自媒体都在吃程序员删库跑路的瓜,大意是以前丰富的官网突然都点击不动,查看源代码发现官网是几张图片拼凑组成的,各路大神纷纷猜测是程序员删库跑路, 截止到目前相关自谋体和个人还在纷纷转发 ...

  6. 微盟程序员删库跑路,被判刑六年!

    大家还记得今年年初,微盟"删库跑路"事件吗? 1 冲动删库 微盟那次删库事件,也许是国内删库最严重的事故之一,当天直接造成公司市值损失近10亿,影响超过300万商户. 事件详细过程 ...

  7. 京东到家程序员删库跑路 ! 讲一讲 MySQL 数据备份杀手锏 binlog

    我们都知道,数据非常重要 网上也经常看到一些段子,某公司程序员对工作不满,删库跑路,老板损失惨重,欲哭无泪.这不最近又爆出一例,京东到家程序员离职当天删库跑路! 那么有没有什么解决方案? 即使数据库真 ...

  8. 又一程序员删库跑路被拘留?教你如何一键恢复!

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,但是万一真删了,要记住一点,不要慌,作为程序员要学 ...

  9. 什么仇什么怨?游戏上线日程序员“锁库跑路”,致公司破产解散

    这到底是什么仇什么怨呢? 程序员在游戏上线当天锁死服务器! 项目失败,创始人负债打工! 近日,深圳市螃蟹网络科技有限公司创始人尹柏霖发文控诉,前员工燕某在游戏上线测试当天(2017年12月15日),锁 ...

  10. 定时跑视图往另外一张表添加数据_程序猿删库跑路示例

    今天给大家分享一个需要谨慎操作的示例. 我们在实际开发中,会用到大量的测试数据,又或者老了不想干了!想要清空数据库然后跑路了(这种违反职业道德的东西,我们不能干哦!),但涉及的表又很多,手工一张张的删 ...

最新文章

  1. lightgbm 决策树 可视化 graphviz
  2. 2011年中国民营企业500强名单,广东仅13家浙江180家江苏130家
  3. JavaScript 第一课 JavaScript简史
  4. C# Global.asax.cs 定时任务
  5. 《走遍中国》珍藏版(三)
  6. 计算机硬件知识考证题,计算机硬件知识题(答案)资料
  7. vue底部选择器_vue实现动态显示与隐藏底部导航的方法分析
  8. C#LeetCode刷题之#35-搜索插入位置(Search Insert Position)
  9. opencv3.2.0形态学滤波之开运算、闭运算
  10. 带有进度报告的Angular 9/8多文件上传服务
  11. Canvas绘制飞机飞行
  12. Inno一个程序打包安装工具
  13. es7.1聚合查询 javaAPI
  14. 多维分析,为什么企业开始大规模应用商业智能(BI)
  15. Python: pathlib基础用法
  16. 亚马逊程序员:我曾拼命逃离996!
  17. 飞控与地面站的概念和关系
  18. iis6导出Excel报错检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,8000401a错误解决办法
  19. 【新的开始】记录每天背的单词,准备考研。(6月7日)
  20. 【Fast-ReID】部署torch保存模型及参数

热门文章

  1. 携程机票数据仓库建设之路
  2. checkbook实现任何颜色背景
  3. 汉北地(安定、三水)属国
  4. 回归分析——简单线性回归实例讲解(SPSS)
  5. HTML语言利用函数求中位数,Excel2013中通过if函数及median函数求得一组数据的中位数...
  6. 利用IPV6实现宿舍远程连接实验室并免费上网
  7. 微信支付——委托代扣介绍
  8. 【GD32F303开发之串口通信】
  9. CSS基础的文字样式
  10. 如何修改input提示文字样式