(八)結(jié)識(shí)斯托曼博士
(1)焦點(diǎn)時(shí)刻
1999年10月,吳教授受香港大學(xué)的邀請(qǐng)去講學(xué),需要將護(hù)照和入港通行證讓我從北京捎回武漢。
在此之前,我組織人力和物力翻譯了奧萊理出版的《開源軟件文集》一書,正如書名中提到的,它收錄了許多軟件領(lǐng)域的精英的文章,在當(dāng)年國(guó)際 IT 界造成了很大影響,在此之前我發(fā)行 Slackware 和 SuSE 時(shí),我早就聽說過其中的作者之一 —— 理查德·斯托曼博士(RMS)和他開發(fā)的
自由軟件,以及
自由軟件基金會(huì)(FSF)。碰巧當(dāng)時(shí)南京的一次國(guó)際性學(xué)術(shù)會(huì)議邀請(qǐng)他到南京做演講,因?yàn)槲曳g過他的文章,因此我想先去南京會(huì)他,然后從南京回武漢。
從那篇翻譯的文章中我得知,斯托曼博士早年也有辭職下海的經(jīng)歷,也有過艱難痛苦人生抉擇的遭遇,他的經(jīng)歷極具傳奇色彩,從他的那篇文章里可見一斑。那篇文章寫得非常好,不過其深刻思想遠(yuǎn)遠(yuǎn)非一般的人一下子就能理解的。盡管我和另外一位朋友的翻譯時(shí)非常賣力,譯稿數(shù)次修改,后來在出版之前還交他指定的五位海外華人審讀并通過,但是坦白地講,我也還有一些問題不清楚,想當(dāng)面請(qǐng)教他。
自由軟件的特點(diǎn)在于它提供了軟件的所有源代碼,而且允許用戶自由地拷貝、復(fù)制發(fā)行和修改。在這一游戲規(guī)則下,爭(zhēng)論最為激烈的一點(diǎn)就是,軟件公司如何靠
自由軟件生存?這也是我最想問他的一個(gè)問題。
為了見到 RMS, 頭天我就到了南京等他,住進(jìn)了他將下榻的同一賓館。晚上他很晚才從上海飛到南京,我在電話里首次聽到了他的聲音,典型的紐約口音,聲音非常宏亮清晰。電話中他約我第二天上午先去聽另一位會(huì)議主講人的演講,然后會(huì)他回房間談話。
1999年10月30日上午9:30點(diǎn)左右,我進(jìn)入了會(huì)議的大堂,當(dāng)時(shí)正好是中科院的鐘錫昌院士在講解他的 HOPEN 操作系統(tǒng)。 RMS 就坐在觀眾席的第一排,他一頭長(zhǎng)發(fā),身著藍(lán)黃黑條紋相間的 T-恤衫。我一進(jìn)去就發(fā)現(xiàn)了他。幾乎是在同時(shí),他也回過頭來,注意到了我,在鐘院士的報(bào)告過程中他不時(shí)回頭看我,似乎是暗示我,他已經(jīng)注意到我了。在鐘院士報(bào)告中間暫停時(shí),RMS 快步地朝我走過來,一手拉著我就走。
進(jìn)入他的房間后,我剛坐下來,想跟他寒喧幾句,不料他卻將一條板凳挪動(dòng)到房間的空調(diào)下,光著腳上去想調(diào)節(jié)溫度,這時(shí)我才看到他一直沒有穿鞋。他示意讓我過去幫助他,那家賓館是一個(gè)中日合資企業(yè)修建的,空調(diào)是進(jìn)口的,但是我們費(fèi)了很長(zhǎng)時(shí)間,就是無法將室內(nèi)溫度調(diào)整到他希望的溫度。 我想找賓館的服務(wù)員來調(diào)節(jié),RMS 卻拒絕了。 最后我們放棄了努力。
他的房間很零亂,他自己帶來了一個(gè) 2 米長(zhǎng)的大氣墊放在床上,他說晚上就睡在氣墊上面。我感到很新奇,也上去躺了一下,果然很舒服。
在此之前,我曾經(jīng)同他討論過為他寫一本傳記,因此我們談話也就從這里開始。我開始提問,問他的過去,他的生活,
自由軟件的歷史,漸漸地,我發(fā)現(xiàn)斯托曼具有無窮的人格魅力,特別是當(dāng)我了解到他當(dāng)時(shí)辭掉 MIT 人工智能實(shí)驗(yàn)室的職務(wù)時(shí),他的話語更是詳細(xì),將自己的經(jīng)歷
娓娓道出,也喚醒了我自己當(dāng)年辭職而得自由的回憶,“同是天涯自由人,相逢何必曾相識(shí)?”我們一下子成了好朋友。
(2)處于爭(zhēng)論旋渦中心的
自由軟件哲學(xué)
free software 這一術(shù)語經(jīng)常被人誤解,因?yàn)橛⑽闹械?free"有兩個(gè)含意,一個(gè)是“自由”,另一個(gè)是“免費(fèi)”。RMS 告訴我,他學(xué)習(xí)過一年的漢語,所以他知道這個(gè)詞的中譯文應(yīng)該是“自由”,而且很高興我的譯文中是這么譯的。
另外一個(gè)經(jīng)常被誤解的地方就是 "free software" 不是屬于像 TeX 那樣屬于公用領(lǐng)域內(nèi)的軟件,而是有版權(quán)的,它的許可證稱為 copyleft,也是根據(jù)現(xiàn)代的著作權(quán)法建立,但是版權(quán)保護(hù)側(cè)重點(diǎn)不同于專有軟件。專有軟件公司拿軟件的 Copyright (版權(quán)所有,或者說版權(quán)屬右)來保護(hù)出版商的權(quán)益, 而
自由軟件拿 Copyleft (版權(quán)屬左)來保護(hù)用戶的權(quán)益。
正因?yàn)?A class=keyword >
自由軟件也擁有版權(quán),任何人可以以任何價(jià)格按照 Copyleft的規(guī)則銷售
自由軟件。Copyleft 有多種形式,例如 GPL 就是其中之一。“版權(quán)屬左”規(guī)則下的
自由軟件有兩個(gè)特點(diǎn)特別引人注目:一是必須提供軟件的全部源代碼,二是
自由軟件不附帶任何質(zhì)量保證。前面一點(diǎn)可以為其他人從源代碼中得到程序的開發(fā)思路從而修改完善軟件提供前提,后面一點(diǎn)為軟件的開發(fā)人員從
自由軟件的開發(fā)業(yè)務(wù)中得到回報(bào)創(chuàng)造了條件,因?yàn)椴⒎侨巳私杂斜臼禄蛘吣芰能浖脑创a中反推出軟件原作者的心思,所以,除了銷售軟件的拷貝之外,軟件的作者還可以在用戶要求提供技術(shù)服務(wù)時(shí)向用戶收費(fèi) --- 我恍然大悟,頭腦中的疙瘩一下子就解開了!
(3)理想與信念
但是,
自由軟件商業(yè)模式的問題在 RMS 看來只是一個(gè)小問題,根本不值得投入太多的關(guān)心,因?yàn)槭澜缟系墓αι詈竦某绦騿T永遠(yuǎn)是一種市場(chǎng)上的稀缺資源,這類人才永遠(yuǎn)不會(huì)失業(yè)。
RMS 關(guān)注的問題在于用戶的自由,也就是人的一種權(quán)利。因此當(dāng)我讓他在《開源軟件文集》
上簽名時(shí),他拒絕了,因?yàn)橥茝V開源軟件的人將軟件的實(shí)用性置于自由之上,是與他的理想格格不入的。正是為了實(shí)現(xiàn)自己的理想,他從 1984 年離開 MIT 人工智能實(shí)驗(yàn)室以來的十多年里,沒有任何薪水、自己沒有房子、沒有自己的汽車,單身一人過著苦行僧般的生活。唯一支撐他的就是對(duì)自由追求的信念 --- 我面對(duì)的不是一個(gè)普通的名人,而是一位來自理想國(guó)度的圣者。這位先知啟蒙了我對(duì)自由的認(rèn)識(shí),我開始真正覺悟了。
告別時(shí),RMS 說他明年還可能來中國(guó),希望能再次見到我。
下午我離開了南京市,準(zhǔn)備飛回武漢,但是到了南京機(jī)場(chǎng)后,飛機(jī)還沒有來。也許是我的運(yùn)氣不好,在我的記憶當(dāng)中,我?guī)状纬俗錆h航空公司的航班,總是不順利,不是飛機(jī)調(diào)配未到,就是飛機(jī)要加油或者檢修,不能按時(shí)起飛。
我之所以選擇武漢航空公司的航班就是因?yàn)樗暮桨囡w機(jī)將降落在王家屯機(jī)場(chǎng),在漢口的市中心,離我家更近,這樣可以省掉從天河機(jī)場(chǎng)到市內(nèi)的時(shí)間和交通費(fèi)用,早點(diǎn)回家將護(hù)照和證件交給吳教授,沒想到弄巧成拙。等到晚上8點(diǎn),天已經(jīng)黑了,飛機(jī)才來,是雙螺旋漿的運(yùn)-7支線飛機(jī),噪音很大(后來我聽說武漢航空公司的一駕飛機(jī)失事了,可能失事的飛機(jī)就是那架運(yùn)- 7 型飛機(jī))。從那以后我再也不想乘坐武漢航空公司的班機(jī)了。
到武漢家中時(shí),吳教授和我父母正在焦急地一起等著我回來,時(shí)鐘已經(jīng)指向晚上 12 點(diǎn),真是漫長(zhǎng)的一天。但是我絲毫不覺得疲憊,因?yàn)槲耶?dāng)天的經(jīng)歷的東西太多,根本無法一下子安靜下來。
(九)奧萊理變奏曲
(0)序曲:兩類美國(guó)人。
與RMS 告別之后,他的形象和說的話一直縈繞在我腦海中。他的傳奇半生和思想你很難用一句話說清楚,因?yàn)樗墓ぷ鹘橛趲讉€(gè)領(lǐng)域之上,他不僅是天才的程序設(shè)計(jì)大師,而且利用他的才能去構(gòu)建他的
自由軟件工程,并且能夠長(zhǎng)期不懈地努力實(shí)現(xiàn)他的理想。他怪異的性格掩蓋不住他對(duì)真理追求的執(zhí)著流露。盡管他的哲學(xué)思想還沒有得到全社會(huì)的公認(rèn),但是我敢肯定他是一個(gè)可以入史爭(zhēng)鳴數(shù)百年的人物。
在美國(guó)本土,商業(yè)圈一度對(duì) RMS 是相當(dāng)敵視的,因?yàn)镽MS 制定的游戲規(guī)則判處了很多專有軟件公司的死刑或者死緩。當(dāng)我回到北京后,奧萊理的 D又一次到了北京,當(dāng)他見到 RMS 的照片時(shí)面如灰色,良久之后才說RMS 是一個(gè)“野人”。這也難怪,這些商人眼中只有利潤(rùn),他們才不管什么自由、社會(huì)、原則呢。
這段時(shí)間工作非常繁忙,經(jīng)常通宵達(dá)旦地趕奧萊理制定的出版進(jìn)度。為了保持頭腦清醒,我在業(yè)余時(shí)間開始做一些與計(jì)算機(jī)無關(guān)的事情。我一直愛好讀歷史書,這段時(shí)間便開始研究《史記》。司馬遷的這部巨著是“史家之絕唱,無韻之離騷”。上中學(xué)語文課時(shí)我學(xué)過一些節(jié)選自《史記》的古文,這些經(jīng)典范文當(dāng)時(shí)都是可以背誦的,但是我從來沒有機(jī)會(huì)系統(tǒng)地讀過全書。
經(jīng)過這段時(shí)間的閱讀,給我觸動(dòng)最大的就是太史公自述,以前我大概地知道他的生平事跡,但是這次閱讀原文后卻有全新的感受,一種對(duì)理想與信念力量的新認(rèn)識(shí)。司馬遷之所以能夠在逆境中完成這部宏篇巨著,除了他自身的家庭環(huán)境、知識(shí)積累等因素之外,關(guān)鍵還是靠偉大信念的支撐,他探究過生命的價(jià)值:“凡人所生者神也,所托者形也。神大用則竭,形大勞則敝,形神離則死。死者不可復(fù)生,離者不可復(fù)反,故圣人重之。由是觀之,神者生之本也,形者生之局也。不先定其神,而曰'我有以治天下',何由哉?”
我開始認(rèn)識(shí)到,對(duì)于人而言,時(shí)空中的感性世界只是一個(gè)幻覺,一個(gè)人只有通過精神與道德的經(jīng)常訓(xùn)練,才能學(xué)著活在唯一真實(shí)的永恒世界里。讀完這本書之后,我覺得司馬遷仍然還活著,因?yàn)樗木襁€在。我還認(rèn)識(shí)到,正是因?yàn)槲覀兠褡逵羞@些珍貴的歷史遺產(chǎn),才使得我們?cè)谑澜缑褡逯种姓加兄匾匚唬@也是我們與當(dāng)今世界上的列強(qiáng)周旋與競(jìng)爭(zhēng)的信心來源。
(1)變奏一:風(fēng)起蕭墻乎?
D 是一個(gè)偽君子,我曾經(jīng)在開始時(shí)讓他下不了臺(tái),雖然后來他被 T 說服而暫時(shí)妥協(xié)過。我想既然我們雙方已經(jīng)達(dá)成協(xié)議,這件事就已經(jīng)過去了,不值得再去想它。可是 D 不這樣想,他心中仍然是看不慣我,這一點(diǎn)后來我逐漸覺察到了,而且我覺察到了一個(gè)更大的圈套。
D 這個(gè)人的斑斑劣跡,我是有所耳聞的,在公司擴(kuò)張的過程中,D 可以說為了自己的利益是不擇手段。盡管奧萊理在法國(guó),日本,臺(tái)灣等地都有子公司或者辦公室,后來卻都由 D 和 B 收歸自己的勢(shì)力范圍內(nèi)。盡管這些國(guó)家和地區(qū)之間的差異很大,但他所使用過的管理伎倆卻如出一轍: 先是讓T 出面掃清障礙,物色一個(gè)合適人選,然后利用這個(gè)人拼命工作,一旦公司規(guī)模
上來,便將這個(gè)人一腳踢開,換上自己的心腹,達(dá)到自己徹底控制公司的目的。
中國(guó)的情況也是這樣,D 在前期從不對(duì)我發(fā)表任何意見,一切通過T來發(fā)號(hào)施令。在來北京幾次后,他發(fā)現(xiàn)公司的 C 很聽話,于是把 C 邀請(qǐng)到美國(guó)本部去,名曰崗位培訓(xùn),我不明白翻譯的工作需要什么樣的崗位培訓(xùn),如何說需要培訓(xùn),也應(yīng)該是我在中國(guó)找機(jī)會(huì)為 C 培訓(xùn)。C 后來負(fù)責(zé)市場(chǎng)開拓方面的工作,但是美國(guó)的那一套做法不能照搬到中國(guó)來,因?yàn)橹忻纼蓢?guó)之間市場(chǎng)情況差異實(shí)在太大。
C 從美國(guó)受訓(xùn)回來之后變化很大,一下子像變成了另一個(gè)人似的,以前 C 說話非常謙虛,在公司內(nèi)部頗得人緣。但從美國(guó)回來之后說話的口吻一如自己就是奧萊理的總老板了。我感到 D 與 C 之間一定有名堂。
由于找到了C,D 逐漸開始與我直接交鋒了,這時(shí) T 最窩囊,因?yàn)橹袊?guó)市場(chǎng)是由他直接負(fù)責(zé)的,現(xiàn)在卻什么也不能說,什么也不能做,而且 D與我之間的問題都變成了 T 的錯(cuò)。
(2)變奏二:無處不用間
本來公司是一個(gè)公共場(chǎng)合,大家有相同的目的才走到一起來,為了實(shí)現(xiàn)共同的目標(biāo),面對(duì)市場(chǎng)的競(jìng)爭(zhēng),公司創(chuàng)造力、產(chǎn)品的生產(chǎn)銷售和工作效率是最根本的東西,一切管理的措施都應(yīng)該為優(yōu)化這些要素服務(wù), IT 行業(yè)的公司尤其應(yīng)該注重效率,因?yàn)檫@個(gè)市場(chǎng)變化得實(shí)在太快了。遺憾的是,不是每一個(gè)公司都清楚地認(rèn)識(shí)到這一點(diǎn)。有些管理者將對(duì)人的控制擺在了一個(gè)特殊的位置,他們認(rèn)為只要控制了人,就可以控制一切。但是人是公司里最活性的要素,管理人主要應(yīng)該靠制度,而不是依靠個(gè)人之間的遠(yuǎn)近關(guān)系。
D 就是持這種態(tài)度的人。為了控制公司,他利用 C 向他事無巨細(xì)地匯報(bào),北京這邊白天發(fā)生的任何事情乃至細(xì)節(jié),都源源不斷地在晚上通過 C 到達(dá)了美國(guó)總部,于是我除了要應(yīng)付市場(chǎng)方面的工作外,不得不開始應(yīng)付來自公司內(nèi)部的麻煩事,而這正好是我最不擅長(zhǎng)處理的事情。
我從頭安裝 Slackware 的經(jīng)歷使我成了經(jīng)驗(yàn)豐富的系統(tǒng)管理員。為了利用網(wǎng)絡(luò)推廣奧萊理的產(chǎn)品和服務(wù),我親手管理著公司的 Internet 主機(jī)和上面的 Web 網(wǎng)站。系統(tǒng)管理員經(jīng)常要備份數(shù)據(jù),一天晚上,我工作到深夜,作為最后一項(xiàng)任務(wù),我開始備份網(wǎng)絡(luò)系統(tǒng)主機(jī)上的數(shù)據(jù),我發(fā)現(xiàn)郵件服務(wù)器上還有人登錄上來收發(fā)信件,我感到奇怪,這么晚了,還有誰工作?是不是有其他駭客在利用郵件服務(wù)攻擊我們的網(wǎng)站? 駭客們的一些慣用技巧我是了如指掌的,sendmail 工作在 25 號(hào)端口上,以往就有駭客利用 sendmail 中的安全漏洞攻擊系統(tǒng)。經(jīng)過閱讀系統(tǒng)日志文件,我發(fā)現(xiàn)是 C 在工作,而且郵件服務(wù)器的日志文件顯示郵件發(fā)向 D!
我一下子明白了 C 為什么變化這么大!C 是黑夜角落里的耳目。為了搞清楚公司內(nèi)部還有哪些耳目,我將此事告訴了公司中的 CH,看看美國(guó)方面會(huì)有何反應(yīng)。果然,CH 也是耳目之一。 幾天后,T 發(fā)給了我一份措詞強(qiáng)硬的電子郵件,說系統(tǒng)管理員查看用戶的郵件在美國(guó)是侵犯人權(quán)法律云云,因此以后不許這樣做。去你的美國(guó)人權(quán)法律吧,你們白天派人暗中監(jiān)視我的行動(dòng)時(shí),把我的人權(quán)放到哪里去了?從那時(shí)起,除了為同胞們感到悲哀之外,我覺得與這群美國(guó)人的合作失去了任何價(jià)值和意義。
(3)變奏三:克隆與決裂
由于我的出色工作,奧萊理在中國(guó)市場(chǎng)上已經(jīng)取得很大成功,許多原來不知道它的讀者,通過我組織完成的一系列圖書了解了它的價(jià)值,市場(chǎng)上的反應(yīng)很好。D 是知道這些的,他開始露出了狐貍的尾巴,跳出來急于要控制公司的一切,與我的矛盾也加劇了。天底下沒有不散的宴席,我開始尋思出路。
軟件含有程序和文檔兩部分,沒有文檔的軟件顯然不完整,因?yàn)橛脩魺o法知道怎樣操作使用程序。奧萊理公司出名很大程度上是出版了很多
自由軟件的書,這些著作寫得深入淺出,很得讀者喜愛。但是在與 RMS 談過之后,我發(fā)現(xiàn)一個(gè)問題,盡管
自由軟件資源已經(jīng)非常豐富,但是
自由軟件的自由文檔數(shù)量相比之下還是太少,而且高質(zhì)量的著作不多見。 糟糕的是,奧萊理的書幾乎全部是專有的,其版權(quán)狀態(tài)與專有軟件的許可證沒有本質(zhì)差別。從相當(dāng)大的程度上講,奧萊理的成功與其說是它填補(bǔ)了軟件文檔方面的空缺,不如說是它實(shí)際上鉆了
自由軟件社團(tuán)的空子。
為了推廣應(yīng)用
自由軟件,這種局面必須改變。中國(guó)人可以在這方面發(fā)揮自己的聰明才智,擺脫美國(guó)專有出版商的控制。
最終,我與奧萊理決裂了,離開了這家專有出版商。
(4)尾聲:形式語言與網(wǎng)絡(luò)出版的結(jié)合
從 1997 年 7 月到 2000 年 1 月,我在奧萊理工作了兩年半的時(shí)間,在付出巨大努力的同時(shí),我也學(xué)會(huì)了不少東西。客觀地講,奧萊理在早期 Web 的技術(shù)發(fā)展史上是有較大貢獻(xiàn)的,特別是它與其他公司一道提出的 DocBook 規(guī)范,已經(jīng)成為網(wǎng)絡(luò)出版的事實(shí)上的標(biāo)準(zhǔn)之一。DocBook 是一套 SGML 標(biāo)記集合,用于給文檔的結(jié)構(gòu)和表示打標(biāo)記,從而分離了文檔的內(nèi)容和表達(dá)方式。SGML 是幾個(gè)IBM 的研究員在二十世紀(jì)八十年代中期制定的一套規(guī)范,后來發(fā)展成了ISO 標(biāo)準(zhǔn)。
SGML的實(shí)質(zhì)就是將形式語言引入到信息處理和出版領(lǐng)域,有了形式語言提供的數(shù)據(jù)結(jié)構(gòu),
信息的檢索,查詢、分類、重新加工與表現(xiàn)可很容易由計(jì)算機(jī)來完成。
早期的 Web 將重點(diǎn)放到發(fā)展 HTML 上,這是 SGML 的一個(gè)子集,但是后來在技術(shù)實(shí)現(xiàn)過程中,逐漸偏離了SGML 的分離信息的內(nèi)容與格式的技術(shù)方向。等到 IT 界意識(shí)到問題的嚴(yán)重性時(shí),又開始重新改造 Web,這次是使用 XML 規(guī)范來進(jìn)行改造,XML 規(guī)范內(nèi)容非常豐富,但是本質(zhì)上還是 SGML 的一個(gè)子集。
在引入形式語言的概念后,出版的概念發(fā)生了質(zhì)的變化,網(wǎng)絡(luò)成了一種極好的信息發(fā)布和傳播的媒體,現(xiàn)在人們把它列為繼報(bào)刊、廣播、電視之后的第四媒體。它對(duì)社會(huì)的發(fā)展已經(jīng)產(chǎn)生了深遠(yuǎn)的影響,盡管目前的法律體系還沒有準(zhǔn)備好進(jìn)行相應(yīng)的調(diào)整以適應(yīng)這種技術(shù)革命帶來的變化。
(十)峰回路轉(zhuǎn)九寨溝
離開了奧萊理之后,重新回到自己的公司經(jīng)營(yíng)業(yè)務(wù)。我知道 IT 市場(chǎng)變幻莫測(cè),反復(fù)無常,我想停一下,冷靜思考以后的發(fā)展方向,隨著我的年齡和經(jīng)歷的增長(zhǎng),我少了往日年青人常有的盲目熱情,多了成年人應(yīng)具的理性思考。這是一個(gè)自然的過程。
(1)同斯托曼在一起的三個(gè)星期
RMS 自從回國(guó)之后,一直與我保持著聯(lián)系,而且正如當(dāng)時(shí)他所說的,他決定 2000 年 5 月再訪中國(guó),我當(dāng)時(shí)正構(gòu)思寫作他的傳記,因此我要求他安排一下日程,錯(cuò)開一些不太要緊的事情,以便有更多的時(shí)間留在中國(guó),我可以挖掘掌握更多的寫作素材。
最終RMS決定給我三個(gè)星期的時(shí)間。我想天天呆在房間里進(jìn)行問答式的采訪太單調(diào)了,因此除了安排一些演講之外,我們想到一些風(fēng)景區(qū)逛逛,在一個(gè)輕松的環(huán)境里或許可以得到更多的素材。
我們決定去四川的九寨溝。我們?cè)缇吐犝f那里風(fēng)光迷人,山水奇佳。我們專門物色到了一位經(jīng)驗(yàn)豐富的司機(jī)和一輛豐田越野車,從成都出發(fā),沿著岷江公路逆水而上。進(jìn)入松潘境界后,山勢(shì)雄偉,山巒連延起伏跌宕,RMS 大呼過癮,說如果他以前住在這里開發(fā)軟件的話,GNU 系統(tǒng)早就完成了。
(2)長(zhǎng)海論道
九寨溝風(fēng)景區(qū)的旅游線路可以簡(jiǎn)單地看成是一個(gè)“丫”字形狀。我們一共進(jìn)入九寨溝風(fēng)景區(qū)兩次。第一天游了一條分叉線路,第二天到另一條分叉線路,終點(diǎn)是長(zhǎng)海。長(zhǎng)海并不是海,而是在某個(gè)冰川時(shí)期由于強(qiáng)烈的地震造成的大面積地質(zhì)沉降,后來周圍高山的雪水融化流入而成的一個(gè)大的湖泊。水面的顏色隨著天上的陽光和云彩飄動(dòng)而變幻,一步一景,我們亦步亦趨。這樣的景色變幻實(shí)在迷人,縱使以畫海邊風(fēng)景聞名于世的俄羅斯名畫家愛瓦佐夫斯基再世,將他所有的畫筆、顏料和畫布搬來,也未必能窮盡大自然造化的鬼斧神工。最終我們停下來歇腳,開始了一次長(zhǎng)談。
GNU Emacs
---------
RMS 是 GNU Emacs 的作者,如果從 1975 年P(guān)DP-10 上的 TECO 算起,到1986 年 GNU Emacs 第一版正式推出,他斷斷續(xù)續(xù)花了 11 年的時(shí)間才完成,因此在他的傳記中我將安排相當(dāng)大的篇幅介紹這一軟件包。
GNU Emacs 是目前公認(rèn)的最出色的文字編輯器,更準(zhǔn)確地說,是程序員的完整工作環(huán)境,因?yàn)樗鼛缀鯚o所不能,從寫程序,日記,調(diào)試,排版,電子郵件,無所不包。 良好的擴(kuò)展性來自內(nèi)置的 Lisp 語言,大多數(shù)GNU Emacs 模塊是采用 Lisp 編寫的。
Lisp 語言的歷史已經(jīng)很久了,幾乎與 Fortran 一樣長(zhǎng)。二十世紀(jì)五十年代,計(jì)算機(jī)科學(xué)家先是發(fā)明了針對(duì)數(shù)字計(jì)算的 Fortran 語言,后來針對(duì)符號(hào)計(jì)算又發(fā)明了 Lisp,Lisp 的發(fā)明歷史可以說也是充滿傳奇色彩。
Lisp 程序中充滿了一對(duì)對(duì)嵌套的小括號(hào),這些嵌套的符號(hào)表達(dá)式體現(xiàn)著遞歸。遞歸是數(shù)學(xué)上的基本概念之一,從遞歸理論出發(fā),一切可以計(jì)算的函數(shù)最終都可以劃歸為幾種基本的遞歸函數(shù)的種種組合,還可以從數(shù)學(xué)上嚴(yán)格證明,一種叫著 mu 的遞歸函數(shù)與圖靈機(jī)上的可計(jì)算函數(shù)是等價(jià)的。
從數(shù)學(xué)理論到計(jì)算技術(shù)之間還有一段距離,因?yàn)橛?jì)算機(jī)只能對(duì)數(shù)字或者符號(hào)進(jìn)行操作,在馮·諾伊曼體系下的計(jì)算機(jī),需要先將程序讀入計(jì)算機(jī)存儲(chǔ)起來,然后才能進(jìn)行計(jì)算。在這一過程中,函數(shù)的名稱與函數(shù)過程都是用符號(hào)表達(dá)的,我們?nèi)丝梢詤^(qū)分,但是計(jì)算機(jī)卻不能。Lisp 語言中的 Lambda 函數(shù)完成了這一跳,通過引入 Lambda 演算,在一對(duì)對(duì)嵌套的括號(hào)外表之下的程序是對(duì)計(jì)算中數(shù)據(jù)結(jié)構(gòu)與算法的定義和抽象,對(duì)抽象的復(fù)合,以及將復(fù)合的計(jì)算對(duì)象重新按照簡(jiǎn)單的對(duì)象來計(jì)算。這再一次印合了并加深了我對(duì)泛積原理的認(rèn)識(shí),一個(gè)是從計(jì)算得到的認(rèn)識(shí),另一個(gè)是從系統(tǒng)科學(xué)得到的認(rèn)識(shí)。
后來我得知,兩者可以找到相同的淵源。Lisp 的發(fā)明人約翰·麥卡錫是數(shù)學(xué)家阿龍佐·丘奇的學(xué)生,而丘奇是 Lambda 函數(shù)演算理論的創(chuàng)立者。Lambda 函數(shù)論解決了函數(shù)名稱與函數(shù)過程之間語義含糊和歧義的問題。 其實(shí),關(guān)于“名”與“實(shí)”之間的關(guān)系,我國(guó)古代的哲學(xué)家有大量 精辟見解,公孫龍的“白馬非馬”之說已經(jīng)涉及到,莊周對(duì)于有與無的哲學(xué)見解更是精辟,只是由于時(shí)代的局限,他們的睿智不易被現(xiàn)代人所容易地了解罷了。泛系理論在 1976 年提出時(shí)也已經(jīng)研究過這一問題,但是時(shí)隔二十幾年后我才真正明白它們之間的內(nèi)在聯(lián)系。
Lisp 在漫長(zhǎng)歲月里衍生出來很多版本。其中一個(gè)版本 MacLisp 對(duì)RMS 的影響很大,
在設(shè)計(jì)GNU Emacs 時(shí),RMS 將Lisp 融入了其中,道理很自然,因?yàn)?GNU Emacs 是
一個(gè)文本編輯器,文本就是一種符號(hào),而 Lisp 正好就是針對(duì)符號(hào)計(jì)算發(fā)明的。GNU Emacs 中的 Lisp 稱為 Emacs Lisp。它比大多數(shù)其他的 Lisp 版本都簡(jiǎn)單。
1994年時(shí)眾多 Lisp 版本又得到了相當(dāng)?shù)慕y(tǒng)一,統(tǒng)一之后的版本稱為Common LISP。
Common Lisp 含有非常豐富的庫,僅僅語言的規(guī)范就長(zhǎng)達(dá)千頁以上,包括面向?qū)ο?BR>的 CLOS。
Scheme 語言是 Lisp 的一個(gè)現(xiàn)代變種,誕生于1975年,誕生地點(diǎn)也是在MIT。
Scheme語言的規(guī)范很短,總共只有50頁,甚至連Common Lisp 規(guī)范的索引的長(zhǎng)度都不到,但是卻被稱為是現(xiàn)代編程語言王國(guó)的皇后。它與以前和以后的 Lisp 實(shí)現(xiàn)版本都存在一些差異。但是卻易學(xué)易用,
自由軟件基金會(huì)有一個(gè)叫 Guile 的語言,實(shí)際上就是 Scheme 的一個(gè)實(shí)現(xiàn)版本。RMS 對(duì)編程語言的精辟見解,后來我都收錄進(jìn)入了《Learning GNU/Linux OS》一書中。
Lisp 語言程序員經(jīng)常說,SGML 技術(shù)只是符號(hào)表達(dá)式的另一種“更丑陋”的實(shí)現(xiàn)方式,此話不假,因?yàn)樵缭诙兰o(jì)五十年代,Lisp 就已經(jīng)將形式語言符號(hào)計(jì)算引入進(jìn)了計(jì)算科學(xué)界。Lisp 或者 Scheme 語言可以非常容易地處理 XML 文檔的解析。
科學(xué)精神
---------
縱觀人類科學(xué)發(fā)展的歷史,科學(xué)精神的作用是貫穿始終的。懷疑是科學(xué)創(chuàng)新和發(fā)展的源動(dòng)力之一。科學(xué)精神提倡懷疑,不懷疑已有的陳規(guī)和定論,科學(xué)家們難以提出新的觀點(diǎn),也就不會(huì)有新的實(shí)踐活動(dòng),科學(xué)也就得不到發(fā)展和進(jìn)步。
自由軟件鼓勵(lì)創(chuàng)新,
自由軟件的創(chuàng)新機(jī)制來自對(duì)所提供的源代碼的懷疑 --- 如果你對(duì)程序的功能不滿意,就可以察看程序的源代碼,修改之中的代碼,從而得到更好的功能。 從這個(gè)意義上說,開展
自由軟件運(yùn)動(dòng)可以說是向世人普及科學(xué)精神的最好方式之一。任何人都可以自由地自行檢查程序的源代碼,動(dòng)手來改進(jìn)程序。
信息的不對(duì)稱性
--------------
公開了程序的源代碼,程序?qū)τ脩艟褪峭该鞯牧耍ㄏ啾戎拢瑢S熊浖脑创a是密而不宣的),但是,源代碼透明并不等于任何人馬上就能理解代碼的含義,要理解源代碼的含義還需要大量的思維勞動(dòng)。
編寫程序這個(gè)行當(dāng)可以說是一門工程技術(shù),就像其他類型工程師的工作一樣,但是,對(duì)于具有創(chuàng)造性的軟件,編寫程序的過程卻更像是搞藝術(shù)創(chuàng)作。毫無疑問,作者首先必須要懂大量的知識(shí),這一點(diǎn)與藝人表演一樣,“臺(tái)上一分鐘,臺(tái)下十年功”。成為一位合格的程序員,需要具有很多方面的基礎(chǔ)知識(shí),這些知識(shí)的積累都不是一蹴而就的,需要多年的積累,具體多長(zhǎng)時(shí)間因人而異。
作者在創(chuàng)作軟件時(shí),精力必須高度集中,很難在一個(gè)不安靜的環(huán)境下寫出高質(zhì)量的軟件來。這一點(diǎn)與藝術(shù)家們的工作也很相似。劉勰在《文心雕龍》中就說過:“文之思也,其神遠(yuǎn)矣。故寂然凝慮,思接千載,悄焉動(dòng)容,視通萬里...... 故思理為妙,神與物游......” 程序員的創(chuàng)作結(jié)果就體現(xiàn)在源代碼之中,但是在源代碼從程序員的頭腦寫到文件的過程中,大量的信息是無法表達(dá)的,經(jīng)驗(yàn)豐富的程序員會(huì)寫很好的代碼注釋,但是即使加上了這些注釋,還是遠(yuǎn)遠(yuǎn)趕不上程序員頭腦中思想過的全部信息量,因此代碼中含有的信息只是全部信息量的極少部分。當(dāng)然如果連源代碼這個(gè)媒介都不存在(像專有軟件那樣),那就什么都談不上了,信息量為零。
這正好是泛系理論可以大有作為的地方,因?yàn)橹灰哂凶銐虻摹爸悄芑u”和正確方法論的導(dǎo)引,人的智能可以放大,從源代碼保存的少量信息量中反演出作者原來創(chuàng)作時(shí)的思路來。即使反演的結(jié)果含有的信息量還是比不上原作者的信息量,但是由于信息的冗余性存在,只要能夠達(dá)到理解的目的,這種反演就算成功,反演就有巨大的價(jià)值。如果反演可以推出比原作者頭腦中更多的有價(jià)值的信息量來,那就是高級(jí)的人工智能技術(shù)了。
我們離開了九寨溝,這一行使我得到了RMS 心中的很多想法,盡管他本人并不認(rèn)為他當(dāng)年設(shè)計(jì)那些偉大的程序時(shí)使用了什么特別的方法論。但我想如果他的想法在傳記中能作為規(guī)律揭示出來,那就有可能催生一批而不只是一個(gè)像他這樣的天才程序大師來。
(十一)從泛系觀看
自由軟件(1)心理認(rèn)知距離的度量
一旦明確了信息在軟件作者與軟件用戶之間的不對(duì)稱性,那么如何打破作者與用戶之間的這種不平衡,以達(dá)到信息量或者知識(shí)的對(duì)稱(對(duì)知識(shí)的共享)呢?或者說,如何讓用戶以及其他開發(fā)人員理解原作者的軟件,從而更好地使用以及完善軟件呢?
泛系泛系,泛化之系。
連網(wǎng)之絡(luò),開發(fā)之器。
參證之軸,律化之機(jī)。
觀控之法,聯(lián)想之翼。
一簣之助,點(diǎn)睛之筆。
泛系是研究泛關(guān)系、泛轉(zhuǎn)化與泛對(duì)稱的理論,它已為求得系統(tǒng)之間的泛對(duì)稱性指出了方向:首先必須研究清楚構(gòu)成智能基磚是哪些東西,這些智能基磚之間可以形成哪些泛關(guān)系,以及泛關(guān)系之間的轉(zhuǎn)化規(guī)律是什么。在搞明白這些問題的基礎(chǔ)上,就可以開始度量心理認(rèn)知距離的大小或者長(zhǎng)短。通過對(duì)心理認(rèn)知距離的度量,就可以確定學(xué)習(xí)和理解的工作量,從而為用戶指明填平不對(duì)稱性需要實(shí)施哪些可以實(shí)際操作的步驟。
(2)軟件工具
GNU 工程的一個(gè)偉大之處在于,它構(gòu)建了一個(gè)完整的操作系統(tǒng),而正是在這個(gè)完整的
操作系統(tǒng)中,從文本編輯器(Emacs)、編譯器(GCC)、調(diào)試器(GDB)、庫函數(shù)(GNU C Lib)、詞法分析器(Flex)、句法分析器(Bison)、版本管理系統(tǒng)(CVS)、聯(lián)機(jī)文檔系統(tǒng)
(Texinfo)等等,它提供了應(yīng)有盡有的自由的軟件開發(fā)工具。有了這些工具類的
自由軟件和開發(fā)環(huán)境,創(chuàng)作新的
自由軟件就有了真正實(shí)用的基磚。
(3)泛對(duì)稱的藝術(shù)
我通過探索 GNU 系統(tǒng)得出了結(jié)論:編程是泛對(duì)稱的藝術(shù)。
在軟件開發(fā)過程中,泛對(duì)稱的例子是隨處可見的。 GNU Emacs 中的少量 C 模塊與大量 Lisp 模塊就是一種泛對(duì)稱關(guān)系。C 是編譯型的語言,運(yùn)行效率高,但是開發(fā)的速度慢;Lisp 是解釋型的語言,擴(kuò)展性好,但是效率上與 C 相比則顯得不高。斯托曼的一個(gè)天才構(gòu)想就是利用 C 編寫直接與硬件作用的模塊,例如屏幕顯示模塊,而涉及文本編輯的模塊則統(tǒng)統(tǒng)用 Lisp 語言編寫,而且將 C 模塊代碼的函數(shù)名寫得像 Lisp 的函數(shù)名,所以你不仔細(xì)研究模塊內(nèi)部的細(xì)節(jié),單從函數(shù)名上是很難區(qū)分它們兩者的,而這正是作者的目的,它巧妙地處理了子模塊之間的異同關(guān)系,在滿足效率的同時(shí),也充分保證了系統(tǒng)應(yīng)該具備的擴(kuò)展性。
GNU 的編譯器 GCC 和操作系統(tǒng)內(nèi)核中也大量存在類似的泛對(duì)稱技術(shù)。推而廣之,由于計(jì)算機(jī)最終是為人服務(wù)的,各種程序?qū)嶋H上都是直接或間接地在硬件系統(tǒng)與人之間構(gòu)建泛對(duì)稱。(硬件系統(tǒng)設(shè)計(jì)技術(shù)內(nèi)部也存在大量的泛對(duì)稱性,但是這里就不去涉及了。)
(4)從泛系觀看自由
除了技術(shù)的自由,
自由軟件運(yùn)動(dòng)明確提出它的目的在于改革社會(huì)。在
自由軟件的游戲規(guī)則中,數(shù)學(xué)上的遞歸得到了徹底的使用,遞歸的威力讓專有軟件出版商們膽戰(zhàn)心驚,他們將
自由軟件的游戲規(guī)則斥之為具有“傳染性的病毒”。
軟件的許可證是一種實(shí)施權(quán)利的形式。
自由軟件許可證背后的哲學(xué)思想來自于對(duì)自由與平等人權(quán)所作的深入思考。
古往今來,人類社會(huì)總是處在不斷的動(dòng)蕩不安之中,太平盛世的日子總是屈指可數(shù)的。偏見與歧視、傲慢與強(qiáng)權(quán),一切動(dòng)亂的根源最終都可以看作是人與人之間,或者社會(huì)里的一個(gè)群體與另一群體之間的不平等造成的。
中華文明有五千年可考的歷史,在世界史上,中國(guó)以兩千年跨度的封建社會(huì)為顯著特點(diǎn),盡管朝代更迭多次,但是封建社會(huì)的結(jié)構(gòu)卻出奇地穩(wěn)定,專制的封建社會(huì)壓抑民主和自由,結(jié)果是盡管在文明發(fā)源后的一個(gè)相當(dāng)長(zhǎng)的時(shí)期內(nèi)中國(guó)的科學(xué)技術(shù)領(lǐng)先于西方,但是近代科學(xué)卻不是誕生在東方,而是出現(xiàn)在西方。
追求平等與自由的理念在中國(guó)自古就有之,自近代以來,一直有大量的學(xué)者探索和比較中西方對(duì)平等和自由理解的差異和相通之處,并提出了各種見解。這一探索最早以嚴(yán)復(fù)的論述最為精彩:
“夫自由一言,真中國(guó)歷古圣賢之所深畏,而從未嘗立以為教者也。彼西人之言曰:唯天生民,各具賦 bi,得自由者乃為全受。故人人各得自由,國(guó)國(guó)各得自由,第務(wù)令毋相侵損而已。侵人自由者,斯為逆天理,賊人道。其殺人傷人及盜蝕人財(cái)物,皆侵人自由之極致也。故侵人自由,雖國(guó)君不能,而其刑禁章條,要皆為此設(shè)耳。 中國(guó)理道與西法自由最相似者,曰恕,曰 jie矩。然謂之相似則可,謂之真同則大不可也。何則?中國(guó)恕與 jie 矩,專以待人及物而言。而西人之自由,則于及物之中,而實(shí)寓所以存我者也。自由既異,于是群異叢然以生。粗舉一二言之: 則如中國(guó)最重三綱,而西人首明平等;中國(guó)親親,而西人尚賢;中國(guó)以孝治天下,而西人以公治天下;中國(guó)尊主,而西人隆民;中國(guó)貴一道而同風(fēng),而西人喜黨居而州處;中國(guó)多忌諱,而西人眾譏評(píng)。其于財(cái)用也,中國(guó)重節(jié)流,而西人重開源,中國(guó)追淳樸,而西人求歡虞。其接物也,中國(guó)美謙屈,而西人務(wù)發(fā)舒;中國(guó)尚節(jié)文,而西人樂簡(jiǎn)易。其于為學(xué)也,中國(guó)夸多識(shí),而西人重新知。其于災(zāi)禍也,中國(guó)委天數(shù),而西人恃人力。若斯之倫,舉有與中國(guó)之理相抗,以并存于兩間,而吾實(shí)未感區(qū)分其優(yōu)絀也。”
嚴(yán)復(fù)的西學(xué),“茍扼要而談,不外學(xué)術(shù)則去偽存真,于刑政則屈私以為公”,他是中國(guó)歷史上第一位明確提倡科學(xué)與民主的學(xué)者,他晚年面對(duì)社會(huì)上強(qiáng)大的封建勢(shì)力而生的退縮立場(chǎng)與復(fù)古無損于他的一生學(xué)術(shù)思想的光輝。
在歐洲文藝復(fù)興特別是法國(guó)大革命之后,人類理性思維能力逐漸成熟,終于發(fā)展了可以駕馭自身發(fā)展規(guī)律的完整科學(xué)體系。我們不能苛求嚴(yán)復(fù),因?yàn)樗臅r(shí)代集合論還沒有取得公認(rèn)的基礎(chǔ)性地位,而今天我們可以利用理性思維工具清楚地認(rèn)識(shí)到,平等的概念可以使用數(shù)學(xué)中的等價(jià)關(guān)系概念來精確刻畫,對(duì)于社會(huì)系統(tǒng),以自反性、對(duì)稱性和傳遞性定義的等價(jià)關(guān)系是指在集合(社會(huì))中的每一個(gè)元素(個(gè)體)都處在一個(gè)同等的地位上,特權(quán)的清除依賴于每一個(gè)個(gè)體對(duì)社會(huì)中其他個(gè)體一視同仁的尊重,在這種理想的社會(huì)中,個(gè)體享受自由的權(quán)利與與個(gè)體尊重他人義務(wù)是同時(shí)存在的,它們兩者使得自由具有天生的兩重性。在具有等價(jià)關(guān)系的社會(huì)系統(tǒng)中,無論如何進(jìn)行聚類,得到的群體或者個(gè)體都具有相同的自由度 --- 等價(jià)關(guān)系是正確理解人權(quán)的理性思維工具。
要想使整個(gè)社會(huì)系統(tǒng)中的每個(gè)個(gè)體相等地具有相同的權(quán)利和義務(wù),遞歸的實(shí)施是最有效的手段,因?yàn)樵谶@種社會(huì)動(dòng)力學(xué)系統(tǒng)中,遞歸能保證系統(tǒng)中普遍的等價(jià)關(guān)系的建立和存在。以“版權(quán)屬左”(copyleft)為基礎(chǔ)建立的
自由軟件的游戲規(guī)則,巧妙地使用了遞歸的力量,以期達(dá)到社會(huì)中普及自由之目的。
(十二) 東山再起 --- “一、百、萬”工程
(1)“一、百、萬”工程(MNM Project)
2001 年 3 月 5 日,我發(fā)起了“一、百、萬”工程。盡管發(fā)起這一工程的導(dǎo)火索有某種偶然的成份,但是工程的提出只是遲早的事情,因?yàn)槲覍?duì)自由的涵義和自由的價(jià)值已經(jīng)理解得相當(dāng)清楚。以前的曲折經(jīng)歷告訴我,沒有自由,特別是缺乏對(duì)自由進(jìn)行保證的制度,想取得成功只是一種幻想。自由關(guān)系著所有人的福址。一個(gè)人的商業(yè)成功可能滿足他或她一時(shí)的欲望,但是卻無法保證實(shí)現(xiàn)社會(huì)的普遍繁榮。社會(huì)系統(tǒng)里的大量“人為與門”的存在,極大地束縛了生產(chǎn)力的發(fā)展和社會(huì)的進(jìn)步,浪費(fèi)了巨大的資源,是造成社會(huì)系統(tǒng)的顯克和災(zāi)變的根源。要想清除這些不合理的人為與門,只有一個(gè)辦法,通過向社會(huì)灌輸自由的理念,讓全體社會(huì)成員都能理解自由的重要性。當(dāng)社會(huì)里自由的觀念深入人心得到普及時(shí),一切制約生產(chǎn)力發(fā)展的“人為與門”都會(huì)在它面前土崩瓦解。
盡管我不是職業(yè)政治家,無法通過官僚體系了實(shí)施我的理想,但是我們現(xiàn)在正進(jìn)入信息社會(huì),在信息社會(huì)里,借助技術(shù)和網(wǎng)絡(luò)的力量,傳播自由的理念要比以往任何時(shí)候都來得容易。網(wǎng)絡(luò),特別是人與人之間的網(wǎng)絡(luò),是鏟除各種“人為與門”的有力武器。
這里,“一、百、萬”不是指數(shù)字的一百萬,所以有“一、百、萬不是一百萬”的詼諧說法(MNM's Not Millions), 正好印合了黑客界對(duì) GNU 工程的遞歸命名法則 (GNU's Not Unix)。實(shí)際上,“一、百、萬”工程是下面三個(gè)方面工作的簡(jiǎn)稱:
“一”字工程是指創(chuàng)建一個(gè)研究院,也就是
自由軟件基金會(huì)中國(guó)研究院。
-----------------------------------------------------------------
幾個(gè)泛系學(xué)友曾經(jīng)建立過武漢泛系工程研究所,我曾經(jīng)試圖將這一研究所改造成
自由軟件基金會(huì)中國(guó)研究院,但是不是所有的泛系學(xué)友都理解我提倡的自由觀念,他們不想改變?cè)瓉淼恼鲁蹋虼宋抑缓昧砥馉t灶,自己動(dòng)手與 RMS 一起來組建
自由軟件基金會(huì)中國(guó)研究院。
盡管目前組建
自由軟件基金會(huì)中國(guó)研究院還面臨許多問題,例如,作為一個(gè)在民間成立的科學(xué)研究組織,它在法律上它無法得到《捐贈(zèng)法》的有效保護(hù);作為一個(gè)社會(huì)公益事業(yè)性質(zhì)的組織(--- 它開發(fā)的
自由軟件人人都可以自由使用),它無法享受到像 FSF 在美國(guó)得到的稅收政策(在美國(guó),F(xiàn)SF是免稅的,而且捐贈(zèng)人向 FSF 的捐贈(zèng)可以從個(gè)人或者企業(yè)的所得稅中扣除),
但是這些困難都不是我們停止向社會(huì)傳播自由的理由。
工程啟動(dòng)后,它即著手建設(shè)一系列的工程,這里是項(xiàng)目的一個(gè)簡(jiǎn)要清單:
開發(fā)高質(zhì)量的矢量漢字字庫。
-------------------------
漢字字庫是中國(guó)人使用計(jì)算機(jī)時(shí)必須擁有的東西。遺憾的是,中國(guó)現(xiàn)在沒有一種真正自由意義上的漢字字庫,無論是終端上的點(diǎn)陣字庫,還是高質(zhì)量的用于印刷的矢量字庫。
這一項(xiàng)目將開發(fā) PostScript 矢量字庫。PostScript 技術(shù)是一項(xiàng)非常成熟的技術(shù)。工業(yè)界對(duì)它的支持很廣泛,
自由軟件基金會(huì)也有工具軟件支持它,這一工程項(xiàng)目的難度除了要熟悉PostSript 語言規(guī)范之外,關(guān)鍵在于工作量的龐大,因?yàn)闈h字的數(shù)量很多,僅僅 GB2312-80 就有 6,763 個(gè)漢字。而且僅有一種字體是不夠的,需要至少四種才能基本滿足印刷的實(shí)際需要。
新的操作系統(tǒng)
------------
我們目前面臨的軟件危機(jī)主要表現(xiàn)在缺乏自己可以把握的平臺(tái)上,包括硬件平臺(tái)和軟件平臺(tái)。冰凍三尺,非一日之寒。 中國(guó)人在開發(fā)操作系統(tǒng)的道路上,因?yàn)楠q豫不決和決策失誤浪費(fèi)了很多時(shí)間,走了大量的彎路(在我看來根本原因是缺乏對(duì)自由的理解)。由于長(zhǎng)時(shí)間沒有硬件平臺(tái)的直接支持,自己又不重視技術(shù)開發(fā)力量的儲(chǔ)備,人才的流失嚴(yán)重。因此短期內(nèi)開發(fā)出一個(gè)成熟的操作系統(tǒng)是不現(xiàn)實(shí)的。
由于信息時(shí)代操作系統(tǒng)作為平臺(tái)的重要性日見突出,因此,“一、百、萬”工程知難而上,決定自己開發(fā)自由的操作系統(tǒng), 其技術(shù)路線是復(fù)活 Lisp Machine,也就是將編程語言擴(kuò)展成為一個(gè)完整的操作系統(tǒng)。
新的操作系統(tǒng)稱為“MNM”,它是從芯片開始設(shè)計(jì)的全新操作系統(tǒng),硬件平臺(tái)以基于堆棧的芯片為默認(rèn)平臺(tái),還有采用微內(nèi)核的體系(GNU 系統(tǒng)將來也可以采用),出色的實(shí)時(shí)反應(yīng)速度,完善的內(nèi)核多線程機(jī)制,健壯的網(wǎng)絡(luò)功能,已經(jīng)圖形用戶界面等一大堆技術(shù)性能。
Scheme 實(shí)現(xiàn)版本
---------------
Lisp Machine 在二十世紀(jì)八十年代曾經(jīng)頗為風(fēng)光過一陣,它曾經(jīng)是黑客們的掌上明珠,后來因?yàn)槭袌?chǎng)和技術(shù)等原因,從操作系統(tǒng)家族中消失了。
影響 Lisp Machine 普及的技術(shù)原因在于 Lisp 語言環(huán)境的運(yùn)行速度不彰,Lisp 語言有一種內(nèi)存垃圾自動(dòng)回收機(jī)制,早期計(jì)算機(jī)上的內(nèi)存是非常昂貴的,計(jì)算機(jī)系統(tǒng)上內(nèi)存是很少的,屬于最稀缺的資源。Lisp 在實(shí)現(xiàn)時(shí)考慮到了這一點(diǎn),它將程序運(yùn)行過程中產(chǎn)生的所有不再使用的內(nèi)存清理干凈后重新投入計(jì)算,在內(nèi)存垃圾回收時(shí),Lisp語言解釋器不得不停下來等待新的可重用的內(nèi)存,因此速度上受到很大影響。
但是內(nèi)存垃圾回收(GC)本身是一項(xiàng)非常出色的技巧,它本身并沒有什么錯(cuò)。編譯型的語言,例如 C,需要程序員自己來管理內(nèi)存的分配和回收,因此編程效率低下,而且容易出錯(cuò)。現(xiàn)代的許多語言都在模仿 Lisp 的內(nèi)存垃圾回收機(jī)制,例如 Java 語言中就有從 Lisp 借鑒過來的類似內(nèi)存垃圾回收機(jī)制。
今天的計(jì)算機(jī)內(nèi)存部件成本已經(jīng)大大下降了,因此通過采用動(dòng)態(tài)的垃圾回收技術(shù),即一邊運(yùn)行程序(而不是讓程序運(yùn)行暫停或者進(jìn)程掛起),一邊回收垃圾,Lisp 的運(yùn)行速度可以大幅度提高。因此,現(xiàn)在很少聽到對(duì) Lisp 運(yùn)行速度的抱怨聲了。
當(dāng)然,還有一些技術(shù)可以提高計(jì)算速度,例如,將基本的直接與硬件交互的模塊,采用匯編語言編寫,成為可以直接執(zhí)行的原子函數(shù)進(jìn)入 Lisp 的 REP 循環(huán),由于內(nèi)存部件的低成本,因此基于堆棧的芯片上已經(jīng)集成了大量的存儲(chǔ)器,算法可以使用硬件而不是單純靠軟件來實(shí)施,因此計(jì)算機(jī)運(yùn)算速度可以大幅度提高,而且程序小巧而緊湊。
但是,正如前面提到的,標(biāo)準(zhǔn)的 Common Lisp 太龐大,“一、百、萬”工程將采用自由的Scheme 實(shí)現(xiàn)版本來開發(fā)操作系統(tǒng),復(fù)活 Lisp Machine。我們將針對(duì)最高的 Scheme 規(guī)范版本(R5RS),加上一些自己的擴(kuò)展特性,來開發(fā)自己的 Scheme 實(shí)現(xiàn)版本。
桌面工作環(huán)境
------------
當(dāng)今任何主流的操作系統(tǒng)上都有圖形用戶界面(GUI),GUI 以一種直觀的方式為計(jì)算機(jī)用戶提供了觀控框架,絕大多數(shù)計(jì)算機(jī)用戶喜歡在這樣的環(huán)境下工作。
自由軟件社團(tuán)廣泛地采用了原創(chuàng)自 MIT 的 X Window System,目前幾乎清一色地在X 上加入自己的圖形界面元素構(gòu)成一個(gè)完整的桌面環(huán)境,GNU 系統(tǒng)上是GNOME。GNOME 的設(shè)計(jì)思想卓越,它采用了CORBA 技術(shù),將面向?qū)ο蟮木幊碳夹g(shù)和分布式計(jì)算結(jié)合在了桌面環(huán)境中。
X 最初提供了兩種等價(jià)的庫,一種是現(xiàn)在通用的以 C 編寫的 Xlib, 還有一種是現(xiàn)在幾乎廢棄的 CLX,即利用 Common Lisp 編寫的 X 庫,這兩種庫都實(shí)現(xiàn)了對(duì) X 協(xié)議的支持。“一、百、萬”工程將在 CLX 的基礎(chǔ)上,利用 Scheme 來改造 X。
這一改造的目的不僅僅是得到一個(gè)可以使用的 X 窗口系統(tǒng),而且有更高的技術(shù)目標(biāo) --- 它要將基于 X 的桌面設(shè)計(jì)得像 Web 是一個(gè)瀏覽器, 將分布式的 Web 帶入 X 桌面,從而得到一種新的泛對(duì)稱。在這一桌面環(huán)境下,任何對(duì)象無論它在本機(jī)上,還是在網(wǎng)絡(luò)遠(yuǎn)程的什么地方,均可利用桌面對(duì)計(jì)算進(jìn)行觀控。大量的泛系概念將采用進(jìn)入這一桌面環(huán)境的設(shè)計(jì)中。
“百”字工程就是要?jiǎng)?chuàng)作幾百本自由的計(jì)算機(jī)文檔,并把它們當(dāng)作圖書出版。
--------------------------------------------------------------------
一旦有了高質(zhì)量的自由漢字字庫,我們就可以開始出版自己的文檔。這些文檔既可以從網(wǎng)上自由傳播,又可以作為紙媒體印刷出來銷售,為工程積累開發(fā)資金。“百齡影徂,千載心在”。只要有一批高質(zhì)量的計(jì)算機(jī)文檔,那么我們的工程就會(huì)后繼有人,他們可以在我們的肩膀上繼續(xù)向上攀登,而不用從頭做起。
“萬”字工程就是要在中國(guó)培養(yǎng)幾萬名具有創(chuàng)新精神的、可以動(dòng)手開發(fā)
自由軟件的工程師。
---------------------------------------------------------------------------------
一、百、萬工程非常龐大,需要大量的人力物力的投入,因此我們希望有大量的軟件工程師參加進(jìn)來。目前這方面的人力資源還遠(yuǎn)遠(yuǎn)不夠,因此我們要利用我們?cè)谛睦碚J(rèn)知距離的度量中獲得的研究成果大力開展培訓(xùn)工作,利用多種手段培養(yǎng)幾萬名可以動(dòng)手開發(fā)
自由軟件的人才。只有具備了大量理解了自由涵義的人才,我們的工程才有蓬勃發(fā)展的保證。
自由軟件運(yùn)動(dòng)在中國(guó)才有成功的希望。
至道在微,變化無窮,孰知其原!......恍惚之?dāng)?shù),生于毫厘,毫厘之?dāng)?shù),起于度量,千之萬之,可以益大,推之大之,其形乃制。
“一、百、萬”工程發(fā)起的意義絕對(duì)不僅僅是像一些人期望的那樣創(chuàng)造一些高質(zhì)量的具有民族品牌的軟件,解決我們民族面臨的軟件危機(jī),而且在于,
自由軟件運(yùn)動(dòng)從此在中國(guó)的發(fā)展不再是屬于一些黑客個(gè)人自發(fā)的業(yè)余愛好,或者幾家公司手中的贏利工具,而是變成了一種自覺的行動(dòng)。這個(gè)工程有它完整的宗旨、既定的技術(shù)目標(biāo),計(jì)劃綱領(lǐng)和具體行動(dòng)。它通過技術(shù)手段來傳播自由的思想和理念,達(dá)到創(chuàng)造更加美好社會(huì)的目的,它或多或少像是一種柏拉圖式的政治,盡管參加工程建設(shè)的人將不是來自政府的公務(wù)員。
(2) 重朔事業(yè)的第二春
市場(chǎng)上有大量的 IT 公司幻想著急劇膨脹公司規(guī)模,然后上市圈錢,以達(dá)到迅速發(fā)財(cái)致富的成功目的。 我們不打算這樣做,我們的手段是利用泛系是推廣自由。泛系理論已經(jīng)提供了足夠多的商業(yè)模式供我們采用。目前工程的資金來源主要依靠我們提供的服務(wù):
出版《
自由軟件》雜志
--------------------
經(jīng)過一年的努力,我們開始出版《
自由軟件》雜志(FSM),這是目前全球第一本關(guān)于
自由軟件的英文雜志,這一雜志得到了FSF的直接支持。它有電子媒體和紙媒體兩個(gè)版本,兩個(gè)版本的雜志都可以自由的拷貝和再發(fā)行,電子媒體發(fā)表在我們的網(wǎng)站上:http://www.rons.net.cn/english/FSM/online,紙媒體雜志的銷售收入用于支持“一、百、萬”工程的建設(shè)。
排版服務(wù)
---------
TeX 經(jīng)過多年的發(fā)展,已經(jīng)非常穩(wěn)定了,我也摸索了多年,對(duì)其內(nèi)部結(jié)構(gòu)已經(jīng)了如指掌,我在 2000 年組建了 CTUG (China TeX User Group)。目前,CTUG 還在成長(zhǎng)壯大,我們?cè)?CTUG 的基礎(chǔ)上組建了一個(gè)排版工作室,F(xiàn)SM 排版的任務(wù)就是這一工作室承擔(dān)的。除此之外,它面向世界市場(chǎng)提供高質(zhì)量的商業(yè)性排版服務(wù)。
講授
自由軟件課程
----------------
實(shí)際上,信息不對(duì)稱的原理已經(jīng)得到經(jīng)濟(jì)學(xué)家們的廣泛認(rèn)同,2001年度的諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)金就頒發(fā)給三位在這方面研究取得了突出貢獻(xiàn)的學(xué)者。
應(yīng)用前面提到的信息不對(duì)稱的原理,通過對(duì)心理認(rèn)知距離的度量研究,我們開發(fā)了一套冠以“黑客道”(Hackerdom)的
自由軟件培訓(xùn)課程,通過學(xué)習(xí)這一套課程,學(xué)生可以迅速掌握
自由軟件的工作原理,具備動(dòng)手開發(fā)
自由軟件的能力。我們收取的學(xué)費(fèi)除了支付教員的勞動(dòng)之外將用
于工程的建設(shè)。
“春三月,此謂發(fā)陳,天地俱生,萬物以榮......生而勿殺,予而勿奪,賞而勿罰,此春氣之應(yīng),養(yǎng)生之道也。” 我們希望所有珍愛自己的自由和權(quán)利的人都來關(guān)心和支持“一、百、萬”工程的建設(shè),共同營(yíng)建我們
自由的春天。
結(jié)語
從一個(gè)初出茅廬的熱血青年,到成長(zhǎng)為一個(gè)為自由而奮斗的戰(zhàn)士,我已走過了12 年的曲折歷程,我有幸在這12 年的時(shí)間中,得到了兩位來自不同領(lǐng)域里的世界級(jí)大師的指導(dǎo)和關(guān)懷。我不愿將這段難忘的經(jīng)歷封閉起來視為自己私有的財(cái)富,而是寫出來,希望引起社團(tuán)里的每一個(gè)同志對(duì)自由的進(jìn)行思考,或者得到某些啟示。
我們生活的時(shí)代處在一個(gè)信息社會(huì)剛剛開始的門檻上,這一時(shí)代不同與以往的農(nóng)業(yè)社會(huì)、工業(yè)社會(huì),信息社會(huì)中的社會(huì)成員將因技術(shù)的飛速發(fā)展擁有前所未有巨大的自由,也正是因?yàn)槿绱耍@一社會(huì)存在的基礎(chǔ) --- 自由 ---才顯示出比以往任何時(shí)候與人都更加密切的關(guān)系,值得我們?nèi)フ湟暫途S護(hù)。古往今來,對(duì)美好自由的向往是人類永不停歇的追求的源動(dòng)力,讓我在此
套用《泛系百經(jīng)》中的“路人律”來與大家共勉并結(jié)束全文:
識(shí)志尺勢(shì)人各有,
同志結(jié)識(shí)又分手。
天涯咫尺常對(duì)轉(zhuǎn),
自由事業(yè)伴千秋。
版權(quán)所有 copyright
洪峰 2002
本文可原封不動(dòng)的拷貝和自由地再發(fā)行,但在拷貝和再發(fā)行的拷貝中必須
原封不動(dòng)地含有這段版權(quán)聲明。