開源項目faker.js 和 color.js的開發者Marak,一夜之間清空了所有項目,並塞進一些惡意代碼。雖說 Marak 名聲不大,但這兩項目可是在開源界極其火爆。Faker.js 可以幫開發者生成偽數據,Color.js 可以幫助網頁着色。它倆在 NPM( 組件庫網站 )上每周下載量加一起近乎 2700 萬。
所以 Marak 這通操作,讓很多用戶突然無法工作,引起了不小的混亂。用戶應用輸出亂碼▼
當然,Marak 這麼做可不是因為中午多喝了 2 杯。而是作品一直被各大公司白嫖的同時,經濟上還遇到了困難,心裡不平衡引發的。2020 年 10 月,Marak 發推特說它的公寓失火,家當都燒沒了。希望大家走過路過,多少意思一下。但看這寥寥無幾的轉發和點讚數,我估摸他是沒收到多少錢。接着,他又從小道消息得知,不少大公司都在大量使用他的項目。而他作為作者,不僅沒撈到啥錢,甚至現在都要流浪街頭了。
換做是誰,可能心裡都有點不爽。於是 Marak 就發了一個通告說,不想搞免費了。你們這些白嫖怪要麼給個 6 位數的合同,要麼 Fork ( 類似於復刻)一份代碼自己研究去。後來為了生存,他基於 Faker.js 做了一個網頁版的應用 Faker Cloud。但沒多久他發現別的公司也開發了一款類似的,服務正是基於 Faker.js,於是他向那個公司發郵件,問要不收購 Faker Cloud 算了。最後,這個擁有頂級開源項目的老哥,由於一窮,二賺不到錢,三總被白嫖,選擇了刪庫。。有人說他不守規則:你都開源了,別人再怎麼白嫖你,也是按規矩來的。
但也有很多的人認為「 為眾人抱薪者,不可使其凍斃於風雪 」。意思就是這些開發者是為大家提供便利,在他們遇到困難時,那些白嫖他們成果的公司,理應提供點支持。老哥刪庫可以,但他想法不對,推送惡意代碼更不對。另外那些公司白嫖 Faker.js 在法律上沒啥毛病。當然不是,看看文章結尾的點讚和在看,你就知道差評君向來不鼓勵大家白嫖。在解釋觀點之前,大伙兒不妨先認識一下開源這個玩意。
你擅長做一個菜,並為此寫下一份菜譜。開源呢,就是你把這份菜譜公開出來,用的原材料和配方,別人都能看到,也能複製一份。當然,別人也可以根據自己口味,在你的菜譜上做點改動。但通常來講,為了維護開源社區,代碼不被濫用,大家開源時還會加一份開源協議。大大小小的開源協議有上百個,非常複雜。目前主流的有:MIT、GPL、BSD、Apache。它們主要區別就是,別人修改代碼後是否可以閉源( 私藏起來),是否要遵循同樣的開源協議。比如你選了 GPL 協議,那別人改動你的菜譜之後,他也要公開出來,不能藏着掖着。但如果你選了寬鬆點的 MIT 協議,別人改動菜譜後就無需公開,還能把它作為「 秘方 」,開個排檔賺點錢啥的。刪庫這件事中的老哥 Marak,選的是 MIT 協議。這個協議里可沒規定別的公司不能用 Faker.js 賺錢,也沒規定使用 Faker.js 後要付錢給 Marak。
所以人家白嫖,在法律上,確實是沒啥毛病。首先啊,一個項目開源了,相當於給別人提供了自己的結晶,方便了大家。第二,項目開源後,參與的人自然變多了。那大家一起改善優化,技術也會進步得快。
他選擇了 MIT 協議,就理應做好會被別人「 白嫖 」的準備。卻因別人用他項目賺錢,自己沒賺到錢,一怒之下刪庫甚至放入惡意代碼。
這,恐怕有點違背了開源精神吧。如果每個開源維護者都像 Marak 這樣,不全亂套了麼。就憑這 2 個火爆的開源項目,我想他不難找到一份好工作吧?或者,他也可以像 Redhat一樣,提供免費版產品,當用戶遇到技術問題,再提供付費支持。要實在不行,就想躺平,也可以和之前一樣,每個平台都放上贊助碼。只不過人家幫你是情分,不幫是本分。當然了,差評君寫這篇文章並不是要背刺一下 Marak,而是因為這件事映射出了開源界的現狀:
絕大多數開發者們和 Marak 一樣,在開源項目上幾乎就沒啥回報。美國有一家公司叫 Tidelift,他們的產品可以幫別人管理開源項目,所以平時會和大量優秀的開發者打交道。去年,他們做了一份《 開源維護者現狀調查 》報告,有 400 人參與了調查。調查發現,46% 的開源維護者在開源項目里賺不到 1 分錢。我們假設 1 萬美元可以供一個人吃住行 1 年,那只有13% ( 7%+1%+5%)的開發者能達標。
也就是說,10 個開發者中,僅有 1 個人能靠開源生活。差評君寫文章時採訪了一個 7 年程序員同學,他說開源是好的,利於互聯網發展。關於開源帶給自己的物質利益,他們能想到的,除了是把它作為個人簡歷,好找一份得當的工作,最多也就是放上一個收款碼賺點零花錢( 收入全靠他人自願)。當然,大家都是普通人,誰會不愛錢呢?如果開源能多賺點錢,那肯定開心。當初選擇開源,就已經決定用愛發電了,該更新的還會更新,該修補的漏洞還會去修補。出事之後,有人追責甩鍋,有人擔心漏洞影響,卻很少有人關心 log4J2 的維護者。說出來你不信,Log4J2 這麼大一個開源項目,只有 3、4 個程序員在業餘時間來管理和維護。曝出漏洞後,他們第一時間就在努力修復,他們有問別人要過回報麼?我知道,我們沒有贊助他們的義務,但差評君還是希望,大家可以在力所能及的地方,多給給這些人一些關注和支持。他們把工具和知識分享出來,為別人帶來便利,也加快了技術進步。他們為互聯網發展帶來了很大的貢獻,他們在做一件非常有意義的事。如果真要問,是什麼讓他們選擇開源,是什麼讓他們堅持下來。
71% 的開發者選擇了 Making a positive impact on the world。撰文:刺蝟 編輯:小鑫鑫 封面:萱萱
圖片、資料來源:
魔術師卡頌:2021全球開源維護者生存現狀
魔術師卡頌:Faker.js作者:要麼付錢要麼你行你上
機器之心:暴力拒絕白嫖,著名開源項目作者刪庫跑路,數千個應用程序無限輸出亂碼
2021_Tidelift_Maintainer_Survey_FINAL.pdf
阮一峰博客
知乎:如何看待faker.js 開源作者刪除了所有的代碼?
IT之家:開發者自己破壞 GitHub 兩個知名開源庫,大量用戶受影響

