首頁 > 易卦

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

作者:由 三易生活 發表于 易卦日期:2022-07-18

刪除庫對其包含的檔案有影響嗎

2022年剛開始沒幾天,開源社群就發生了一件大事,一個知名開源庫Faker。js的作者Marak Squires,選擇主動惡意破壞自己的這個專案,並且不僅“刪庫跑路”、還注入了導致程式死迴圈的惡意程式碼,使得全球大量使用該專案的個人與企業都受到了不小的影響。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

作為GitHub上的知名開源庫,Faker。js的主要作用是能快速為專案生成可用於測試的假資料,包括使用者名稱、密碼、郵件、日期、地址、文章等內容。對於開發者而言,在實際的軟體開發過程中使用假資料進行測試是一個必要環節,其同時也能夠幫助開發者驗證前端設計的合理性。

如今開啟GitHub上的Faker。js頁面,所有配置檔案最後的提交資訊都是“endgame(遊戲結束)”。並且耐人尋味的是,Marak Squires在Readme中寫下了“What really happened with Aaron Swartz”這句話。據悉,Aaron Swartz是傳記電影《網際網路之子》的主角,作為Reddit的聯合創始人,他用生命捍衛了網際網路的開放、自由和共享。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

發生在Faker。js這個專案上的故事,簡單來說,就是這一專案的開發者Marak Squires去年因為公寓失火,導致各種貴重物品丟失、無家可歸,因此他提供了自己的PayPal賬號尋求捐贈。但顯然依靠網友捐款並不是長久之計,因此他還選擇了在Faker。js的基礎上,探索付費增值服務Faker Cloud,而這也是開源軟體的一種重要商業模式。

然而意想不到的事情發生了,Marak Squires開發的Faker Cloud是提供線上“假資料”生成的雲服務工具,而作為Faker。js的第二大捐助者,Retool。com在每月捐出500美元后,隨即也以Faker。js為基礎開發了與Faker Cloud一模一樣的工具,並且還完全免費。更絕的是,Retool。com引用的CDN域名是cdn。fakercloud。com,簡直是“殺人還要誅心”。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

事實上,Retool。com是一家已融資7500萬美元的公司,這也使得Marak Squires的Faker Cloud在商業競爭中幾乎是毫無勝算的。不過Marak Squires也很“識時務”,直接就給Retool。com的CEO寫了封郵件,表示既然你們如此喜歡這個專案,要不就把Faker。js與Faker Cloud直接買了。而Retool。com隨後做的,則是嘴上說著這個提議我們會認真考慮,然後就沒有然後了。

這一操作就相當於是把Marak Squires當成了猴耍,所以難怪他會心態“爆炸”,最終不但刪庫“跑路”,還要往庫裡注入惡意程式碼,實實在在地噁心使用者。

而現在的情況也已經十分明瞭,結果是開源專案的參與者儘管嘴上喊著支援、在實際行動上卻並非如此。更何況,Faker。js也並不是沒價值,其在GitHub上一共獲得了3。4萬顆star、全球有近千萬的開發者在使用、共計2萬餘個專案依賴它,並且每週下載量超過250萬次、總計被下載了超過1。21億次。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

上億的下載量以及千萬級的活躍使用者群體,這樣的資料即便是放到消費級市場都是相當出色的,更遑論Faker。js屬於生產力工具。如今對於Marak Squires的這一操作,開源社群的風向則是相當分裂,有人認為“開源就是這樣的,玩不起別玩,放惡意程式碼屬於惡意破壞”,但也有認為“程式碼是人家的,人家有權在開源協議的範疇內任意處置”。

顯然,這兩種說法都有一定的正確性。畢竟開源代表的開放包容,是網際網路精神在現實中的投射,開源追求是的降低技術門檻、避免重複造輪子、用價值回饋社群,是一種開放和共享的軟體開發方式。開源精神講究的是“人人為我,我為人人”,所以一旦將程式碼開源後,自己作品的命運可就不完全掌握在自己手中,變為了屬於所有開源參與者或社群的了。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

具體到Faker。js這個專案,Marak Squires所使用的開源協議是MIT License,並且其應該是所有開源協議裡最寬鬆的,除了必須包含許可宣告外、再無任何限制,也就意味著開發者和使用者各自自行承擔一切的責任和後果。開發者不需要肩負為社群提供可信引用源的責任,使用者也沒有為開發者付費的義務。

但之所以會造成開源社群裡對Marak Squires這一行為的態度分裂,其實也是開源軟體先天性的缺陷所導致。開源軟體帶有鮮明的烏托邦色彩,然而現實卻是“人人為我,我為人人”,並且這一切在利益面前也變得極為脆弱。對於商業公司而言,開源是展示技術實力、對行業產生影響力的一種方式,是服務於公司戰略,屬於實現商業利益中的一環。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

而對於個人開發者而言,開源軟體則更像是屬於程式設計師的自媒體。在過去的很長一段時間裡,有不少程式設計師因為開源獲益,主要途徑都是用開源軟體在社群裡打響名聲、獲得聲望,然後藉助聲望來獲得高薪的工作,或者是去創業。但做一個出色的開源專案與掙大錢之間並沒有因果關係,個人開發者直接藉助開源軟體來掙錢也是少之又少。

並且開源與商業化也並不衝突,其中最著名的例子,應該算是Red Hat Linux(紅帽)了。他們免費提供Linux發行版,企業也可以透過付費訂閱來獲得技術支援,最終其更是在2018年被IBM以340億美元的價格收購。然而問題就在於,依靠Linux掙大錢的紅帽並不是Linux的創始團隊,Linux的創始人Linus Torvalds也只是在紅帽上市時被贈送了50萬美元的期權而已。所以這就是問題所在了,並非所有的開發者,都有著如同Spring框架創始人Rod Johnson一樣出色的營銷能力。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

發生在Faker。js作者Marak Squires身上的悲劇,就在於換取影響力是開源的核心收益,但在影響力的變現上,個人開發者甚至還不如自媒體,畢竟自媒體的受眾是讀者,而開源的受眾卻是同行。自媒體將流量賣給廣告主等甲方,而開源軟體作者的同行就是一個個的甲方,這就很尷尬了。

當然,發生在Marak Squires身上的事情,其實對於開源本身的影響並不大。畢竟開源軟體能夠存在數十年,自然是有著可取之處的,開源軟體作者與社群之間的相互成就關係還是能維持的,但其對Faker。js所使用的MIT許可證協議,卻可能帶來很大的影響。

開源作者刪庫“跑路”,是玻璃心還是另有隱情?

前文中曾提及,Faker。js專案採用的MIT協議是所有開源許可中最寬鬆的一個,基本上等於開發者將自己的智慧財產權提供給所有人免費使用。因此這件事勢必會讓許多開發者意識到,如果Faker。js使用的是GPL協議來開源,情況則可能會大有不同。

由於MIT協議對雙方都毫無約束力,導致Retool。com複製Faker Cloud也完全任何阻礙。而自由軟體基金會(FSF)發行的GPL協議中,則是這樣規定的,如果你使用了GPL協議釋出的程式碼後,在法律上你的程式碼也得依據GPL開源出來,這就是在軟體開發領域中GPL許可證擁有“傳染性”的來源,也就是所謂“我開放了我的程式碼,所以也要求你開放的程式碼”。

GPL的“傳染性”導致了相當多的商業公司,會在自己的專案中想方設法隔離GPL,例如當初谷歌為了將Android隔離GPL,直接重寫了作為Linux系統中最底層API的glibc。所以GPL協議的意義,就在於開源軟體的作者在向社群付出善意的同時,還可以避免商業公司利用開源獲益、卻不回報社群。

但不管怎麼說,為眾人抱薪者、不可使其凍斃於風雪。