歡迎您光臨本站 註冊首頁

Stallman:開源究竟差哪了?

←手機掃碼閱讀     火星人 @ 2014-03-21 , reply:0

來源:gnu.org

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

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

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

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

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

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

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

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

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

實踐中,開源與自由軟體的區別
在實踐中,開源的要求比自由軟體寬鬆一些。據我們所知,幾乎所有的自由軟體都是開源軟體。儘管大多數開源軟體也同樣是自由軟體,但會有一些例外。首先,有些開源許可證對用戶過於苛刻,它們就沒有被列為自由軟體。幸運的是,只有很少的軟體會使用這些許可證。

另外,還有更重要的一點。很多產品會具備計算機的功能,上面會運行著自由軟體。然而,如果你把這些自由軟體做了修改,再安裝回那些設備上,這行為則在很多設備上無法完成。換言之,這些設備製造商會禁止用戶安裝或運行修改後的自由軟體(這包括許多Android設備),而只允許製造商授權的人或單位修改用戶設備上的軟體。我們把這種設備稱作「tyrants」,即「專制暴君」;把這種行為稱為「tivoization」。這個詞源自TiVo公司生產的機頂盒。它們的機頂盒基於GNU/Linux系統,使用了很多自由軟體。用戶可以使用該產品,通過互聯網觀看視頻節目。雖然TiVo公司按照許可證,發布了源代碼,但是卻禁止用戶在機頂盒上運行自己的程序,或重新安裝系統。這是我們見到的第一個「tyrant」。在這樣的產品上運行的軟體,哪怕是以自由軟體許可證發布了代碼,但是運行的二進位版本卻不能被認為是自由軟體。因為它們同樣限制了用戶的自由。而它們卻符合開源軟體的定義,因為開源軟體僅僅通過軟體許可證來界定開源和非開源。

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

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

開源軟體的官方定義(它是由開源促進會發布的,鑒於這個定義過長,就不在本文中全部引用了)是直接從我們對於自由軟體的界定衍生而來。不過二者也有不同,在某些方面,開源軟體的定義比自由軟體更寬鬆。不過總體而言,開源軟體的定義和我們自由軟體的定義在很多地方都是等價的。

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

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

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

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

另外一個關於「開源」的誤解是:開源軟體意味著「不用 GNU GPL 許可證」。這個誤解又常常伴隨著另外一個誤解:「自由軟體就是使用 GPL 許可證的軟體」。這顯然是扭曲了自由軟體和開源軟體。GNU GPL 許可證也被認證為開源軟體許可證。很多開源軟體許可證也同時是自由軟體許可證。除了GPL以外,還有很多自由軟體許可證。

「開源」一詞又一再地被引申到了各個領域,比如政府部門,教育,科學還有其他壓根沒有源代碼的地方,以及和軟體許可證根本扯不上關係的領域。它們唯一的共同點是:多多少少都是鼓勵人們參與到某個活動中來。到頭來,開源這詞就被引申成了「參與性」,或者是「透明性」,或者還不如這些。最可悲的解釋,則完全成了一個虛幻的商業流行詞。

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

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

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

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

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

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

強大而可靠的軟體,未必是個好東西
大家都希望軟體強大而可靠,因為我們都覺得軟體是為用戶服務的。既然是為用戶服務的,那強大而可靠的軟體顯然可以更好地服務用戶。

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

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

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

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

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

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

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

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

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

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

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

腳註
Lakhani 和 Wolf 在關於自由軟體開發者動機的 論文 中提到,很大一部分開發者都認為軟體本該自由,由此才參與開發自由軟體的。可惜他們的調查的是SourceForge上的開發者,而SourceForge網站本身則並不認為軟體自由是個倫理問題。

翻譯: 鄧楠 (Nan Deng) 審校: 李凡希

[火星人 ] Stallman:開源究竟差哪了?已經有214次圍觀

http://coctec.com/news/soft/show-post-74947.html