編輯 | 伊風
微軟再次被指“抄襲”開源項目,這次主角是一個名不見經傳的獨立開發者。
微軟先是找他談“合作”,然后便默不作聲地推出了一個類似產品。而這位開發者在巴黎的 KubeCon 大會,目睹了自己的開源項目被微軟抄襲并以新的名稱出現了——獲得的只有一個致謝。
他意識到:這個項目其實是微軟 fork 了自己的開源項目。
這段經歷在Hacker News上引發了爆炸性的討論。
圖片
評論區有大量開發者討論自己被“借用”甚至被“白嫖”的經歷——這不只是 Spegel 的問題,而是整個開源模式的結構性問題。
圖片
有類似經歷的開發者憤慨地強調“Don’t work for free(不要免費干活)。”
“一些專業人士在早期云計算時代就開始做這類工作。我當時只是想解決自己的問題,也不想把它變成一門生意,所以我很樂意以開源軟件的形式發布它。
后來微軟一位主管,負責多個產品團隊的那種,聯系我說想“合作”。我說很樂意,不過可以先看看我的咨詢協議。他們對我的報價有點嘟囔,我就直接重申這是我的費率。經過一番法律方面的扯皮,他們最終簽了合同,我為他們做了一個兩天的研討會,解答了一堆問題,然后他們付了錢。
如果他們真的很想要你,他們會付錢的。”
那么,這篇博客講述了怎樣的“踩坑”故事,開源作者又該如何維護自己的權益?
事件回顧:談合作后微軟推出類似項目,與源碼大量相似!
博客作者Philip Laine所開發的獨立項目 Spegel, 是一個旨在解決 Kubernetes 集群中鏡像分發瓶頸的開源項目。
其靈感萌生于Kubernetes 在高并發下拉鏡像的倉庫宕機問題, Spegel通過采用 P2P 分發機制,減少了對中心化鏡像倉庫的依賴。
當微軟主動聯系Philip Laine時,作者一度非常激動。他一度與一位微軟工程師保持溝通,幫助他們運行 Spegel,并回答他們提出的架構問題。
他原本期待微軟會對項目有所貢獻,換來的確實微軟方面長久的沉寂。
直到Philip參加巴黎的 KubeCon 大會,才發現“房子塌了”,他在參與一場關于加速鏡像分發策略的演講時,才了解到是微軟同樣開發了一個 Kubernetes 容器內容的 P2P 分發工具——Peerd。
而作者收到的只有PPT頁尾對他本人和 Spegel 的致謝,仿佛微軟是在該啟發下獨立開發的。
然而,作者在深入研究后發現,完全不是這么回事!Peerd中的一些函數簽名和注釋,幾乎和Philip自己寫的一模一樣!甚至,就連Peerd的一些測試用例都直接來自作者的Spegel項目(作者說,而且直到今天這些引用仍然存在)。
作者無奈地表示,Spegel 是以 MIT 協議發布的。根據該協議,允許其他人 fork 和修改項目,而不要求他們將改動反饋給原項目。作者選擇 MIT 協議的原因是協議簡單且寬松。
盡管如此,微軟在使用其代碼時未給予充分署名,已經違反了開源社區的道德規范。而且Peerd 項目的出現給新用戶帶來了很多混淆。
在微軟巨大的品牌影響力面前,Spegel 想要爭取自己的一席之地,幾乎舉步維艱。
不過,即使困難重重,作者目前仍在堅持維護 Spegel,項目有 1.7k star、千萬次下載,并開啟了 GitHub Sponsors。
他正在考慮更換協議,也呼吁開發者更謹慎地選擇許可。
微軟與開源的歷史糾葛:曾稱Linux為“癌癥”,購入GitHub成功“洗白”
其實,微軟過去在開發者社區里名聲很差。
最典型的莫過于 2001 年,時任微軟首席執行官史蒂夫·鮑爾默(Steve Ballmer)在接受《芝加哥太陽時報》采訪時,曾將 Linux 描述為“癌癥”,并表示:“Linux 是一種癌癥,它在知識產權意義上附著于它所接觸的一切。”
他認為,Linux 所采用的 GNU 通用公共許可證(GPL)具有“病毒性”,因為它要求所有衍生作品也必須以相同的許可證發布,這可能迫使企業將其專有軟件開源。
圖片
鮑爾默的這一言論在當時引發了廣泛爭議,被視為微軟對開源軟件的敵對態度。
然而,隨著開源軟件的廣泛應用,微軟逐漸了改變立場。2018 年,微軟以 75 億美元收購了 GitHub,成為開源社區的重要參與者。
但是,每當博客控訴的事件再次涌現,人們還是情不自禁的吐槽——“微軟沒有變,又在干老把戲了。”
開源項目被抄襲的深層矛盾何在?開發者如何避坑?
博客作者Philip遇到的抄襲事件并不是孤例,Spegel 事件揭示了開源社區與大型科技公司之間長期存在的深層矛盾。
開源許可證(如 MIT 協議)在法律上允許他人自由使用、修改和分發代碼,甚至用于商業目的。
然而,這種自由也可能被濫用,大廠在商業利益的趨勢下,其行為更容易違背開源社區的道德規范,例如將直接將開源項目進行商業化改造等等。
而獨立開發者在面對大型科技公司時,往往處于不利地位,難以維護自身權益。此外,獨立開發者通常缺乏足夠的資源來維持項目的持續發展,尤其是在項目被大公司“借用”后,原項目的關注度和支持可能會受到嚴重稀釋。
為避免類似情況的發生,獨立開發者需要有自己的避坑方法:
首先,更謹慎地選擇合適的許可證:如上文中提到的 GPL,可以強制要求衍生項目開源。
其次,可以尋求開源社區支持,獲得更多的資源:如 GitHub Sponsors等方式獲得社區的經濟支持。
最后,和大公司合作談報酬也是開發者的必修課。在與企業合作時,記得簽訂正式的咨詢或合作協議,確保自身權益。
圖片
正如一位在大型科技公司與第三方合作的開發者所言:
“真正讓你拿到報酬的過程很簡單:對方找他的上級打聲招呼說‘可以’,然后財務部就能走流程。他們不會因為你要報酬就拒絕你——這就是做生意,企業就是為服務付錢的。如果他們連談都不談就拒絕你,那他們根本不是真心的,和他們合作也不會有好結果。”