當自由軟體不(實際地)優越時

開放原始碼促進會的使命宣言寫道:「開放原始碼是一種軟體開發方法,它利用分散式同儕審查和流程透明化的力量。開放原始碼的承諾是更好的品質、更高的可靠性、更大的彈性、更低的成本,以及終結掠奪性的供應商鎖定。」

十多年來,自由軟體基金會一直反對這種對自由軟體運動的「開放原始碼」定性。自由軟體倡議者主要反對這種框架,因為「開放原始碼」是明確地淡化我們自由核心訊息的努力,並模糊我們運動在我們所建構的軟體成功中所扮演的角色。我們認為「開放原始碼」從根本上來說是不好的,因為它企圖阻止人們談論軟體自由。但我們應該對開放原始碼框架保持警惕還有另一個原因。正如上述使命宣言中所引述的,開放原始碼的基本論點通常是不正確的。

儘管開放原始碼促進會認為「開放原始碼的承諾是更好的品質、更高的可靠性、更大的彈性」,但這種承諾並非總是能實現。儘管我們不常宣傳這個事實,但任何早期自由軟體專案的使用者都可以解釋,純粹就實際層面而言,自由軟體並不總是像其專有競爭對手那樣方便。自由軟體有時品質低劣。它有時不可靠。它有時缺乏彈性。如果人們認真看待支持開放原始碼的論點,他們就必須解釋為什麼開放原始碼沒有兌現其「承諾」,並得出結論,專有工具會是更好的選擇。我們沒有理由必須做到這兩者中的任何一個。

理查·史托曼在他的文章為什麼開放原始碼錯失重點中談到這一點,他解釋說:「開放原始碼的想法是,允許使用者更改和重新發布軟體將使其更強大和更可靠。但這並不能保證。專有軟體的開發者不一定是不稱職的。有時他們會生產出功能強大且可靠的程式,即使它不尊重使用者的自由。」

對於開放原始碼而言,品質低劣的軟體是一個需要解釋或為其開脫的問題,或是一個讓人完全避開該軟體的理由。對於自由軟體而言,這是一個需要克服的問題。對於自由軟體倡議者來說,程式錯誤和缺少功能永遠不是一件可恥的事情。任何尊重使用者自由的自由軟體,相較於不尊重使用者自由的專有競爭對手,都具有強大的內在優勢。即使它有其他問題,自由軟體始終擁有自由。

當然,每個自由軟體都必須從某個地方開始。例如,一個全新的軟體不太可能比已建立的專有工具更具功能。專案開始時有很多錯誤,並隨著時間的推移而改進。雖然開放原始碼倡議者可能會認為,專案會隨著時間的推移並藉由運氣而發展為實用,但自由軟體專案從第一天起就代表著對自由軟體倡議者的重要貢獻。每個讓使用者控制其科技的軟體都是向前邁出的一步。隨著專案成熟而提高的品質是錦上添花。

第二個,或許更具破壞性的事實是,開放原始碼定義核心的協作、分散式、同儕審查開發流程,與絕大多數在自由(或「開放原始碼」)授權條款下的專案中的軟體開發實務幾乎沒有相似之處。

幾項關於自由軟體託管網站 SourceForge 和 Savannah 的學術研究表明,許多將程式碼庫放在網上的自由軟體開發者已經親身體驗到。絕大多數自由軟體專案並不是特別協作的。SourceForge 上自由軟體專案的參與者人數中位數是多少?一個。一個孤獨的開發者。參與者規模排名前 95% 的 SourceForge 專案只有五位貢獻者。超過一半的這些自由軟體專案——甚至大多數已成功發布多個版本並被頻繁下載的專案,都是單一開發者在幾乎沒有外部幫助的情況下完成的。

透過強調協作開發和「分散式同儕審查」的力量,開放原始碼方法似乎很少談到為什麼人們應該使用或貢獻於絕大多數自由軟體專案。由於當沒有協作時,協作的預期好處無法實現,因此絕大多數自由開發專案在技術上相對於專有競爭對手沒有任何優勢。

對於自由軟體倡議者來說,這些相同的專案都被視為重要的成功。因為每個自由軟體都尊重其使用者的自由,所以軟體自由的倡議者認為,每個自由軟體都從一開始就比專有競爭對手具有固有的倫理優勢——即使是功能更豐富的競爭對手也是如此。透過強調自由而不是實際優勢,自由軟體的倡議植根於技術現實,而開放原始碼通常並非如此。當自由軟體更好時,我們可以慶祝這個事實。當它不好時,我們不必將其視為對自由軟體倡議的破壞性批判,甚至不必將其視為反對使用該軟體的有力論據。

開放原始碼倡議者必須捍衛他們的論點,即自由開發的軟體應該,或將隨著時間的推移,比專有軟體更好。自由軟體支持者可以反問:「我們如何才能讓自由軟體變得更好?」在自由軟體的框架中,高品質的軟體是達到目的的手段,而不是目的本身。自由軟體開發者應該努力創建功能完善、彈性靈活的軟體,以良好地服務其使用者。但這樣做並不是實現目標的唯一方法,這個目標既更容易,也更深刻且重要:尊重和保護他們的自由。

當然,我們不需要拒絕協作可以在創建高品質軟體中發揮重要作用的論點。在許多最成功的自由軟體專案中,它顯然確實做到了這一點。協作的好處成為需要理解、支持和努力實現的事情,而不是在證據拒絕符合意識形態的情況下,理所當然地認為理應如此的事情。