開源軟件 與 自由軟件

要說一個軟件是 “自由” 的,這意味着它尊重 用戶的基本自由:運行這個軟件,學習和修改它,以及重新發布它的原版或修改版。這是個關於自由權利的問題,而非價格高低。我們討論的自由是如同自由言論般的權利,不是免費贈飲一樣的大派送。

這幾樣自由是至關重要的。之所以說它們重要,不僅僅因爲它們可以討好哪個用戶,更是由於它們維繫着整個社會的凝聚力— 具體說來,就是分享與協作的精神。隨着我們的生活與文化日漸數字化,這樣的自由精神也隨之越來越可貴。在一個充斥着數字化音像與文字的世界中,自由軟件日益重要,它本身已經成爲關乎着我們基本自由的因素之一。

當今世界中,成百上千萬的用戶正在使用着自由軟件;在印度和西班牙某些地區的公立學校裏,全體學生都學習如何使用自由的 GNU/Linux 操作系統。然而,這些用戶之中,大多數人卻並不瞭解我們爲何開發這個自由系統,又爲何建立起整個自由軟件社區,以及背後驅動這一切的道義上的邏輯。因爲如今這個自由系統,乃至整個社區都被以“ 開源” 一詞以蔽之。順着這個詞,一切都被引入了一個完全不同的思維之中。在那裏,自由這東西,甚少提及。

從 1983 年起,我們以維護計算機用戶自由之名興起了自由軟件運動。在 1984 年,我們發起了開發自由操作系統的計劃,並將此係統命名爲GNU。藉此系統,我們就不必倚賴非自由的操作系統,不再坐視它們肆意剝奪用戶的自由。在二十世紀八十年代,我們開發了系統的絕大多數組件。爲了保護用戶的自由,我們設計了 GNU 通用公共許可證 (GNU GPL),並以該許可證發行大部分組件。

並非全部的自由軟件用戶和開發者都贊同自由軟件運動的目標。1998年,自由軟件陣營中的部分成員分裂出來,並以“開源”爲名繼續開展活動。一開始,由於“自由軟件”(free software)一詞可能引起歧義,這才提出開源這個說法。但是很快開源這詞便開始異化,使得其背後的邏輯與自由軟件運動的初衷相去甚遠。

一些開源的支持者會認爲,所謂開源,無非是用來“爲自由軟件做市場營銷”的。具體說來,就是向那些商界人士展現自由軟件的實際好處。同時避免談及什 麼對錯正誤,因爲商業大佬們普遍不太喜歡這調調。還有一些開源的支持者乾脆就拋棄自由軟件道義上的價值觀。無論他們持哪種觀點,一旦他們開始爲開源營銷的 時候,自由軟件運動所珍視的那些價值觀就被拋諸腦後。於是,“開源”一詞很快就單純地和各種實用主義的價值觀聯繫起來。比如說怎麼能創造一個強大,穩定的 軟件。很多開源支持者從一開始就把這些價值觀推崇至極,也難怪局外人會有如此聯繫了。

單純說起軟件的話,那麼幾乎所有的開源軟件同時也是自由軟件。開源軟件和自由軟件這兩個詞在很大程度上描述的是同一類軟件,但是它們所基於的價值觀 卻有着本質上的區別。對於自由軟件運動而言,自由軟件是一個道德底線。因爲只有自由軟件才真正尊重用戶的自由。開源軟件則與此不同,開源的哲學是考慮怎麼 做把軟件做得“ 更好 “— 僅僅從實用的角度考慮好壞。開源的哲學裏,非自由軟件之所以不好,是因爲他們採用了一種劣等的開發方式。而自由軟件運動則以爲,非自由軟件本身就是一個社 會問題。解決的方案則只能是拋棄非自由軟件,轉投自由軟件。

“自由軟件”,“開源軟件”,既然都指的是同類軟件,那何必在名字上這麼較真呢?恐怕還是有這個必要的。因爲不同的詞彙傳遞着不同的思維。儘管現在 看來,用另一個名字稱呼自由軟件可以給你同等的自由,但若要長期維護用戶的自由,則必須讓人們領域到自由的價值。倘若你想幫助人們做到這點,那麼用“自由 軟件”這一稱呼則尤爲重要。

作爲自由軟件運動的成員,我們並不將開源陣營視爲敵人。我們的敵人是專有(非自由)軟件。但我們希望人們至少應該知道,我們所捍衛的是用戶的自由。所以我們不願被開源支持者們貼錯標籤。

關於“自由軟件”和“開源”的常見誤解

在英語中,“自由軟件”,即 Free Software,這個詞很容易被誤解:Free一詞既有免費的意思,也有自由的意項。而我們所謂的自由軟件,則是“一類可以賦予用戶指定自由的軟件”。要解決這個問題,我們發佈了自由軟件的定義。爲了方便理解,我們解釋自由軟件中 Free,是自由言論中所說的自由,而非免費贈飲中的免費。這顯然不是個理想的解決方案,它無法完全杜絕這一問題。一個意思正確,又沒有歧異的詞顯然更好些,不過前提是這詞不會引起其他麻煩。

可惜的是,在英語中,能替換 Free 的詞都多少有點毛病。我們考量了許多別人的建議,然而沒有哪個比其他的更”正確“點(比如說,在某些情況下,法語和西班牙語中的“libre”一詞更好點。可是印度的人就根本不認識這個詞)。每個可能替代“Free Software”的詞多少都會有些語義方面的問題—這顯然也包括“開源軟件”(Open Source Software)。

開源軟件的官方定義(它是由開源促進會發布的,鑑於 這個定義過長,就不在本文中全部引用了)是直接從我們對於自由軟件的界定衍生而來。不過二者也有不同,在某些方面,開源軟件的定義比自由軟件更寬鬆。所 以,對於某些軟件許可證,開源陣營的人們可能會認證其爲開源許可證,而我們則可能會嚴格地拒絕它們。同時,開源軟件僅僅考慮軟件源代碼的許可證;而對於自 由軟件,還要考慮運行軟件的設備是否允許用戶運行修改後的程序。不過總體而言,開源軟件的定義和我們自由軟件的定義在很多地方都是等價的。

可是,“開源軟件”的字面意思—同樣也是人們普遍以爲的意思—是“你可以看到源代碼”。這樣的意思比起自由軟件定義來說要寬鬆的多,也比開源軟件的定義寬鬆多。這樣的字面意思囊括了很多既非自由也非開源的軟件。

由於“開源”一詞的字面意思與開源支持者的本意不同,導致很多人誤解了這個詞。這裏引用一段Neal Stephenson文章中的話,“Linux是‘開源’軟件,意思很簡單,就是任何人都可以獲得它的源代碼”。我覺得Neal並非有意拒絕或者曲解開源 軟件的官方定義。恐怕他僅僅是望文生義,可惜誤會了開源這詞。堪薩斯州政府也曾發佈了一份開源軟件的簡化定義:“開源軟件(OSS)即一類計算機軟件,用 戶可以免費且公開地獲得其源代碼;用戶可以對其源代碼做哪些操作,則根據軟件的許可證規定各有不同”。

還有更糟糕的,紐約時報發表了一篇文章,把開源這詞的意思完全擰了,文中將開源軟件解釋爲內測版軟件—就是給一小撮用戶做測試的搶先版軟件—這東西專有軟件開發者在幾十年前就發佈過了。

開源的支持者們試圖通過不斷引用官方定義來解決這些誤會。這方法顯然沒錯,可直接引述定義對自由軟件似乎更有效。“Free Software”一詞字面上有兩個意思,其中的自由之意是我們希望傳達的。一個人如果能理解”自由言論而非免費啤酒“這句話,就不會再搞錯該使用 Free的哪個意項。然而,“開源”一次僅僅有一個字面意思,而這個意思與其本身要表達的意思又有所不同。結果就很難找一個簡單的方法解釋官方的定義。這 就帶來了更多的誤解。

另外一個關於“開源”的誤解是:開源軟件意味着“不用 GNU GPL 許可證”。這個誤解又常常版隨着另外一個誤解:“自由軟件就是使用 GPL 許可證的軟件”。這顯然是扭曲了自由軟件和開源軟件。GNU GPL 許可證也被認證爲開源軟件許可證。很多開源軟件許可證也同時是自由軟件許可證。

“開源”一詞又一再地被引申到了各個領域,比如政府部門,教育,科學還有其他壓根沒有源代碼的地方,以及和軟件許可證根本扯不上關係的領域。它們唯一的共同點是:多多少少都是鼓勵人們參與到某個活動中來。到頭來,開源這詞就被引申成了“參與性”。

不同的價值觀可以得到類似的結論…可惜總有例外

二十世紀六十年代,美國的極左派陣營曾由於意見分歧而黨羽林立。儘管他們實際上有着相同的目的和價值觀,但各個派別之間依舊水火不容,關係緊張。這使得右翼勢力得以借力打力,進而***整個左派陣營。

由於自由軟件和開源陣營存在的這種分歧,有些人就用美國極左陣營的例子,來告誡或是詆譭自由軟件運動。不過現在的情況和當初極左陣營的情況正好相反:我們和開源軟件陣營有着不同的目的和價值觀,不過不同的觀點卻導致了很多相同行爲—比如說開發自由軟件。

於是大家看到的結果就是:來自自由軟件運動的人和來自開源陣營的人經常一起在同一個項目中一起工作,比如一起開發軟件。這是值得一提的:儘管大家觀點不同,但卻可能在同一個項目中工作。當然,我們和開源陣營各自不同的觀點有些時候也可能會導致不同的行爲。

開源的基本思路是:允許用戶修改和再發布軟件,是爲了讓軟件更加強大和可靠。可惜這不是個必要條件。很多專有軟件的開發者技術也很強。有些時候,哪 怕專有軟件不尊重用戶的自由,依然可以開發出強大而可靠的軟件。對於這個事實,自由軟件支持者和開源陣營的人對此反應就會不同。

對於一個純粹的開源狂熱者來說—假設他沒有被自由軟件的理想所影響—可能會說,“你們(專有軟件開發者)竟然沒用我們的開發模型,還能開發出這麼好的軟件。這太讓我感到意外了。能給我拷一份你們的軟件嗎?” 這樣的態度會讓專有軟件的詭計得逞—剝奪我們的自由。

而自由軟件支持者則會說,“您的軟件非常吸引人,不過我更看重我的自由。很遺憾,我不得不放棄使用您的軟件。我會支持一個項目,開發一個實現類似功能的自由軟件。” 你若真心珍視你的自由,我們就可以用行動去捍衛它。

強大而可靠的軟件,未必是個好東西

大家都希望軟件強大而可靠,因爲我們都覺得軟件是爲用戶服務的。既然是爲用戶服務的,那強大而可靠的軟件顯然可以更好地服務用戶。

但是必須要明確,只有當軟件尊重用戶的自由時,我們才說軟件是在爲用戶服務。倘若軟件本身就有意剝奪用戶自由,爲其設置各種障礙,那麼如此的軟件更 強大僅僅意味着更多的羈絆,更可靠也就意味着這些障礙難以克服。現實生活中,惡意流氓的功能在專有軟件中比比皆是:監視用戶,限制用戶,後門,強制升級等 等。而一些開源軟件支持者們竟希望在他們的開源軟件中實現類似功能。

迫於電影和唱片公司的壓力,越來越多的個人軟件被設計得有意限制用戶的行爲。這種惡意功能的官方講法是數字版權管理(參見DefectiveByDesign.org)。這種功能與自由軟件的核心精神完全背道而馳。說起來,這已然不僅是精神層面背道而馳了,在實際操作上,DRM 的開發者們試圖讓用戶無法修改軟件,甚至將此視爲違法行爲。

儘管如此,一些開源軟件的支持者們依然提議開發所謂“開源 DRM”軟件。這背後的邏輯是:發佈這些限制用戶自由的軟件的源代碼,並且允許用戶修改它,就可以造出更強大可靠的軟件,來繼續限制用戶的自由。然後,這些軟件會被拷貝到某個設備上一併賣到你手裏,而那個設備則禁止你修改運行其上的軟件。

這樣的軟件也許稱得上是開源軟件,並且也的確用的是開源的開發模式。但是它不可能成爲自由軟件,因爲它根本沒有尊重用戶的自由。倘若說開源的開發模式可以成功地製造如此軟件,並且讓這些軟件更強大更可靠,進而限制你我的自由,那隻能說這次開源把一切變得更糟了。

令人生畏的自由

當年那些人之所以從自由軟件運動中分裂出來,發起開源軟件運動,主要原因就是因爲“自由軟件”的道德基礎讓不少人如坐鍼氈。的確如此,倘若說起道 德,比如用戶的自由,開發者的責任等等,往往會迫使人們去思考一些常被忽視的問題,好比說某些行爲是否符合道德規範。這種說教確實會讓人心生不快,有些人 則因此把它們拋諸腦後,從此不聞不問。但這並非意味着,每當論及道德,我們就該退避三舍,閉口不談。

遺憾的是,開源的領導者們恰恰是選擇忽視了這些問題。他們意識到,只要在道德和自由方面裝聾作啞,轉而只討論某些自由軟件當下可以創收多少效益,就沒準能讓他們更高效地“賣”軟件給一些特定用戶,尤其是商業用戶。

從這套理論的觀點看,這方法倒也真算行之有效了。開源這詞說服了衆多商業和個人用戶,使得他們他們開始使用,甚至開發自由軟件,由此擴大了我們的社 區。然而如此的擴張僅僅是表面上的,停留在僅僅關注實用的層次上。由於開源的哲學僅僅停留在實用層面,進而阻礙了人們理解自由軟件更深層次的含義。它爲我 們的社區添加了新鮮血液,卻沒能教會那些新人如何維持這樣一個社區。至此爲止,倒也還好,但它還不足以捍衛自由。把用戶吸引到自由軟件社區來,僅僅是萬里 長征的第一步,他們還需要懂得去成爲自己自由的維護者。

這些沒能理解自由軟件含義的用戶,早晚會出於某些實用角度的考慮,再轉投專有軟件。無數的軟件公司已經開始做出這樣的嘗試吸引用戶使用專有軟件,哪 怕是發行免費的專有軟件。用戶只有在懂得珍視自由軟件賦予他們的自由之後,纔會拒絕如此誘惑。所以,我們必須反覆強調自由,才能漸漸擴散自由的理念。“保 持沉默”的信條在商業化的過程中可能會有用,但過分強調它,讓熱愛自由被視爲自私,則會害了整個社區。

如此的危機恰恰是我們當前面臨的。衆多參與自由軟件社區的人們,尤其是自由軟件的發行商們,對於自由總是閉口不談 — 往往是因爲他們想要“在商業上被認可”。幾乎所有 GNU/Linux 的發行版都會在其基礎版中攙入專有軟件。它們甚至將此宣傳有一種優勢,而非缺陷。

帶有專有插件的軟件,和含有專有軟件的 GNU/Linux 發行版之所以有生存和發展的空間,就是因爲我們社區中大多數人並沒有堅守自己的自由。這並非巧合。大多數 GNU/Linux 用戶是被“開源”一詞吸引而來,而開源則沒有把維護用戶自由作爲其目標。無視自由的言論口口相傳,漠視自由的態度比比皆是。人人如此,互相影響。要扭轉這樣的局勢,我們唯一能做的,就是更多地談論自由,而非把它擱置一邊。

總結

開源的支持者們把一個個用戶拉入他們的陣營,而提醒用戶維護自由的任務,則落到了我們自由軟件支持者們的肩膀上。我們要敢於用比以往更大的聲音說 “這是自由軟件,它纔是真正尊重你的自由的軟件!”—每當你把“開源軟件”一詞替換成“自由軟件”的時候,你就是在支持我們的運動。

 

鏈接:http://www.gnu.org/philosophy/open-source-misses-the-point.zh-cn.html。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章