大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

  • 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:314350

评论

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

橱窗LED透明屏:展示和广告的新宠

Dylan

广告 制造 LED display LED显示屏 市场

华为云携手数字政通,打造新一代城市运行管理平台

平平无奇爱好科技

凹语言Native后端达到C语言性能

chai2010

编程语言 webassembly 凹语言

京东零售数据湖应用与实践

京东零售技术

数据湖 数据

世界第一!华为云图引擎服务GES大幅刷新世界纪录

华为云开发者联盟

华为云 图数据库

部署 LLMs 前如何计算与优化 GPU 内存需求?

Baihai IDP

程序员 AI gpu LLMs

测试流程必须严格执行吗?

老张

软件测试 验收测试 质量保障 流程规范

【HarmonyOS】鸿蒙TextPicker日期选择

zhongcx

25个Linux系统性能调优技巧

威哥爱编程

Linux 系统调优

国际开发者成为 Apache IoTDB Committer,新视角谈开源经验!

Apache IoTDB

数据库 开源 时序数据库 IoTDB Apache IoTDB

社交软件红包技术解密(二):解密微信摇一摇红包从0到1的技术演进

JackJiang

即时通讯;IM;网络编程

1688电商生态新引擎:商品详情API引领行业发展新篇章

代码忍者

pinduoduo API API 性能测试

【HarmonyOS】鸿蒙组件下划线与边框

zhongcx

高性能 HTTP 客户端 undici 初探

FunTester

零信任身份安全的基本原则

芯盾时代

身份安全 零信任模型

MQTT vs HTTP:谁更适合物联网?

EMQ映云科技

物联网 HTTP mqtt emqx

华为云联合中国信通院发布《智能化软件开发落地实践指南》

平平无奇爱好科技

将YAML文件解析为JAVA对象的方法

AlexLei

spring yaml

淘宝/天猫商品快递费用API返回值解析快速指南

代码忍者

pinduoduo API API 性能测试

凹语言执行速度比Go快一倍,体积百分之一

chai2010

golang 编程语言 webassembly 凹语言

Redis桌面管理工具:Redis Desktop Manager for Mac 中文版

你的猪会飞吗

Mac软件下载站 mac破解软件下载

云栖实录 | 大模型驱动,开源融合的 AI 搜索产品发布

阿里云大数据AI技术

大数据 开源 大模型 AI搜索

智算基石全栈加速,百度百舸 4.0 的技术探索和创新

百度Geek说

百度 大模型 技术 优化体系

火山引擎边缘智能×扣子,拓展AI Agent物理边界

火山引擎边缘云

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