老牌黑客雷蒙德談開發(fā)技術(shù)和語言的發(fā)展
作為開放源碼促進會的領(lǐng)袖人物,埃里克·雷蒙德一直在商界努力為老一代的Unix的程序員和越來越多的Linux的擁護者之間搭建一座橋梁。而且他的這一思想與他寫的“新黑客字典”一書的內(nèi)容不謀而合,該書1991年出版,主要談到了因特網(wǎng)和黑客文化,至今仍具有濃厚的傳奇色彩。
最近埃里克·雷蒙德推出了他的一本新書“Unix編程的藝術(shù)”,書中涉及了編程文化的精華和使用Unix的一些思維過程。在近期為其新書做促銷的間隙,埃里克·雷蒙德接受了因特網(wǎng)新聞(internetnews.com)的采訪,就許多科技話題提出了他的看法。
問:過去十年里,程序員在上學期間接受的初步訓練都是Windows,目前是不是同樣的狀況?或者學生們都在接受Linux的培訓?
這兩種情況都存在?,F(xiàn)在是個人計算機的世界,這是再明白不過的事實。在今天的孩子們看來,所謂的微型機和大型計算機都似乎沒有存在過。
問:你認為還有什么更加重要的發(fā)展趨向?
64位計算機的出現(xiàn)產(chǎn)生的影響出乎我?guī)啄昵暗念A料,而主要的原因是對地址空間的需求超出了我原來的估計。
問:可擴展標記語言(XML)目前在程序開發(fā)者中間都非常流行,人們對XML的作用會不會存在一些誤解?
據(jù)我所知,有些人認為XML具有一種神奇的功能,它可以解決數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)組織問題,這是一個嚴重的誤解。事實上XML不可能有這樣的功能,因為它僅僅是一個基本的syntax,只能解決一些低級問題,比如如何連接記錄,寫出在高層次上設(shè)計的結(jié)構(gòu)等。像文檔類型、數(shù)據(jù)庫方案,以及在不同的方案和文件類型之間傳送數(shù)據(jù)等一系列問題都是XML自身所無法解決的?,F(xiàn)實的世界多源的,一直是這樣,將來也會是這樣。
問:我們談一下XML的安全性能好嗎?
我認識XML數(shù)字認證組織的負責人。他很快將發(fā)布一個標準,我們也將會擁有一種標準的、保證XML數(shù)據(jù)安全性的體系。因此我想在不遠的將來數(shù)據(jù)安全性將有很大的進展。
問:你對SOAP-即以XML為基礎(chǔ)的簡單對象訪問協(xié)議有何看法?
事實上我認為SOAP的作用并沒有宣傳的那么好,就如同C++和C之間的關(guān)系一樣。你也知道C++的功能要強大一些,但同樣它使得程序更為復雜了,因此它的效益并不好。我想SOAP跟XML-RPC(遠端程序呼叫)之間也是同樣的關(guān)系。
通常有一種現(xiàn)象叫作第二系統(tǒng)綜合癥,也就是說你第一次設(shè)計的系統(tǒng)可以完成80%的工作任務(wù),這個系統(tǒng)是相當簡潔的,但是為了完成另外20%的工作你往往就會重新設(shè)計第二個系統(tǒng),而這個系統(tǒng)本身將會是無比的復雜,以至于自身常常都會崩潰。
SOAP就是一個糟糕的第二套系統(tǒng)。我認為SOAP并不可靠,因為它自身過于復雜。人們只能有兩種選擇,要么決定XML RPC已經(jīng)完全足夠了,要么搞出一個第三套系統(tǒng)來。
問:談?wù)勀銓ava的看法?
我對Java并沒有更深的研究。大多程序員都使用Java,我卻使用Python,這兩種語言在功能上沒有太大的區(qū)別,因此我也沒有放棄Python而選擇Java。
問:談到scripting語言,不可避免還要涉及Python、Perl和PHP,你對此有何看法?
我認為這些新一代的scripting語言非常容易上手,是功能強大的工具。它們并不能解決所有的問題,但是他給你提供了一個尋找快速解決方案的途徑。這是難能可貴的,因為與傳統(tǒng)的編程語言之間的沖突是相當嚴重的,你也無法嘗試所有的方案。
問:過去,Scripting語言一直排在分類語言的后面,因為Scripting語言占據(jù)了大量的計算資源,現(xiàn)在是不是還是這種情況?
開發(fā)工具的整個發(fā)展史也就是機器時間相對程序員的時間越來越變得廉價的歷史,換句話說,程序員的時間變得越來越昂貴,因此使低端的資源存儲和管理實現(xiàn)自動化是非常有意義的。程序員可以集中精力攻克一些高端的任務(wù),這也可以說是scripting語言的功勞。
問:還有一個相關(guān)的問題:廉價計算資源的出現(xiàn)是否會對軟件業(yè)造成負面的影響?
我認為廉價計算資源的出現(xiàn)并不會對軟件工程造成負面的影響。如果說有影響的話,只是使簡潔的軟件設(shè)計更加必要,因為寫出大量代碼是相當容易的。
從3萬英尺的高度看各種語言在功能上的差距,你會發(fā)現(xiàn)Python和Perl之間是相當接近的。你用其中一種語言實現(xiàn)的功能幾乎都可以利用另一種語言實現(xiàn)。而僅有的一點的差別就用Python來編寫一些模糊的代碼相對比較困難。經(jīng)過六個月的實踐我發(fā)現(xiàn)Python語言較Perl更容易閱讀。我也確信,對于今天我們所進行的大規(guī)模的項目來說,保持長期的穩(wěn)定性可以說是任何一種語言最有說服力的功能。
問:特別是當所有的維護工作都能輕易完成時,對不對?
當然,但我并不是說這就是一個長期的發(fā)展趨向,我想人們將會發(fā)現(xiàn)為此將付出越來越多的隱藏的成本。
問:以上是不是基于一種文化上的差異,或者因為你希望程序員可以在線相互交流?
兼而有之吧。
埃里克.雷蒙德1957年出生于美國馬薩諸塞州的波士頓,正好就是黑客文化發(fā)源地MIT的所在,也是斯托爾曼發(fā)動自由軟件運動的大本營。雷蒙德從小就跟隨父母在世界各地東奔西走,13歲之前已經(jīng)忘掉了兩種語言。1971年,他回到美國賓夕法尼亞州,1976年起開始接觸黑客文化,1982年完成第一個開放源代碼軟件項目。他是INTERCAL編程語言的主要創(chuàng)作者之一,曾經(jīng)為EMACS編輯器作出貢獻。雷蒙德還是著名的Fetchmail程序的作者。
1990年,他編輯了《新黑客字典》。從此對黑客文化著迷,成為黑客部落的歷史學家和黑客文化的學者,1996年寫成了《黑客道簡史》。之后陸續(xù)出版了《大教堂和市集》《如何成為一名黑客》《開拓智域》《魔法大鍋爐》等書,其中,《大教堂和市集》一書被譽為"黑客藏經(jīng)閣"的第一個收藏。
目前雷蒙管理著30多個開源軟件以及10多個主要的FAQ。成為著名的開放源代碼運動的主要理論家,以及開放源代碼促進會(Open Source Initiative)的主要創(chuàng)辦人之一。
【編輯推薦】