開源文化需要避免的七個缺點
譯文譯者 | 李睿
審校 | 孫淑娟
開源軟件在編寫代碼和生產(chǎn)軟件方面具有的優(yōu)點是毋庸置疑的。許多處于現(xiàn)代計算核心的軟件包(從Linux操作系統(tǒng)到MySQL)都是使用開放共享和協(xié)作開發(fā)的模式創(chuàng)建的。40年來,在開放文化的熏陶下,開源代碼解決了關于開源思想是否有效的問題。
盡管開源軟件有很大的好處,但并非沒有缺點。如今開源軟件已經(jīng)成為主流,人們需要了解開源文化一些缺點,與其說是文化,不如說是現(xiàn)實。以下是開發(fā)人員在為開源項目做出貢獻時需要認真思考的7個原因。
1.開源不適用于云計算
當前的許多開源許可證都是在云計算技術出現(xiàn)之前獲得的,當時用戶通過下載軟件并在桌面設備上運行軟件來訪問。自此以后,云計算供應商已經(jīng)找到了免費利用開源軟件的方法,同時保持他們的代碼更改的專有性。一家大型云計算供應商開源業(yè)務主管表示,他們通常是分發(fā)軟件,因此不需要共享源代碼。
如今,有許多云計算供應商創(chuàng)建開源項目的特殊版本并在云中轉售的例子。最明顯的分歧之一是AWS和Elasticsearch創(chuàng)建者之間的分歧。當雙方無法達成協(xié)議時,最終不得不分道揚鑣,因此現(xiàn)在有兩個有效版本的Elasticsearch代碼庫。
一些開源倡導者正在通過制定更嚴格的許可證或修正案(例如公共條款)來抵制云共享。人們可能會看到未來的改進,但這些改進無助于原始開源許可證下的遺留系統(tǒng)。
2.開源存在多樣性問題
“社區(qū)”這個術語在開源圈子里被廣泛應用,但這并不意味著開源文化是理想之境。開源開發(fā)人員可能是一個激進的群體:粗魯、分心、固執(zhí)己見,甚至是刻薄和卑鄙。眾所周知,開源軟件存在多樣性問題,某些知名人士被指控具有種族主義和性別歧視傾向。當個人以相對匿名的方式為開源項目做出貢獻,僅通過電子郵件或公告欄進行交流時,結構不平等可能不那么明顯,但這種匿有時名會產(chǎn)生脫節(jié)的感覺,這會使協(xié)作過程不如想象中的那樣令人愉快,也不那么包容。
3.社區(qū)的建立和維護需要時間
許多企業(yè)將其產(chǎn)品的開源版本作為“社區(qū)版本”發(fā)布。這是一個很好的營銷工具,也是一個收集用戶意見的好方法,有時還可以為改進產(chǎn)品編寫代碼。然而,圍繞這個項目建立一個真正的社區(qū)需要時間和資源。如果用戶和潛在貢獻者在在線社區(qū)公告欄上提出問題,他們希望獲得答案。許多貢獻都是本著開源的精神提供的,但構建和培育社區(qū)仍然需要一些時間。當它運行良好時,其結果可能是一個快速發(fā)展的開發(fā)團隊,將構建偉大的代碼,但在這個過程中通常有大量的工作要做。這種權衡的一個結果是,更大的企業(yè)項目往往會主導該領域。他們可以通過小企業(yè)無法管理的有償角色為社區(qū)模式提供資金。
4.開源導師出奇地少見
許多開發(fā)人員通常很樂意與任何人分享他們的代碼,但這并不意味著他們愿意幫助別人學習。允許某人訪問Git存儲庫只需要幾分鐘,但是支持他們作為開發(fā)人員和貢獻者的成長是一項重要的承諾。有些項目甚至在他們的貢獻者協(xié)議中包含了一項條款,即貢獻者不應該期望能夠加入或得到支持,甚至他們的問題也不會得到回答。從本質上來說,為開源項目做貢獻就像是把水灌入池塘的深處:有大量的代碼行和需要解決的問題。你可能會發(fā)現(xiàn)很少有評論來解釋發(fā)生了什么。
5.即使是理想主義者也需要獲得報酬
大多數(shù)開源軟件開發(fā)人員都是理想主義者:他們不會受名利的驅使,但需要維持生計?,F(xiàn)實世界有許多限制,與開源軟件的免費共享精神并不兼容。對于數(shù)字世界來說,稀缺性可能是一個陌生的概念,但對于開發(fā)人員來說,這是一個非?,F(xiàn)實的問題。
開源軟件對于開發(fā)小型堆棧和項目非常有效,因為在這些項目中,很少有人期望獲得報酬,但對于全職的開發(fā)人員支持的大型代碼庫來說,可能不太適合。如果有太多用戶選擇免費版本,整個項目可能會崩潰。
6.沒有什么是真正免費的
在開源社區(qū)中,人們可能會看到“TANSTAAFL”這個縮寫術語,意思是“世上沒有免費的午餐”。 當用戶下載并使用開源軟件之后,他們會開始發(fā)現(xiàn)它的局限性。有時候,代碼只需要一些小改進。有時,開源軟件根本沒有適合的功能。開源軟件在免費提供時即使功能不全也很少有用戶抱怨,但完整地開發(fā)開源軟件對開發(fā)者來說是一個巨大的負擔。即使免費開源軟件實現(xiàn)了99%的目標,最后的1%的開發(fā)工作對于開發(fā)人員來說也可能是一個非常艱難的過程。
7.有些項目不應該是開源的
一位數(shù)據(jù)庫開發(fā)人員表示,從未真正考慮過開發(fā)開源項目,他的客戶是幾家擁有大量數(shù)據(jù)集的大公司。他們有充足的預算,愿意付費支持他完成開發(fā)工作。如果客戶想要獲得源代碼,他非常愿意提供。但他不想經(jīng)歷拆分開源項目正式版本的麻煩。
開源版本適合于開發(fā)人員廣泛使用的代碼,他們可以幫助共同開發(fā)代碼。然而,在某些情況下,獲得報酬進行開發(fā)才是一種更簡單、更可持續(xù)的開發(fā)軟件的工作方式。
原文標題:??7 downsides of open source culture??,作者:Peter Wayner