写点什么

我的开源代码被科技巨头偷了,对方还跑到我面前演示

  • 2021-07-12
  • 本文字数:2005 字

    阅读完需:约 7 分钟

我的开源代码被科技巨头偷了,对方还跑到我面前演示

近日,一位开发者发博揭露了一次被科技巨头窃取代码的经历。

我的开源代码被偷了


对于开发人员来说,可能或多或少听过 DTrace,这是一款表现优异的性能分析工具。《性能之巅》这本书从推荐序开始就不停地给 DTrace 打广告,该工具由 Sun 公司开发,没错,就是推出了著名的 Java 编程语言的 Sun 公司。


Sun 曾经有多么辉煌想必各位开发者也都了解。顶峰时期,Sun 的市值一度超过 2000 亿美元,吊打第二名 Google 和第三名 IBM,它发明的多项技术至今仍然流行。比如 Sun 发布的 NFS (网络文件系统),至今都是计算机网络文件共享的标准。此外,这家公司还是开源软件的忠实支持者,但偏偏就在这事儿上翻了车。


前不久,一位名叫 Brendan Gregg 开发者在博客上公开了自己写的与 DTrace 项目相关的开源代码被 Sun 公司“偷走”的往事。


早在 2005 年,Brendan Gregg 就忙着编写和发布 DTrace 相关的高级性能工具,包括他自己编写的开源 DTrace Toolkit 以及其他 DTrace 脚本工具。做着做着,他发现了一个奇怪的现象:作为该工具的发行者,Sun 公司发布的相关工具竟然比自己发布的还少,这是什么情况?难道 Sun 公司内部在酝酿某个神秘的大版本或者大项目占用了太多精力?


由于作者本人并不是 Sun 公司的员工,所以不太了解 Sun 的内部运作情况,但当时也负责为 Sun 提供培训与咨询支持,支持他们的客户完成系统管理与性能优化方面的工作。不久之后,Sun 公司联系 Brendan Gregg,表示有位极具份量的人物要从美国去澳大利亚拜访(作者本人常年呆在澳大利亚),希望可以为 Brendan Gregg 演示基于 DTrace 打造的新产品。


Brendan Gregg 对此期待不已,因为那个时候的 Sun 开发了很多非常不错的工具和技术。


见面后,Brendan Gregg 虽然觉得对方语气不佳,但也非常配合地看完了对方的全部演示,只可惜并没有出现预期中的重磅功能,甚至发现其中一些工具是自己编写的脚本,而且这些工具非常不成熟,是作者当年随手写了并对外开源的,里面有很多奇怪的组合,比如在 defaultargs 之前使用 PFORMAT 之类,而且有很强烈的个人风格。


随后,作者用 grep 在所有演示工具中都找到了自己的名字,当初就明明白白写在工具的标题注释里,足够证明这些都是作者所有。但是,作者什么都没找着,看来 Sun 把名字都给删掉了。


一部分工具里倒是出现了以下内容:


Author: Brendan Gregg [Sydney, Australia]


作者立刻提出质疑,相当于 Sun 不仅使用了作者的开源代码,还特意隐去了作者的姓名、版权及许可证等相关信息,并且还千里迢迢过来给作者演示,之后再公开出售。


盗用了我的代码就算了,还跑到我面前演示,这就是你不对了吧?


当然,不排除这件事情是 Sun 公司个别员工的行为,毕竟此前作者开发的 DTraceToolkit 至少被四次内置在可观察性产品当中,但许可证仍然保留原样。


相比于 Sun 公司的行为,苹果和甲骨文的做法就让作者舒服很多。博客最后,作者表示,几年后,苹果把我的几十款工具添加进了 OS X 系统中,并完整保留了作者的姓名、版权以及 CDDL 开源许可证,甚至还对功能进行了改进与增强。多年之后,甲骨文在 Oracle Solaris 11、BSD 社区在 FereBSD 上也采取了同样的开源成果吸纳方式。


作者本人的完整叙述:http://www.brendangregg.com/blog/2021-06-04/an-unbelievable-demo.html

开源不易,且用且珍惜


创造并维护一个开源项目是非常苦的事情。


此前,坐拥百万用户的开源项目 Babel 引起开发者关注。Babel 宣布,尽管有 Airbnb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企业的赞助,但由于花钱速度继续高于获取捐赠的速度,项目储备资金目前只够维持到 2021 年底。


去年,Redis 之父宣布退出开源项目维护,他说:“最近几年来,我每天的工作内容发生了很大变化。我把大部分精力花在检查其他开发者提交的 Redis 代码、改进代码质量以及提升软件正确性、速度与安全性方面。但我真的不喜欢这类维护工作。”


更重要的是,这种全年无休的上班生活让他无法放松,从而无法做一些创造性的工作。


甚至对于全球顶级的开源项目 Linux,Linux 之父也很担忧没人继续维护内核。


没钱、没人,全靠开发者的热情很难以为继。并且,近几年大公司“偷盗”开源项目代码的事件时有发生。


去年,一名开发者停掉了用两年的业余时间开发并维护的开源项目 AppGet,虽然项目取得了比较大的成功,但不幸的是,微软在自家大会上推出了同样的项目。最终,这名开发者只得停止维护并终结掉了自己的开源项目,但他给出了一系列的证据表示微软在剽窃。


对此事件感兴趣的读者欢迎阅读:https://www.infoq.cn/article/71svTTgb7Q3Nx5rvmBk8


就连 Brendan Gregg 本人也表示,这不是第一次有人拿着自己代码跑过来演示了。最后,希望所有开发者在遇到比较理想的开源工具或者库的时候,不要直接重写,而是按照原样进行 Build,并定期获取更新。很多开源方案都在不断演进中,重写(分叉)只会分流工程资源,甚至导致客户用到已经过时的版本。


开源不易,且用且珍惜!

2021-07-12 08:314224

评论

发布
暂无评论
发现更多内容

概述产品设计通用七原则

阿泽🧸

产品设计 三周年连更

Unity 之 实现背景图动态适配不同分辨率

陈言必行

Unity 三周年连更

Qz学算法-数据结构篇(哈希表)

浅辄

数据结构 三周年连更

linux dbus客户端和服务器示例代码

linux大本营

c++ Linux dbus

LuckyDraw发布啦

进基的小张

开源项目 Github'

Java面向对象程序设计|二人间对话示例

TiAmo

Java 三周年连更 点对点通信 socket通信 面向对象程序设计

基于Flutter实现Windows平台离线大模型对话应用实战

轻口味

flutter AI windows 跨平台 三周年连更

京韵、京城、京味:从一台服务器看数字北京

脑极体

算力

一键生成通用的微服务(gRPC)项目代码,让你的开发效率翻倍提升

vison

Go 微服务 gRPC 代码自动生成

系统稳定性建设之我见(64/100)

hackstoic

质量管理 系统稳定性

Hi3861开发板入门

鸿蒙之旅

OpenHarmony 三周年连更

使用 Flomesh 服务网格进行流量拆分

Flomesh

微服务 Service Mesh 服务网格

2022-04-26:给定一个数组componets,长度为A, componets[i] = j,代表i类型的任务需要耗时j 给定一个二维数组orders,长度为M, orders[i][0]代表i

福大大架构师每日一题

golang 算法

扎最深的寨,打最持久的仗——一知智能AI商业化攻略访谈录

B Impact

Golang new 和 make 函数

宇宙之一粟

Go make new 三周年连更

minikube 初体验环境搭建

IT蜗壳-Tango

三周年连更

CefSharp自定义缓存实现

沙漠尽头的狼

推荐一些好用的ChatGPT扩展工具

石云升

ChatGPT 三周年连更

Unity手机游戏开发:从搭建到发布上线全流程实战

海拥(haiyong.site)

三周年连更

当生成式AI照进医疗,医患关系将何去何从?

脑极体

AI

跨平台应用开发进阶(五十八):短链基本工作原理与实现方案

No Silver Bullet

短链接 跨平台应用开发 三周年连更

一文带你了解实战常用JavaScript API

程序员海军

JavaScript 三周年连更

数据存储与访问——文件存储读写

芯动大师

application 三周年连更 SharedPreference

Go并发编程的秘密武器:内存模型和同步原语

Jack

如何用 Go 实现一个配置包

江湖十年

6G 通信技术和 5G 通信技术的区别

汪子熙

通讯协议 通讯 三周年连更

openbmc 中如何使用D-bus

linux大本营

dbus openBMC

如何建设IT运维流程与体系

穿过生命散发芬芳

运维体系 三周年连更

Java - 泛型

乌龟哥哥

三周年连更

【源码分析】【seata】at 模式分布式事务 -rm 实现逻辑

如果晴天

源码分析 分布式事务 seata Seata框架

linux dbus代码举例

linux大本营

Linux C++

我的开源代码被科技巨头偷了,对方还跑到我面前演示_AI&大模型_核子可乐_InfoQ精选文章