一個正常的社會隻有在良好的心態下才能發揮作用,這也是許多宗教信仰鼓勵樂於助人的原因,因為這對於人類社會來說非常重要。
——理察法·斯德爾曼
理察法·斯德爾曼是著名的自由軟件運動領袖、GNU(自由軟件協會)組織的創始人,是自由軟件的精神領袖,是無數程序員和用戶心中的“最後一個真正的黑客”、自由軟件的奠基人。
理察法·斯德爾曼:大家好!很高興能夠來到中國。看到在座的有這麼多自由軟件的愛好者和追隨者,我感到自由軟件在中國有很大的潛力,你們將是中國自由軟件未來的希望。今天,我要給大家介紹一下自由軟件和GNU的發展。
當人們要問:這個社會使用軟件的規則是什麼?考慮這個問題的通常是軟件公司的人,他們完全是出於自私的角度來考慮這個問題的。他們為了管製住別人不從他們身上拿走錢而製訂這個規則。
早在20世紀70年代,我就關注這個問題。當時我們這些程序員們是在一起合作共同分享這些軟件成果。正因為如此,我得出了完全不同的結論。我們的社團是這樣工作的:我們會從斯坦福獲取得新的程序軟件,或者一些源代碼去寫一些更好的程序,來解決一些原有的問題。或者你可以用那些源代碼去實現你的想法,寫一段更好的程序,甚至你可以切下一段程序用於你工作的另一段程序上。人們把這個稱為軟件的再利用。這樣你可以把一段程序用於很多方麵,這是我們這個社團致力的方向,也可以稱之為對人類知識寶庫的貢獻。
我們並不針對任何人,相反我們是為所有人工作的。我們這個社團包括MIT的實驗室人員,還有像斯坦福和康尼伯格大學的人員,甚至一些計算機公司的人員也加入我們的行列。但我們這個社團與計算機使用者不同,我發現了一些計算機使用者最關心的問題。
舉一個例子,施樂公司當時送給MIT一台激光打印機,這是一件非常珍貴的禮物,因為在當時是很先進的,MIT成為除施樂公司以外的惟一一家擁有激光打印機的單位。這台機器性能非常好,打印清晰度高,不像以往的打印機那樣豎線會發生扭曲,線條打印得筆直、漂亮,它是由計算機控製的。
但它也有很多問題:如經常卡紙。這種情況下,我們知道怎麼辦,以往的打印機也會出現經常卡紙、清晰度低的問題,我們無法改變打印速度慢、卡紙的問題,但我們是軟件工程師,我們可以用軟件來彌補硬件的不足。比如打印作業完成後,我們可以用程序提示:“您的打印作業已完成”,這樣打印者不用再等多餘的時間。另外我本人也專門寫了一段關於卡紙的提示。一旦卡紙便會通過屏幕告知打印者卡紙了。或者打印機出問題了,係統會顯示:“機器故障,需要修理”。一旦出現這種情況,你必須馬上去修理,也許不會馬上有修理工來幫助你,但是有時會有兩三個同事同時來到你的辦公室,你們之間可以互相幫助,共同修理。
事實上,我們把打印機當成整個係統的一部分,保證係統整體穩定運行。所以當新的打印機出現類似問題的時候,我們也想做類似的軟件修改。可是問題出現了:新的施樂打印機是用施樂專有軟件控製的,我們沒有源代碼,連最基本的修改都做不成。我們都是當時全世界最優秀的軟件工程師,可我們卻一點辦法都沒有。所以人們對這台打印機感到很頭疼。也許你打印後半個小時去看,卻一張紙也沒打印出來。又過了半個小時你去看,卻發現一直在卡紙。於是你修理好了卡紙,回去又等了半個小時,心想這回成了,卻發現打印了200頁別人的東西,這是沒有任何意義的。然而最令我們感到頭疼的是有人故意不讓我們把這台機器做得更好。
他在背叛全世界。當時我聽說康尼伯格大學的一位同事有這台機器源代碼的拷貝件,所以我去了他在匹茲堡的辦公室,想向他索要一份源代碼拷貝件,他拒絕了,他說:“我已經承諾不會向任何人提供拷貝件”。我非常氣憤,但是沒有辦法,隻能扭頭走了。這對於MIT的員工來說是一種悲哀,於是我們一直解決不了這個問題,機器也一直這樣壞下去。相反這件事對我是個不小的觸動。康尼伯格的那位工程師拒絕與我合作,也拒絕與你們合作,他是在背叛我們全體。
這是發生在1981年的事。隻是因為他簽署了一項不對外泄露協議,他在背叛全世界。這是我第一次接觸到不對外泄露協議,我是受害者,我的實驗室也是受害者。很多軟件工程師都會遇到被要求簽署不對外泄露的協議,而且會有很多誘惑和好處會誘使他們這樣做。人們會對自己做過的錯事找各種借口,很多人都這麼做,為什麼我不能呢?但是我不會簽署這樣的協議,因為我清楚地記得我和我的實驗室是受害者。尤其是你並不知道你會傷害誰,也許會是你最好的朋友。如果有人送給我一個很好的軟件,但要求我不對外泄露,我會感謝他,但告訴他良知不讓我這樣做,我寧願不要這個軟件。到現在為止,我從未在已知的情況下簽署過任何不泄露協議。
70年代AI實驗室的成立可以說是計算機領域的悲劇,AI實驗室開始編寫專有的程序,使得我們原有的共享的源代碼變得一點用處也沒有了。除非你簽署了不對外泄露協議,否則根本無法在一台先進的計算機上工作,因為他們編寫了ISS(不兼容軟件係統)。我原有的社團環境已經不存在了。我將如何做?或許可以隨曆史潮流,也簽署不對外泄露協議,並編寫專有軟件,我也可以此為生。但是將來回顧這一段曆史,我是在用一生建築分割人們交流的高牆。我不能這樣做。另一個選擇是離開計算機行業,但很多程序員認為離開計算機會挨餓。但今天的美國仍有幾百萬人與軟件無關。我的專長就是編程,我相信我會做一名很好的服務生。這也是謀生的一種方式,但我在浪費我的技能。