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