為何「自由軟體」優於「開放原始碼」
本文已被大幅改寫的新版本取代,「開放原始碼」沒有抓住自由軟體的重點,新版本更佳。我們保留此版本僅供歷史參考。
雖然以任何其他名稱稱呼自由軟體都會給您相同的自由,但我們使用的名稱卻有很大的差別:不同的詞語傳達不同的概念。
1998 年,自由軟體社群中的一些人開始使用「開放原始碼軟體」一詞,而不是「自由軟體」來描述他們所做的事情。「開放原始碼」一詞很快就與不同的方法、不同的哲學、不同的價值觀,甚至不同的可接受授權條款標準聯繫起來。自由軟體運動和開放原始碼運動如今是各自獨立的運動,擁有不同的觀點和目標,儘管我們可以在某些實際專案上合作,而且也確實如此。
這兩個運動之間的基本差異在於它們的價值觀,它們看待世界的方式。對於開放原始碼運動來說,軟體是否應該是開放原始碼是一個實際問題,而不是一個道德問題。正如有人所說,「開放原始碼是一種開發方法;自由軟體是一種社會運動。」對於開放原始碼運動來說,非自由軟體是一種次優的解決方案。對於自由軟體運動來說,非自由軟體是一個社會問題,而自由軟體是解決方案。
自由軟體運動與開放原始碼運動之間的關係
自由軟體運動和開放原始碼運動就像自由軟體社群內的兩個政治陣營。
1960 年代的激進團體因內部分裂而聞名:組織因策略細節上的分歧而分裂,然後將彼此視為敵人。或者至少,這是人們對他們的印象,無論是否屬實。
自由軟體運動和開放原始碼運動之間的關係與這種情況恰恰相反。我們在基本原則上存在分歧,但在實際建議上或多或少達成一致。因此,我們可以在許多特定專案上合作,而且也確實如此。我們不認為開放原始碼運動是敵人。敵人是專有軟體。
我們不反對開放原始碼運動,但我們不希望被與他們混為一談。我們承認他們為我們的社群做出了貢獻,但我們創建了這個社群,我們希望人們知道這一點。我們希望人們將我們的成就與我們的價值觀和我們的哲學聯繫起來,而不是與他們的價值觀和哲學聯繫起來。我們希望被聽到,而不是被觀點不同的團體掩蓋。為了防止人們認為我們是他們的一部分,我們費盡心思避免使用「開放」一詞來描述自由軟體,或者使用其反義詞「封閉」來談論非自由軟體。
因此,當您談論我們所做的工作以及我們開發的軟體時,例如GNU/Linux 作業系統,請提及自由軟體運動。
比較這兩個術語
本文的其餘部分比較了「自由軟體」和「開放原始碼」這兩個術語。它說明了為何「開放原始碼」一詞沒有解決任何問題,實際上還製造了一些問題。
歧義
「自由軟體」一詞存在歧義問題:一個非本意的含義「您可以免費獲得的軟體」與其本意「賦予使用者某些自由的軟體」同樣適用於這個詞。我們透過發布更精確的自由軟體定義來解決這個問題,但這並不是一個完美的解決方案;它無法完全消除這個問題。如果沒有其他問題,一個明確正確的術語會更好。
不幸的是,英語中所有替代方案都有其自身的問題。我們研究了人們提出的許多替代方案,但沒有一個如此清晰「正確」以至於改用它會是一個好主意。「自由軟體」的每個擬議替代品都有類似的語義問題,甚至更糟——這也包括「開放原始碼軟體」。
開放原始碼倡議組織發布的「開放原始碼軟體」的官方定義非常接近我們對自由軟體的定義;然而,在某些方面它稍微寬鬆一些,他們接受了一些我們認為對使用者來說是不可接受的限制性授權條款。然而,「開放原始碼軟體」這個詞組的顯而易見的含義是「您可以查看原始碼」。這是一個比自由軟體弱得多的標準;它包括自由軟體,但也包括一些專有程式,包括 Xv 和原始授權條款下的 Qt(在 QPL 之前)。
「開放原始碼」的顯而易見的含義並不是其倡導者想要的含義。結果是大多數人誤解了這些倡導者所倡導的內容。以下是作家尼爾·史蒂芬森 (Neal Stephenson) 對「開放原始碼」的定義
Linux 是「開放原始碼」軟體,簡而言之,這意味著任何人都可以獲得其原始碼檔案的副本。
我不認為他故意拒絕或質疑「官方」定義。我認為他只是應用英語語言的慣例來得出該術語的含義。堪薩斯州政府發布了一個類似的定義
使用開放原始碼軟體 (OSS)。OSS 是指原始碼可以免費公開取得的軟體,儘管關於允許對該程式碼執行的特定授權協議各不相同。
當然,開放原始碼人士也嘗試透過發布該術語的精確定義來解決這個問題,就像我們對「自由軟體」所做的那樣。
但是對「自由軟體」的解釋很簡單——理解了「要自由而言論,而非免費啤酒」這個概念的人就不會再犯錯了。沒有如此簡潔的方法來解釋「開放原始碼」的官方含義,並清楚地說明為何自然的定義是錯誤的。
對自由的恐懼
「開放原始碼軟體」一詞的主要論點是「自由軟體」讓某些人感到不安。這是真的:談論自由、談論道德問題、談論責任以及便利性,是要求人們思考他們可能寧願忽略的事情。這可能會引發不適,有些人可能會因此而拒絕這個想法。但這並不表示如果我們停止談論這些事情,社會就會變得更好。
多年前,自由軟體開發人員注意到了這種不適反應,有些人開始探索一種避免這種反應的方法。他們認為,透過對道德和自由保持沉默,而只談論某些自由軟體的直接實際好處,他們或許能夠更有效地向某些使用者(尤其是企業)「銷售」該軟體。「開放原始碼」一詞被提出來作為一種做更多這件事的方式——一種「更受企業接受」的方式。開放原始碼運動的觀點和價值觀源於這個決定。
事實證明,這種方法在其自身的條件下是有效的。如今,許多人出於純粹實際的原因而轉向自由軟體。這很好,就目前而言,但這並不是我們需要做的全部!吸引使用者使用自由軟體並不是全部工作,只是第一步。
遲早這些使用者會被誘使為了某些實際優勢而切換回專有軟體。無數公司試圖提供這種誘惑,使用者為何會拒絕呢?只有當他們學會重視自由軟體為他們帶來的自由,並為了自由本身而重視它時,他們才會拒絕。傳播這個想法取決於我們——為了做到這一點,我們必須談論自由。對企業採取一定程度的「保持沉默」的方法可能對社群有用,但我們也必須進行大量的自由談論。
目前,我們有很多「保持沉默」,但自由談論卻不夠。大多數從事自由軟體工作的人很少談論自由——通常是因為他們希望「更受企業接受」。軟體發行商尤其展現了這種模式。一些GNU/Linux 作業系統發行版將專有套件添加到基本的自由系統中,並且他們邀請使用者將這視為優勢,而不是自由的倒退。
我們未能跟上湧入的自由軟體使用者,未能像人們進入這個社群一樣快速地向人們傳授自由和我們的社群。這就是為什麼非自由軟體(Qt 在最初流行時就是非自由軟體)和部分非自由的作業系統發行版找到了如此肥沃的土壤。現在停止使用「自由」這個詞將是一個錯誤;我們需要更多,而不是更少地談論自由。
如果那些使用「開放原始碼」一詞的人吸引了更多使用者加入我們的社群,那是一種貢獻,但我們其餘的人將不得不更加努力地引起這些使用者對自由問題的關注。我們必須說,「這是自由軟體,它賦予你自由!」——比以往任何時候都更大聲地說。
商標會有幫助嗎?
「開放原始碼軟體」的倡導者試圖將其註冊為商標,聲稱這將使他們能夠防止濫用。此舉後來被放棄,因為該術語太具描述性,不符合商標資格;因此,「開放原始碼」的法律地位與「自由軟體」相同:使用它沒有法律約束。我聽說有許多公司將軟體套件稱為「開放原始碼」,即使它們不符合官方定義;我自己也觀察到一些例子。
但是使用一個商標術語會產生很大的不同嗎?不一定。
公司也發布公告,給人一種程式是「開放原始碼軟體」的印象,但沒有明確說明。例如,IBM 發布的一份關於一個不符合官方定義的程式的公告說
與開放原始碼社群中常見的情況一樣,…技術的使用者也將能夠與 IBM 協作…
這實際上並沒有說該程式是「開放原始碼」,但許多讀者沒有注意到這個細節。(我應該注意到,IBM 真誠地試圖使這個程式成為自由軟體,後來採用了一個新的授權條款,確實使其成為自由軟體和「開放原始碼」;但當發布該公告時,該程式既不符合自由軟體,也不符合「開放原始碼」。)
以下是 Cygnus Solutions 如何宣傳一些專有軟體產品,Cygnus Solutions 最初是一家自由軟體公司,後來擴展(可以這麼說)到專有軟體領域
Cygnus Solutions 是開放原始碼市場的領導者,並且剛剛在 [GNU/]Linux 市場推出了兩款產品。
與 IBM 不同,Cygnus 並不是試圖使這些套件成為自由軟體,並且這些套件也遠遠不符合資格。但 Cygnus 實際上並沒有說這些是「開放原始碼軟體」,他們只是利用這個術語給粗心的讀者留下這樣的印象。
這些觀察結果表明,商標並不能真正防止「開放原始碼」一詞帶來的混淆。
對「開放原始碼」的誤解(?)
開放原始碼定義足夠明確,並且非常清楚典型的非自由程式不符合資格。因此,您會認為「開放原始碼公司」是指其產品是自由軟體(或接近自由軟體)的公司,對嗎?唉,許多公司正試圖賦予它不同的含義。
在 1998 年 8 月舉行的「開放原始碼開發者日」會議上,幾位受邀的商業開發人員表示,他們打算只將他們工作的一部分製作成自由軟體(或「開放原始碼」)。他們業務的重點是開發專有附加元件(軟體或手冊)以銷售給這些自由軟體的使用者。他們要求我們將此視為合法的,作為我們社群的一部分,因為部分資金捐贈給了自由軟體開發。
實際上,這些公司試圖為他們的專有軟體產品獲得「開放原始碼」的良好聲譽——即使這些產品不是「開放原始碼軟體」——因為它們與自由軟體存在某種關係,或者因為同一家公司也維護著一些自由軟體。(一家公司的創始人非常明確地表示,他們會將他們的工作盡可能少地放入他們支持的自由套件中,只要社群能夠容忍。)
多年來,許多公司為自由軟體開發做出了貢獻。其中一些公司主要開發非自由軟體,但這兩項活動是分開的;因此,我們可以忽略他們的非自由產品,並與他們合作進行自由軟體專案。然後,我們可以誠實地感謝他們對自由軟體的貢獻,而無需談論他們所做的其他事情。
我們不能像對待這些新公司那樣做,因為他們不會允許我們這樣做。這些公司積極邀請公眾將他們的所有活動混為一談;他們希望我們像看待真正的貢獻一樣看待他們的非自由軟體,儘管它不是貢獻。他們將自己定位為「開放原始碼公司」,希望我們會對他們產生溫暖模糊的感覺,並且我們會在應用這種感覺時變得頭腦模糊。
如果使用「自由軟體」一詞進行這種操縱行為,其危害也不會減少。但公司似乎沒有以這種方式使用「自由軟體」一詞;也許它與理想主義的聯繫使其看起來不合適。「開放原始碼」一詞為此打開了大門。
在 1998 年底舉行的以通常被稱為「Linux」的作業系統為主題的貿易展覽會上,主題演講者是一位來自知名軟體公司的高管。他可能因為他的公司決定「支持」該系統而被邀請。不幸的是,他們「支持」的形式包括發布與該系統配合使用的非自由軟體——換句話說,就是將我們的社群作為市場,但不為其做出貢獻。
他說,「我們絕不會將我們的產品開源,但或許我們會使其成為『內部』開放原始碼。如果我們允許我們的客戶支援人員存取原始碼,他們可以為客戶修復錯誤,我們可以提供更好的產品和更好的服務。」(這不是確切的引述,因為我沒有記下他的話,但它抓住了要點。)
之後,聽眾中的人們告訴我,「他只是沒有抓住重點。」但真是這樣嗎?他沒有抓住哪個重點?
他沒有錯過開放原始碼運動的重點。該運動並沒有說使用者應該擁有自由,只是說允許更多人查看原始碼並幫助改進它會使開發更快更好。這位高管完全掌握了這一點;他不願意完全執行這種方法(包括使用者),他正在考慮在公司內部部分實施它。
他錯過的重點是「開放原始碼」旨在不提出的重點:使用者值得擁有自由。
傳播自由的理念是一項龐大的工作——它需要您的幫助。這就是為什麼我們在 GNU 計劃中堅持使用「自由軟體」一詞的原因,以便我們可以幫助完成這項工作。如果您認為自由和社群本身很重要——而不僅僅是它們帶來的便利——請加入我們,使用「自由軟體」一詞。
註釋
- 喬·巴爾 (Joe Barr) 撰寫了一篇名為 活著並允許授權 的文章,其中他從他的角度闡述了這個問題。
- 拉卡尼 (Lakhani) 和沃爾夫 (Wolf) 的關於自由軟體開發人員動機的論文指出,相當一部分人的動機是認為軟體應該是自由的。儘管事實是他們調查了 SourceForge 上的開發人員,而該網站不支持這是一個道德問題的觀點。
本文收錄於自由軟體,自由社會:理查·斯托曼精選文集中。