写点什么

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

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

评论

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

微信小程序,Python爬虫抓包采集实战,采集某成考题库小程序

梦想橡皮擦

Python 9月月更

2022-09-05:作为国王的统治者,你有一支巫师军队听你指挥。 :给你一个下标从 0 开始的整数数组 strength , 其中 strength[i] 表示第 i 位巫师的力量值。 对于连续的一

福大大架构师每日一题

算法 rust 福大大

数字藏品NFT电商交易平台:APP系统开发

开源直播系统源码

NFT 数字藏品 数字藏品开发 数字藏品系统

Java加密技术(四)非对称加密算法RSA

No Silver Bullet

RSA密码 9月月更 非对称加密算法

嵌入式Linux:安装Ubuntu系统环境

不脱发的程序猿

Linux 嵌入式Linux Ubuntu系统环境

SAP UI5 的规则构建器控件介绍

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

白话讲解创建型设计模式:单例、原型,构建

山河已无恙

9月月更

论构建智能运维的先决条件

穿过生命散发芬芳

智能运维 9月月更

详解AUTOSAR:AUTOSAR方法论(理论篇—3)

不脱发的程序猿

汽车电子 嵌入式开发 AUTOSAR方法论

守护园区安全安全解决方案亮相

创意时空

mysql之事务

急需上岸的小谢

9月月更

一文搞懂UART通信协议

不脱发的程序猿

嵌入式 串口通信 UART

【运营下班指南】有人准点下班,有人凌晨搬砖

HarmonyOS SDK

分析

产品经理的进阶指南

产品海豚湾

产品经理 产品设计 职业发展 职业道路 9月月更

JSON之父:10天赶工出的JavaScript,最好的归宿就是让它退役

图灵社区

JavaScript 编程 程序员

黑石创始人,在初入职场时,用这三个问题来开场。

叶小鍵

Flink 资料集

Joseph295

你真的会使用C语言中的 “ 操作符 ” 吗?

Albert Edison

C语言 开发语言 操作符 9月月更

面试突击80:说一下 Spring 中 Bean 的生命周期?

王磊

Java 面试题

使用 Mypy 检查 30 万行 Python 代码,总结出 3 大痛点与 6 个技巧!

Python猫

Python

VUE 如何将父组件中的数据传递到子组件中

HoneyMoose

连接与计算无处不在,火山引擎新一代边缘云

火山引擎边缘云

云原生 CDN 边缘计算 火山引擎 边缘云

详解AUTOSAR:AUTOSRA软件架构(理论篇—2)

不脱发的程序猿

汽车电子 嵌入式开发 AUTOSAR

这一刻,听见华为FTTR的星光四重奏

脑极体

数据治理(八):Atlas集成Hive

Lansonli

数据治理 9月月更

《小米创业思考》之二:互联网简史

郭明

读书笔记

C++学习------cinttypes头文件的源码学习

桑榆

c++ 源码阅读 9月月更

JSON 之父:10 天赶工出的 JavaScript,最好的归宿就是让它退役

图灵教育

JavaScript 程序员 代码

C++ STL容器详解【三万字超详细讲解】

Fire_Shield

c++ stl 9月月更

SD-WAN组网场景概览

阿泽🧸

SD-WAN 9月月更

库调多了,都忘了最基础的概念-HashMap篇

知识浅谈

HashMap底层原理 9月月更

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