【CSDN 編者按】在開源吞噬世界的趨勢(shì)之后,更早發(fā)展起來(lái)的自由軟件也再次進(jìn)入大眾視野,然而自由軟件和開源軟件究竟有什么區(qū)別?
近日,軟件架構(gòu)師 Robert M. Lefkowitz 發(fā)長(zhǎng)文在回顧自由軟件發(fā)展之際,也提出了自己對(duì)自由軟件的獨(dú)特看法,其認(rèn)為自由軟件思想正瀕臨破滅,一方面自由軟件基金會(huì)未能培養(yǎng)出新一代的領(lǐng)導(dǎo)者;另一方面,自由軟件自身的定位存在一定的爭(zhēng)議,對(duì)此,你怎么看?
作者 | Robert M. Lefkowitz
大約在 40 年前,即 1985 年,“自由軟件”的概念誕生了。但這并不意味著那時(shí)就出現(xiàn)了與同事共享軟件并公開源代碼的行為。在 GNU 宣言和自由軟件基金會(huì)成立 10 年前,我曾在一家云服務(wù)公司工作(只不過當(dāng)時(shí)我們稱其為“分時(shí)共享”),目的是鼓勵(lì)人們使用我們的產(chǎn)品,并花錢租用計(jì)算機(jī)時(shí)間、磁盤空間和網(wǎng)絡(luò)帶寬,我們策劃了一系列可供客戶自由使用的軟件庫(kù)。我們稱之為公共庫(kù),而這些軟件就是公共軟件。公共軟件的意思就是任何人都可以免費(fèi)使用的軟件。1985 年誕生的這個(gè)新概念是說,創(chuàng)建軟件是一種政治行為。如果一個(gè)軟件的創(chuàng)建是出于政治原因,那么就應(yīng)當(dāng)稱其為自由軟件,以區(qū)別出于其他原因而創(chuàng)建的軟件。
當(dāng)?shù)谝淮螀⒓?O'Reilly 開源大會(huì)時(shí),我觀看了 Miguel de Icaza 與 Richard Stallman 的辯論,他們討論的問題是“自由軟件”和“開源軟件”之間是否有區(qū)別。結(jié)論是,從軟件、許可證或產(chǎn)出的角度來(lái)看,二者之間并沒有明顯的區(qū)別。不同之處在于程序員的意圖。如果意圖是出于政治目的(即注重自由),那么結(jié)果就是自由軟件;如果意圖是出于工業(yè)目的,那么結(jié)果就是開源軟件。我使用“工業(yè)”這個(gè)術(shù)語(yǔ)是因?yàn)殚_源人士的動(dòng)機(jī)是使用他們心目中生產(chǎn)軟件的高級(jí)方法。
在我看來(lái),是自由軟件還是開源軟件,不在于動(dòng)機(jī)出自政治還是工業(yè)。我關(guān)注的是教育層面。也就是說,開源軟件提供了學(xué)習(xí)編程的機(jī)會(huì)。因此,自由軟件和開源軟件的精神是相同的,所以,我覺得可以通過自由軟件來(lái)指代具有教育意義的軟件。
我更傾向于從意圖出發(fā)考慮軟件的分類,因?yàn)槲覀兛梢越璐朔此紝?shí)現(xiàn)意圖的有效策略。舉個(gè)例子,如果事實(shí)證明,在其他所有條件都相同的情況下,提供各個(gè)庫(kù)的源代碼可能會(huì)導(dǎo)致軟件的質(zhì)量下降,那么抱有生產(chǎn)工業(yè)級(jí)軟件意圖的人可能會(huì)選擇不公開源代碼。對(duì)于自由軟件來(lái)說,開源代碼當(dāng)然是非常寶貴的,而且有些情況下即使是工業(yè)軟件也需要訪問源代碼。但是這方面的討論又是另一個(gè)話題了。
今天的話題是從政治角度討論軟件。我認(rèn)為,很明顯自由軟件基金會(huì)未能解決軟件的政治問題。我們之中有些人關(guān)心的是軟件的自由、道德與社會(huì)正義的問題,他們必須尋找其他策略來(lái)實(shí)現(xiàn)這些目標(biāo)。自由軟件基金會(huì)的策略(堅(jiān)持保留版權(quán)和軟件專利權(quán))的效果越來(lái)越差了。自 1985 年以來(lái),軟件世界已經(jīng)發(fā)生了變化,我們需要拋開過去,建立更美好的未來(lái)。
“不計(jì)較個(gè)人得失,才能大有作為?!?/blockquote>自由軟件基金會(huì)一直堅(jiān)持認(rèn)為,Linux 的成功有它的一份功勞。患得患失又怎能取得成功呢?這與他們緊握權(quán)利不肯放手,扼殺下一代成長(zhǎng)的行為如出一轍。也許 Linux 的成功正是 GNU 失敗之處。
“Free Software”一詞有很大的歧義
“自由軟件”(Free Software)這個(gè)詞語(yǔ)帶有很大的歧義。在我看來(lái),你不能使用自由來(lái)形容沒有生命的物體。人有自由,但是比如茶壺就沒有自由。如果非要說自由(free)的茶壺,那么人們必然會(huì)以為這個(gè)茶壺是免費(fèi)的。當(dāng)有人說“自由印刷”(free press),他們的意思不是說印刷機(jī)的金屬和木材享有自由。這個(gè)短語(yǔ)中的“印刷”(press)是一種借喻,它指的是新聞工作者。“印刷自由”(Freedom of the press)指的是賦予記者的自由。大家都知道“press”指的是新聞工作者這個(gè)群體。因此,當(dāng)人們說“自由軟件”或“軟件自由”時(shí),我們知道這里的自由指的不是可執(zhí)行文件。這種表達(dá)形式指的是“軟件”的自由(就像press 代指記者一樣)。那么“軟件”又包括哪些人呢?
“軟件”所涉及的人群主要包含兩大類:軟件用戶與軟件創(chuàng)建者。而“自由軟件”的擁護(hù)者為了賦予軟件用戶一定程度的自由,剝奪了軟件創(chuàng)建者的權(quán)利。許多程序員都以為“軟件自由”是為了增加軟件創(chuàng)建者的自由。
實(shí)則完全相反。GNU 宣言和自由軟件基金會(huì)再三解釋說,他們的意圖是增加計(jì)算機(jī)用戶的自由(但代價(jià)是犧牲軟件創(chuàng)建者的自由)。這里的“軟件”指的就是軟件用戶。
問題在于,自由軟件基金會(huì)堅(jiān)持給予軟件用戶的自由是大多數(shù)用戶都不需要的,同時(shí)他們強(qiáng)加給軟件創(chuàng)建者的限制卻是大多數(shù)軟件創(chuàng)建者都希望保留的權(quán)利。如果迷信自由軟件的人能夠知道“軟件”(即軟件用戶)想要的究竟是什么,那么他們可能會(huì)取得更大進(jìn)展。然而,他們的大部分努力都在試圖說服“軟件”他們應(yīng)該擁有哪些自由。按照這個(gè)思路,軟件是否為“自由軟件”應(yīng)當(dāng)由程序員的意圖決定,而不是用戶的意圖。如果用戶出于政治目的使用軟件,但未獲得自由軟件基金會(huì)批準(zhǔn)的許可方式,那么“該軟件(即用戶)”可以行使自由權(quán)嗎?
在 1983 年之前(即自由軟件基金會(huì)成立的前兩年),IBM 出售的所有計(jì)算機(jī)都附帶了操作系統(tǒng)的源代碼,就像 Linux 一樣(盡管如今一般你必須單獨(dú)下載源代碼)。每個(gè)公司都有一個(gè)“數(shù)據(jù)處理”人員,在需要時(shí)對(duì)源代碼進(jìn)行修改(修復(fù)問題,添加功能等)。但是,許多公司規(guī)模不夠大,也不夠成熟,所以沒有這種的員工。他們希望將操作系統(tǒng)軟件的維護(hù)工作外包給供應(yīng)商(IBM)。但是,IBM 不愿接這樣的工作,因?yàn)槊總€(gè)人都有源代碼,而且可能進(jìn)行了修改。IBM無(wú)從得知他們進(jìn)行了哪些修改,因此也無(wú)法無(wú)法準(zhǔn)確預(yù)估工時(shí)。最終,由于客戶不斷提這樣的需求,他們提出了 OCO(Object Code Only,僅包含目標(biāo)代碼)程序——無(wú)需源代碼即可獲得軟件。IBM 可以針對(duì)這種情況為軟件提供服務(wù)合約,因?yàn)樗麄儫o(wú)需再擔(dān)心客戶單獨(dú)修改源代碼的問題。可見,計(jì)算機(jī)用戶想要的自由是擺脫源代碼,而不是自由使用源代碼來(lái)修改其操作系統(tǒng)。
兩年后,自由軟件基金會(huì)成立了,卻將源代碼強(qiáng)加給了不想要的人。
你可能會(huì)反駁說:“上述只是 20 世紀(jì) 80 年代的情況,從那以后軟件的性質(zhì)已經(jīng)發(fā)生了變化,因此情況也不同了?!彪m然我贊同你的看法,但最大的自由軟件公司紅帽一直采用了“擺脫源代碼”的商業(yè)模式。企業(yè)向紅帽付費(fèi)以獲得授權(quán),其授權(quán)方式與其他專有商業(yè)操作系統(tǒng)沒有任何區(qū)別,作為交換,紅帽保證他們無(wú)需自己處理源代碼。
自由軟件是為了防范不法分子?
關(guān)于自由軟件的討論始于麻省理工 AI 實(shí)驗(yàn)室需要修改打印機(jī)軟件源代碼的傳說。然而,他們遇到的問題是,無(wú)法在網(wǎng)絡(luò)打印機(jī)阻塞時(shí)收到通知,這遠(yuǎn)遠(yuǎn)達(dá)不到侵犯人權(quán)的程度。在討論“軟件自由”究竟有什么用時(shí),他們一般都會(huì)給出富有爭(zhēng)議性的答復(fù):擔(dān)心“不法分子”。
他們認(rèn)為,如果你無(wú)法查看源代碼,那么不法分子就有可能植入一些病毒,而且你還不知道;如果你能查看源代碼的話,不法分子就沒法做手腳了。我認(rèn)為這種說法只不過是三人成虎,而且是在胡說八道。
自由軟件的基本前提是正確的:這是一個(gè)政治問題。但保護(hù)自己免受不法分子的侵?jǐn)_不是我的工作,是公安部門的工作。
自由軟件主義者喜歡使用啤酒的隱喻(比如免費(fèi)的啤酒)。但在我看來(lái),如果一個(gè)人擔(dān)心不法分子的話,他們就不會(huì)喝外面賣的啤酒(或者免費(fèi)的啤酒)。如果擔(dān)心壞人在啤酒中下毒的話,他們會(huì)自己釀造啤酒。而且他們還會(huì)自己種植啤酒花,因?yàn)閾?dān)心壞人在啤酒花中下毒。那么水怎么辦呢?壞人可能會(huì)在自來(lái)水中下毒。那只能自己挖井了(當(dāng)然,除非壞人污染地下水源)。這樣下去就沒完了。
當(dāng)然,另一種方式就是相信你購(gòu)買的啤酒很安全,因?yàn)榇_保你的安全是政府的工作。政府會(huì)檢查啤酒廠。銷售有毒的啤酒是犯法行為,公安與司法部門會(huì)追究到底。盡管如此,可能偶爾還是會(huì)發(fā)生啤酒中毒的悲劇事件,但是通過政府機(jī)構(gòu)來(lái)確保啤酒供應(yīng)的安全,遠(yuǎn)比讓每個(gè)家庭對(duì)他們購(gòu)買的啤酒進(jìn)行測(cè)試更為有效?!安环ǚ肿印标幹\論者相信,許多商業(yè)行為都是邪惡的,而所有政府行為都是無(wú)效的。盡管我相信偶爾也有喪盡天良的企業(yè)家和無(wú)能的官僚,但總的來(lái)說,我們不能因噎廢食,杞人憂天。飛機(jī)不會(huì)從天上掉下來(lái),餐館不會(huì)提供有毒的食物,汽車不會(huì)爆炸,我們駛過的橋也不會(huì)坍塌。因此,軟件供應(yīng)商一般也不會(huì)在產(chǎn)品中植入間諜軟件。
自由軟件的“免責(zé)聲明”
在遇到壞人行不法之事的情況下,與其讓每個(gè)人仔細(xì)審查每一行源代碼,還不如通過法律的途徑為他們定罪。在這方面,自由軟件就是不法分子之一。GPLv3 的第15條和第16條分別是“免責(zé)聲明”和“有限責(zé)任”。公平地說,專有軟件許可中也有相同的條款,但是自由軟件商不能因此而站在道德制高點(diǎn)。這些許可聲明,如果軟件造成任何損失,編寫該軟件的人概不負(fù)責(zé)(有限責(zé)任);而且作者也不能保證軟件能夠正常運(yùn)行(免責(zé)聲明)。除非法律另有規(guī)定。自由軟件主義者狡辯說,既然軟件創(chuàng)建者并沒有向你收費(fèi),所以即便他們犯錯(cuò),你也不能起訴他們。當(dāng)然,他們還會(huì)爭(zhēng)辯,程序員可以通過為編寫、打包和分發(fā)軟件而付出的勞動(dòng)收費(fèi),但不是通過許可收費(fèi)??偠灾杂绍浖饡?huì)宣稱,你可以通過編寫自由軟件來(lái)賺錢,但即便你的軟件造成的任何損失,你也無(wú)需承擔(dān)責(zé)任,因?yàn)槟銦o(wú)法通過編寫自由軟件來(lái)賺錢(自相矛盾吧)。
當(dāng)然,后面還有幾個(gè)大字:除非法律另有規(guī)定??雌饋?lái) GPL 的意圖是允許自由軟件創(chuàng)建者(無(wú)意地)行不法之事,但只有在存在相關(guān)法律時(shí)才會(huì)受到制裁。這當(dāng)然是自由。照這個(gè)說法,其他(非自由)軟件創(chuàng)建者也可以無(wú)意地行不法之事。我很贊成通過立法,要求軟件創(chuàng)建者對(duì)其造成的損失承擔(dān)責(zé)任。而且還可以通過一些法律要求他們保證軟件的質(zhì)量。我希望看到一些具體的法規(guī),要求我提供軟件的人員對(duì)程序質(zhì)量承擔(dān)某些風(fēng)險(xiǎn)。但現(xiàn)有的免費(fèi)軟件許可明確規(guī)定:“無(wú)論在任何情況下,任何一方因使用我的程序蒙受損失都不應(yīng)要求我負(fù)責(zé)?!比欢?,在司法管轄區(qū)內(nèi),免責(zé)聲明本身就是無(wú)效的,你不能通過免責(zé)聲明來(lái)逃避責(zé)任。我希望自由軟件都向 D J Bernstein 學(xué)習(xí),他于 1997 年發(fā)表聲明,任何人在他的軟件qmail中發(fā)現(xiàn)安全漏洞都可以獲得500美元的獎(jiǎng)勵(lì)(https://cr./qmail/guarantee.html)。
“軟件自由”的概念已不合時(shí)宜
作為軟件用戶,也就是“軟件”的成員,我們都享有“軟件自由”的權(quán)利,但我想要的自由是如果軟件對(duì)我造成傷害,那我可以尋求補(bǔ)償。我覺得軟件保險(xiǎn)勝于“軟件自由”。當(dāng)編寫 GPL 的時(shí)候,當(dāng)創(chuàng)造“自由軟件”這個(gè)詞語(yǔ)的時(shí)候,軟件大多用于會(huì)計(jì)、文本編輯器和打印機(jī)。如今,軟件廣泛用于運(yùn)行 MRI 機(jī)器、放射治療機(jī)、外科手術(shù)機(jī)器人和核電站,還有駕駛汽車和飛機(jī)等。
在編寫 GPL 的時(shí)候,如果軟件出現(xiàn)故障,那么頂多是打印機(jī)卡紙,但我沒有收到通知而已。但如今,如果軟件出現(xiàn)故障,那么就意味著我會(huì)受到致命的輻射。通過查看源代碼來(lái)確認(rèn)打印機(jī),也許我還可以接受,但如今我想要的自由不是查看放射治療機(jī)源代碼,而是不用擔(dān)心受到致命輻射。編寫輻射治療軟件的程序員需要特別小心,他們知道如果自己犯錯(cuò)就會(huì)受到嚴(yán)厲的懲罰,這樣才會(huì)讓我更有安全感。而不是雖然我可以查看源代碼,但編寫軟件的程序員知道即使我出現(xiàn)什么意外,他們也無(wú)需承擔(dān)任何后果。我渴望的自由不是審查我所使用的每一個(gè)軟件系統(tǒng)的每一行代碼。也許在 20 世紀(jì)70年代還可以這樣做,但如今根本不可能。
自由軟件主義者可能會(huì)說,如果無(wú)法接觸源代碼,就發(fā)現(xiàn)不了不法分子的邪惡意圖。
下面我來(lái)簡(jiǎn)單地介紹一下我的職業(yè)生涯中的一段往事。當(dāng)時(shí),我在一家大型投資銀行工作,他們請(qǐng)求(并收到)了微軟 Windows 源代碼的副本。然后,銀行修改了源代碼,并編譯出了自定義版本的微軟 Windows,然后將其分發(fā)給成千上萬(wàn)的員工。此外,我們還在此自定義版本的 Windows 之上,編寫了自定義的應(yīng)用程序。你永遠(yuǎn)也猜不到接下來(lái)事情的走向。微軟推出了新版本的Windows!由于新版本不包含我們的自定義修改,因此我們的應(yīng)用程序無(wú)法在此版本上運(yùn)行。不幸的是,任何新版本的微軟應(yīng)用程序(比如微軟 Office),或由軟件供應(yīng)商編寫的任何應(yīng)用程序都無(wú)法在我們自定義的 Windows 版本上運(yùn)行,我們?cè)撛趺崔k?當(dāng)然,我們可以選擇在幾年內(nèi)不升級(jí)任何軟件。但在堅(jiān)持了一段時(shí)間以后,微軟又發(fā)布了一個(gè)新版本。很多商業(yè)應(yīng)用程序都需要新版本。因此,我們購(gòu)買了成千上萬(wàn)個(gè) VMWare 許可,讓每個(gè)員工運(yùn)行兩臺(tái)虛擬機(jī):一臺(tái)運(yùn)行我們自定義版本的微軟 Windows,另一臺(tái)運(yùn)行公開版本。據(jù)我所知,這種做法一直延續(xù)至今。
關(guān)鍵在于,大公司和政府機(jī)構(gòu)始終能夠拿到商業(yè)軟件的源代碼,并根據(jù)需要對(duì)其進(jìn)行修改。如果理由充分,他們肯定會(huì)這么做。但通常他們都不希望這么做。GPL(或其他此類許可)希望憑借個(gè)人的力量負(fù)責(zé)監(jiān)管網(wǎng)絡(luò)空間和防止網(wǎng)絡(luò)犯罪。然而,政府以及大公司審核專有軟件不需要特殊的版權(quán)許可。他們有很多現(xiàn)有的機(jī)制可以做到這一點(diǎn)。
既然討論到了防止不法分子通過軟件損害我們的利益的話題,我想起最近讀到的一篇文章說,美國(guó)網(wǎng)絡(luò)犯罪造成的損失甚至超過了所有自然災(zāi)害造成的損失。這種情況確實(shí)很令人擔(dān)憂。你知道如何扭轉(zhuǎn)這場(chǎng)戰(zhàn)爭(zhēng)的局勢(shì)嗎?無(wú)處不在的代碼簽名!自由軟件基金會(huì)是否會(huì)加入對(duì)抗不法分子的斗爭(zhēng)行列呢?不,他們不會(huì)!因?yàn)樗麄兿嘈艧o(wú)障礙地獲取源代碼和運(yùn)行軟件更為重要,因?yàn)檫@樣可以減少不法分子入侵你的計(jì)算機(jī)的威脅。
版權(quán)大于專利權(quán)?
另一個(gè)關(guān)鍵點(diǎn)是,軟件版權(quán)提供的自由怎么可能超過軟件專利呢?美國(guó)憲法規(guī)定,科學(xué)與藝術(shù)方面的發(fā)明者必須提供發(fā)明的詳細(xì)說明,以換取有限期間內(nèi)的專屬權(quán)利。然而,版權(quán)的“有效期”是作者死后 70 年,而專利的“有效期”是20年。
在我看來(lái),版權(quán)的有效期應(yīng)該比專利權(quán)更短才對(duì)。如果我們能夠消滅軟件版權(quán),那么就能讓更多軟件更快地進(jìn)入公共領(lǐng)域。這樣應(yīng)該能增加自由。軟件專利的期限甚至可以更短。軟件專利可以要求源代碼作為專利申請(qǐng)的一部分(這樣就能與 GPL 一樣提供針對(duì)“不法分子”的保護(hù))。然后由政府保證所有人都可以獲取源代碼,而不是像今天這樣,將提供源代碼的責(zé)任交給微軟(GitHub)。如果軟件有政治維度,那么保證自由的機(jī)制應(yīng)當(dāng)由政府出面料理,而不是由跨國(guó)公司。然而,自由軟件基金會(huì)并沒有興趣通過立法來(lái)增加“軟件”的權(quán)利,他們單純依靠違反常理的版權(quán)法。
在所謂的“自由軟件”出現(xiàn)之前,曾經(jīng)出現(xiàn)過“公有軟件”。我們可以回到公有軟件的時(shí)代。就像書籍有公共圖書館一樣,軟件也可以有公有軟件庫(kù)。但你不可擅自拿走公共圖書館的圖書,你可以從圖書館借書,讀完之后再還回去,這樣其他人就可以繼續(xù)借閱了。公共圖書館的資金由政府提供。軟件完全可以模仿這種形式。不一定必須是“自由軟件”,也可以是授權(quán)的商業(yè)軟件,由政府提供資金,人們可以借出授權(quán)一段時(shí)間,使用完畢之后再歸還,供他人使用。這樣就能提高軟件的使用效率,進(jìn)而提高自由度。
新的自由軟件世界
自由媒體指的是出版不受他人干預(yù)的自由。但是,“自由媒體”的存在并不意味著我可以復(fù)制某個(gè)記者的文章,并出版自己的拷貝(不論我是否修改了文章)。特別是,即使不允許拷貝或修改已出版的作品,自由媒體也可以健康地發(fā)展。顯然,針對(duì)拷貝的限制并沒有侵害媒體的自由。類似地,我認(rèn)為“軟件”的自由也不應(yīng)該要求拷貝軟件或修改軟件的權(quán)利。如果我們使用“自由媒體”的比喻來(lái)理解“自由軟件”,那么屬于“自由軟件”的程序可以禁止他人拷貝或修改,而不會(huì)侵害他人的自由。更加直白地說,我認(rèn)為完全可以構(gòu)造一個(gè)不存在 GPL 的世界,同時(shí)通過政策、規(guī)章和立法來(lái)提供比我們今天的“自由軟件”更加自由的世界。
這些人太過于執(zhí)迷不悟,完全無(wú)視了當(dāng)今的軟件世界。我們需要承認(rèn),所有這些所謂自由軟件運(yùn)動(dòng)的理論,實(shí)際上沒有給軟件帶來(lái)任何實(shí)質(zhì)性的政治進(jìn)步。我堅(jiān)信,我們需要政府的積極參與,來(lái)促使軟件對(duì)社會(huì)造成正面的影響。規(guī)制、立法、政府管理和非政府機(jī)構(gòu)需要跟上軟件發(fā)展的步伐。我也堅(jiān)信,所謂的“自由軟件”正是這一切真正進(jìn)步的最大阻礙?!白杂绍浖痹谶^去,導(dǎo)致了八十年代無(wú)休止的軟件口水戰(zhàn)。自由軟件的領(lǐng)導(dǎo)早已破滅,自由軟件組織也已破產(chǎn)。所謂的“運(yùn)動(dòng)”也早已不復(fù)存在。
那個(gè)時(shí)代已經(jīng)過去了,就讓它過去吧。我們應(yīng)該立足于現(xiàn)在,通過合理的手段管理軟件。我希望能夠成立一個(gè)這樣的公共軟件基金會(huì)。
我希望將來(lái)提及“自由軟件”這個(gè)詞時(shí),我們討論的是免費(fèi)軟件。否則,我會(huì)說“數(shù)字自動(dòng)化”,或開源軟件,或“自由的軟件”,或像許多出版物說的那樣,“自由授權(quán)的軟件”。而這里“自由”一詞源自拉丁文“Libre”,也許是拉丁文“l(fā)iber”(“書籍”之意,比喻教育)。
原文鏈接:https://r0ml./free-software-an-idea-whose-time-has-passed-6570c1d8218a
聲明:本文由CSDN翻譯。轉(zhuǎn)載請(qǐng)說明理由。