1. 程式人生 > 資訊 >開源專案志願者精疲力竭:大公司不給錢還催更,網路處於危險之中

開源專案志願者精疲力竭:大公司不給錢還催更,網路處於危險之中

3 月 22 日訊息,如今,整個網際網路的執行和世界上最大的科技公司們都離不開開源軟體。但為這些開源軟體出人出力的志願者們已經精疲力盡。他們紛紛表示,依賴開源軟體的公司應該貢獻更多資金和程式碼,而不是坐享其成。

布萊恩・巴布裡茨(Blaine Bublitz)每天都要花上幾個小時的時間來查閱 Gulp.js 使用者發來的電子郵件。Gulp.js 是巴布裡茨自願維護的一個開源軟體專案,微軟和美國國家航空航天局 (NASA) 等機構都在使用這個軟體專案。

發給巴布裡茨的大多數電子郵件都是要求對專案進行更新或修復,堆積在巴布裡茨待辦事項上的東西越來越多,似乎永無止境。有些使用者態度很好,但很多人更喜歡追問巴布裡茨為什麼要花這麼長時間。很多不禮貌的要求影響到巴布裡茨的心情,甚至一度導致他“消失”了 6 個月,完全停止了專案維護工作。

巴布裡茨說:“本來錢就不多,再加上人們對你大喊大叫,說你需要做點什麼,這讓我根本不想幹。”

另一位開源專案的志願者瑪麗娜・莫斯蒂(Marina Mosti)每週花 10 個小時維護名為 FormVueLate 的專案,但沒有從這個專案中掙到過一分錢。莫斯蒂在 VoiceThread 擔任全職技術主管,這樣才能為她在開源專案的志願者工作提供資金支援。

但莫斯蒂在如何平衡受歡迎的開源專案維護和完成本職工作之間已經耗盡精力。她說,FormVueLate 團隊的其他開發人員也筋疲力盡。雖然幾個月前就需要對 FormVueLate 的一些程式碼進行全面重寫,但是他們迄今為止還沒有寫出第一行程式碼。

莫斯蒂說:“我們沒有時間、精力或心思花在這些事情上。”

巴布裡茨和莫斯蒂並不孤單。與其他幾個重要開源專案合作的志願者也有同感。他們抱怨道,這項工作讓人感覺永遠“難以解決”,“影響了我的健康和快樂”,“成為我生活的負擔”。

但是網際網路不允許他們的工作半途而廢。整個系統背後的開源專案對數字世界至關重要,支撐著世界上許多軟體的執行,包括微軟、亞馬遜和奈飛等最大最富有的科技公司也是如此,例如谷歌就依賴開源專案來執行自家的 Web 應用程式。

長期以來,網際網路都是在開源專案開發人員的無償支撐下執行,現在已經岌岌可危。最近的一系列安全事件暴露出這個生態系統是多麼脆弱,而開源開發者們已經精疲力盡,有的人選擇逃離,有的人甚至通過破壞開源專案以示抗議。缺乏對這些開發者的支援將讓整個網際網路面臨危險。

雖然人們常常聽說針對大公司和關鍵基礎設施的網路攻擊急劇增加,但人們很少討論的是,開源專案也受到了網路攻擊激增的影響。軟體供應鏈管理公司 Sonatype 的一份報告顯示,2020 年至 2021 年,針對開源專案的網路攻擊同比增長 650%。報告稱,29% 的熱門開源專案至少有一個已知的安全漏洞。

從理論上講,如果有更多人看到程式碼,開源軟體會更加安全。但最近的一系列安全事件表明,如果開發人員不去修復漏洞,對專案不管不顧,甚至於破壞開源專案,那麼會給網際網路生態系統帶來相當大的負面影響。去年 12 月份,黑客就利用開源專案 Log4j 影響到 IBM、甲骨文、亞馬遜和微軟等公司。網路安全公司 Check Point 稱,潛在的損害“不可估量”,並表示這“顯然是近年來網際網路上最嚴重的漏洞之一”。

僅僅兩週後,又有一個程式設計師破壞了廣為人知的 Colors.js 和 Faker.js 開源庫。他似乎在用故意破壞這種方式來抗議大公司免費使用自己的專案。

最近,研究人員還發現 Mozilla 的火狐開源瀏覽器中有兩個“嚴重”安全漏洞。此外,開源的 Linux 作業系統也出現了“多年來最嚴重的漏洞”。

“我們已經看到了足夠多的供應鏈災難,這不會是最後一次,”軟體 Promith 和 KEDA 的維護人員湯姆・克霍夫 (Tom Kerkhove) 在談到去年冬天發生的這些事件時說。“企業確實需要幫助開源專案維護人員在決定刪庫之前幫助他們構建產品。”

所有一切都是開源的

開源專案的使用時間和軟體出現時間一樣長,但其在 20 世紀 90 年代隨著 Linux 作業系統等專案席捲整個行業而流行起來。現在,開源專案是亞馬遜網路服務 AWS 等雲平臺的基礎,併為人們每天都在使用的 Facebook 和谷歌應用程式提供動力。

而且開源專案還在繼續發展。微軟旗下的開源專案 GitHub 在過去的 12 個月時間裡獲得超過 26 億份程式碼。OpenLogic 對 2660 名專業人士的調查發現,77% 的受訪者表示,2021 年他們所在的機構均增加了對開源軟體的使用。

軟體公司紅帽首席技術官克里斯・賴特 (Chris Wright) 說:“更重要的是,開源對整個商業世界和我們所有人的日常生活來說非常重要,影響很大。”“這在整個軟體行業都很普遍。”

報酬很少或沒有報酬

儘管開源專案無處不在,並且在網際網路經濟中扮演著重要角色,但大多數開源專案開發人員從他們的貢獻中賺不到多少錢。

Tidelift 對近 400 名開源軟體維護人員的調查顯示,46% 的人沒有得到任何報酬。即便在那些拿到報酬的人中,只有大約一半的人每年能拿到 1000 美元以上。此外約有一半的受訪者表示,作為開源專案維護人員,他們最大的抱怨是工作報酬不夠。

開源的自由屬性也導致了不公平。目前開源專案由男性主導,當沒有報酬時,沒有那麼多閒暇時間或工作沒有那麼穩定的人不太可能再為開源專案做出貢獻。

如今,GitHub Sponsors、Tidelift 和 Open Collective 等網站正試圖通過允許開發人員接受捐贈和其他形式補償的方式來解決資金問題。不過開發人員說,單純依靠捐款是不可持續的,許多人每個月賺的錢只夠買一杯咖啡。

“我已經嘗試過現有的所有平臺,”巴布裡茨說。雖然這些網站的“成功之處就在於讓你的勞動不再是完全免費”,但他說,自己每個月從 GitHub Sponsors 那裡只能得到大約 5 美元。儘管巴布裡茨幾乎全職從事開源工作,但他的主要收入來自過去兩年的諮詢工作。

雖然開源專案資金匱乏,但最富有的大科技公司反而是這些專案的最大受益者。對於一些開發人員來說,很難將二者統一起來。許多人認為,是這些大科技公司沒有給予開源專案足夠的回報。

例如,亞馬遜常常會重新打包開源軟體,並在 AWS 雲平臺上銷售和執行。但開發人員和較小的公司說,儘管亞馬遜從中獲利頗豐,但實際上並沒有為開源專案貢獻多少行程式碼。微軟和谷歌自稱對開源專案很友好,但微軟只是通過旗下的自由和開源軟體基金資助過少數幾個開源專案,谷歌則聲稱自己擁有員工在業餘時間編寫的開原始碼。

“問題是公司和個人都沒有意識到他們實際上是一個生態系統的組成部分,”開源開發者阿邁勒・侯賽因(Amal Hussein)說。“重要的是,志願者要貢獻自己的時間或金錢。”

志願者精疲力盡

隨著疫情蔓延、網路攻擊增加、軟體日趨複雜、責任加重以及志願者工作帶來的財務不穩定,開源專案開發人員已經精疲力盡。在 Tidelift 的調查中,超過 40% 的開源專案維護人員表示,作為一個維護人員,他們不喜歡個人壓力和感覺被低估。Tidelift 執行長兼聯合創始人唐納德・費舍爾 (Donald Fischer) 表示,很多壓力來自於收到很多使用者的投訴。

開發者馬泰奧・科里納 (Matteo Collina) 把這些苛刻的人稱為“吸血鬼”。科里納說:“目前的現狀是已經無法維持下去,因為更多的專案長期維護人員正在耗盡精力,但吸血鬼還在那裡。”

娜塔莉亞・泰普魯希娜(Natalia Tepluhina)是 Vue 開源專案的核心成員,這一專案被谷歌、蘋果和任天堂使用。她表示,使用者常常會問這樣的問題,“為什麼你們在兩週內不修復這個問題?”或“為什麼你們這麼慢?”

“這就像,該死,我在為你免費工作,”特普盧希納說。“你為什麼這麼說?”

另一方面,小伊菲克・奧東 (Ifiok Otung Jr.) 的開源專案 Remirror 雖然獲得了贊助,但他說這隻會帶來更多審查。去年,他一氣之下放手了 6 個月時間。

奧東說:“我在這條路上走的時間越長,就越覺得不愉快。”“它成了我生活中的一種負擔。”

許多開發人員已經退出所維護的專案,甚至完全消失。在 Tidelift 的調查中,大約有 59% 的維護人員曾一度退出或考慮過退出他們的專案。

例如,瑞恩・比格(Ryan Bigg)曾是電子商務開源專案 Spree 唯一一位全職維護人員。雖然 GoDaddy 和 Blue Apron 等公司都在使用這個專案,但最終比格感覺自己“無法克服”這項工作帶來的壓力。他每天醒來都會收到超過 250 條有關新需求或修復漏洞的資訊。2014 年,比格不再全職維護 Spree,選擇前往一家科技公司工作。

“最終,它影響了我的健康和幸福,”比格說。

Material for MkDocs 是微軟和亞馬遜等公司都在使用的開源軟體。創始人馬丁・多納特 (Martin Donath) 表示,隨著需求的不斷增長,他最近在決定是否要繼續開發開源軟體方面處於“兩難”境地。但資金方面的支援最終讓他選擇堅持下去。

“專案之所以被放棄無外乎是缺乏時間和興趣,從某種意義上說時間就是金錢,”多納特說。

專案資金耗盡

即便開源開發者獲得足夠多的報酬,可以全身心投入到軟體開發中,開源專案也常常面臨著資金耗盡的風險。Facebook、Airbnb 和 Netflix 都在使用的開源專案 Babel 給三名核心開發人員支付工資,但在 2021 年面臨資金幾乎耗盡的風險。當時,三名核心開發人員之一的尼科洛・利博多(Nicolò Ribaudo)一度考慮停止在 Babel 的工作,轉而去一家公司應聘全職工作。

幸運的是,Babel 能夠吸引到足夠的注意力,最終成功籌集資金。專案核心開發者在一篇部落格文章中尋求幫助,讓很多依賴 Babel 的公司意識到這不是他們“認為理所當然的”事情。贊助源源不斷而來,核心團隊成員得以獲得報酬,並繼續維護和改進 Babel。利博多透露,運維團隊並沒有拿到行業“高薪”,他在一家公司工作完全可以掙得更多。但他說,這樣的薪水足以維持他在義大利的生活。

“我們可以為這個專案提供更高質量的工作,這對我們來說也更容易,因為我們不再需要犧牲其他空閒時間了,”利博多說。

Babel 專案無疑是幸運的。諸如誕生於谷歌的 Kubernetes、誕生於 Facebook 的 React,以及 Linux 作業系統都在靠贊助而生存。但是,相比於那些能獲得資金贊助的大型專案,整個行業所依賴的許多小型專案沒有給過維護人員一分錢。

ESLint 專案創始人尼古拉斯・扎卡斯 (Nicholas Zakas) 說:“他們處於整條食物鏈的下游,很多時候得不到認可,也得不到贊助。”Facebook、微軟和 Netflix 都在使用 ESLint 專案。扎卡斯說,雖然他的專案得到了資助,但對於一個全職開發團隊來說“遠遠不夠”。

紙糊的房子

由於維護人員面臨的需求堆積如山,報酬又低,已經精疲力竭,很多開源專案已經到了崩潰邊緣。與此同時,大公司從這些開源軟體中獲利,卻很少進行回報。

雖然開發人員不會為錢而投入開源專案,但免費工作帶來的風險也會讓網際網路置於風險之中。因為當他們不能快速處理安全事件,甚至選擇退出專案,這讓軟體變得更加脆弱。

開發人員說,公司應該用他們的預算來支援所依賴的開源專案。這不僅僅是錢的問題,如果公司也能貢獻程式碼或修復漏洞,他們會很感激。

“開源本身與金錢無關,”開發人員加藤大士說。“當然,它也可以以某種形式維持下去。但背後的文化是相互幫助。惡意拿走一切,還不歸還任何東西是不健康不道德的。”