我的開源代碼被科技巨頭偷了,對方還跑到我面前演示

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"近日,一位開發者發博揭露了一次被科技巨頭竊取代碼的經歷。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"我的開源代碼被偷了"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對於開發人員來說,可能或多或少聽過 DTrace,這是一款表現優異的性能分析工具。《性能之巔》這本書從推薦序開始就不停地給 DTrace 打廣告,該工具由 Sun 公司開發,沒錯,就是推出了著名的 Java 編程語言的 Sun 公司。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Sun 曾經有多麼輝煌想必各位開發者也都瞭解。頂峯時期,Sun 的市值一度超過 2000 億美元,吊打第二名 Google 和第三名 IBM,它發明的多項技術至今仍然流行。比如 Sun 發佈的 NFS (網絡文件系統),至今都是計算機網絡文件共享的標準。此外,這家公司還是開源軟件的忠實支持者,但偏偏就在這事兒上翻了車。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"前不久,一位名叫 Brendan Gregg 開發者在博客上公開了自己寫的與 DTrace 項目相關的開源代碼被 Sun 公司“偷走”的往事。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"早在 2005 年,Brendan Gregg 就忙着編寫和發佈 DTrace 相關的高級性能工具,包括他自己編寫的開源 DTrace Toolkit 以及其他 DTrace 腳本工具。做着做着,他發現了一個奇怪的現象:作爲該工具的發行者,Sun 公司發佈的相關工具竟然比自己發佈的還少,這是什麼情況?難道 Sun 公司內部在醞釀某個神祕的大版本或者大項目佔用了太多精力?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由於作者本人並不是 Sun 公司的員工,所以不太瞭解 Sun 的內部運作情況,但當時也負責爲 Sun 提供培訓與諮詢支持,支持他們的客戶完成系統管理與性能優化方面的工作。不久之後,Sun 公司聯繫 Brendan Gregg,表示有位極具份量的人物要從美國去澳大利亞拜訪(作者本人常年呆在澳大利亞),希望可以爲 Brendan Gregg 演示基於 DTrace 打造的新產品。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Brendan Gregg 對此期待不已,因爲那個時候的 Sun 開發了很多非常不錯的工具和技術。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"見面後,Brendan Gregg 雖然覺得對方語氣不佳,但也非常配合地看完了對方的全部演示,只可惜並沒有出現預期中的重磅功能,甚至發現其中一些工具是自己編寫的腳本,而且這些工具非常不成熟,是作者當年隨手寫了並對外開源的,裏面有很多奇怪的組合,比如在 defaultargs 之前使用 PFORMAT 之類,而且有很強烈的個人風格。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"隨後,作者用 grep 在所有演示工具中都找到了自己的名字,當初就明明白白寫在工具的標題註釋裏,足夠證明這些都是作者所有。但是,作者什麼都沒找着,看來 Sun 把名字都給刪掉了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一部分工具裏倒是出現了以下內容:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"Author: Brendan Gregg [Sydney, Australia]"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者立刻提出質疑,相當於 Sun 不僅使用了作者的開源代碼,還特意隱去了作者的姓名、版權及許可證等相關信息,並且還千里迢迢過來給作者演示,之後再公開出售。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"盜用了我的代碼就算了,還跑到我面前演示,這就是你不對了吧?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然,不排除這件事情是 Sun 公司個別員工的行爲,畢竟此前作者開發的 DTraceToolkit 至少被四次內置在可觀察性產品當中,但許可證仍然保留原樣。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"相比於 Sun 公司的行爲,蘋果和甲骨文的做法就讓作者舒服很多。博客最後,作者表示,幾年後,蘋果把我的幾十款工具添加進了 OS X 系統中,並完整保留了作者的姓名、版權以及 CDDL 開源許可證,甚至還對功能進行了改進與增強。多年之後,甲骨文在 Oracle Solaris 11、BSD 社區在 FereBSD 上也採取了同樣的開源成果吸納方式。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者本人的完整敘述:"},{"type":"link","attrs":{"href":"http:\/\/www.brendangregg.com\/blog\/2021-06-04\/an-unbelievable-demo.html","title":"","type":null},"content":[{"type":"text","text":"http:\/\/www.brendangregg.com\/blog\/2021-06-04\/an-unbelievable-demo.html"}]}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"開源不易,且用且珍惜"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"創造並維護一個開源項目是非常苦的事情。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"此前,坐擁百萬用戶的開源項目 Babel 引起開發者關注。Babel 宣佈,儘管有 Airbnb、Facebook、Salesforce、Gitpod、GatsbyJS、Discord 和 Elastic 等企業的贊助,但由於花錢速度繼續高於獲取捐贈的速度,項目儲備資金目前只夠維持到 2021 年底。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"去年,Redis 之父宣佈退出開源項目維護,他說:“最近幾年來,我每天的工作內容發生了很大變化。我把大部分精力花在檢查其他開發者提交的 Redis 代碼、改進代碼質量以及提升軟件正確性、速度與安全性方面。但我真的不喜歡這類維護工作。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"更重要的是,這種全年無休的上班生活讓他無法放鬆,從而無法做一些創造性的工作。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"甚至對於全球頂級的開源項目 Linux,Linux 之父也很擔憂沒人繼續維護內核。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"沒錢、沒人,全靠開發者的熱情很難以爲繼。並且,近幾年大公司“偷盜”開源項目代碼的事件時有發生。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"去年,一名開發者停掉了用兩年的業餘時間開發並維護的開源項目 AppGet,雖然項目取得了比較大的成功,但不幸的是,微軟在自家大會上推出了同樣的項目。最終,這名開發者只得停止維護並終結掉了自己的開源項目,但他給出了一系列的證據表示微軟在剽竊。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對此事件感興趣的讀者歡迎閱讀:"},{"type":"link","attrs":{"href":"https:\/\/www.infoq.cn\/article\/71svTTgb7Q3Nx5rvmBk8","title":"","type":null},"content":[{"type":"text","text":"https:\/\/www.infoq.cn\/article\/71svTTgb7Q3Nx5rvmBk8"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就連 Brendan Gregg 本人也表示,這不是第一次有人拿着自己代碼跑過來演示了。最後,希望所有開發者在遇到比較理想的開源工具或者庫的時候,不要直接重寫,而是按照原樣進行 Build,並定期獲取更新。很多開源方案都在不斷演進中,重寫(分叉)只會分流工程資源,甚至導致客戶用到已經過時的版本。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"開源不易,且用且珍惜!"}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章