作為開(kāi)放源碼促進(jìn)會(huì)的領(lǐng)袖人物,埃里克·雷蒙德一直在商界努力為老一代的Unix的程序員和越來(lái)越多的Linux的擁護(hù)者之間搭建一座橋梁。而且他的這一思想與他寫(xiě)的“新黑客字典”一書(shū)的內(nèi)容不謀而合,該書(shū)1991年出版,主要談到了因特網(wǎng)和黑客文化,至今仍具有濃厚的傳奇色彩。
最近埃里克·雷蒙德推出了他的一本新書(shū)“Unix編程的藝術(shù)”,書(shū)中涉及了編程文化的精華和使用Unix的一些思維過(guò)程。在近期為其新書(shū)做促銷(xiāo)的間隙,埃里克·雷蒙德接受了因特網(wǎng)新聞(internetnews.com)的采訪,就許多科技話題提出了他的看法。
問(wèn):過(guò)去十年里,程序員在上學(xué)期間接受的初步訓(xùn)練都是Windows,目前是不是同樣的狀況?或者學(xué)生們都在接受Linux的培訓(xùn)?
這兩種情況都存在。現(xiàn)在是個(gè)人計(jì)算機(jī)的世界,這是再明白不過(guò)的事實(shí)。在今天的孩子們看來(lái),所謂的微型機(jī)和大型計(jì)算機(jī)都似乎沒(méi)有存在過(guò)。
問(wèn):你認(rèn)為還有什么更加重要的發(fā)展趨向?
64位計(jì)算機(jī)的出現(xiàn)產(chǎn)生的影響出乎我?guī)啄昵暗念A(yù)料,而主要的原因是對(duì)地址空間的需求超出了我原來(lái)的估計(jì)。
問(wèn):可擴(kuò)展標(biāo)記語(yǔ)言(XML)目前在程序開(kāi)發(fā)者中間都非常流行,人們對(duì)XML的作用會(huì)不會(huì)存在一些誤解?
據(jù)我所知,有些人認(rèn)為XML具有一種神奇的功能,它可以解決數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)組織問(wèn)題,這是一個(gè)嚴(yán)重的誤解。事實(shí)上XML不可能有這樣的功能,因?yàn)樗鼉H僅是一個(gè)基本的syntax,只能解決一些低級(jí)問(wèn)題,比如如何連接記錄,寫(xiě)出在高層次上設(shè)計(jì)的結(jié)構(gòu)等。像文檔類型、數(shù)據(jù)庫(kù)方案,以及在不同的方案和文件類型之間傳送數(shù)據(jù)等一系列問(wèn)題都是XML自身所無(wú)法解決的。現(xiàn)實(shí)的世界多源的,一直是這樣,將來(lái)也會(huì)是這樣。
問(wèn):我們談一下XML的安全性能好嗎?
我認(rèn)識(shí)XML數(shù)字認(rèn)證組織的負(fù)責(zé)人。他很快將發(fā)布一個(gè)標(biāo)準(zhǔn),我們也將會(huì)擁有一種標(biāo)準(zhǔn)的、保證XML數(shù)據(jù)安全性的體系。因此我想在不遠(yuǎn)的將來(lái)數(shù)據(jù)安全性將有很大的進(jìn)展。
問(wèn):你對(duì)SOAP-即以XML為基礎(chǔ)的簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議有何看法?
事實(shí)上我認(rèn)為SOAP的作用并沒(méi)有宣傳的那么好,就如同C++和C之間的關(guān)系一樣。你也知道C++的功能要強(qiáng)大一些,但同樣它使得程序更為復(fù)雜了,因此它的效益并不好。我想SOAP跟XML-RPC(遠(yuǎn)端程序呼叫)之間也是同樣的關(guān)系。
通常有一種現(xiàn)象叫作第二系統(tǒng)綜合癥,也就是說(shuō)你第一次設(shè)計(jì)的系統(tǒng)可以完成80%的工作任務(wù),這個(gè)系統(tǒng)是相當(dāng)簡(jiǎn)潔的,但是為了完成另外20%的工作你往往就會(huì)重新設(shè)計(jì)第二個(gè)系統(tǒng),而這個(gè)系統(tǒng)本身將會(huì)是無(wú)比的復(fù)雜,以至于自身常常都會(huì)崩潰。
SOAP就是一個(gè)糟糕的第二套系統(tǒng)。我認(rèn)為SOAP并不可靠,因?yàn)樗陨磉^(guò)于復(fù)雜。人們只能有兩種選擇,要么決定XML RPC已經(jīng)完全足夠了,要么搞出一個(gè)第三套系統(tǒng)來(lái)。
問(wèn):談?wù)勀銓?duì)Java的看法?
我對(duì)Java并沒(méi)有更深的研究。大多程序員都使用Java,我卻使用Python,這兩種語(yǔ)言在功能上沒(méi)有太大的區(qū)別,因此我也沒(méi)有放棄Python而選擇Java。
問(wèn):談到scripting語(yǔ)言,不可避免還要涉及Python、Perl和PHP,你對(duì)此有何看法?
我認(rèn)為這些新一代的scripting語(yǔ)言非常容易上手,是功能強(qiáng)大的工具。它們并不能解決所有的問(wèn)題,但是他給你提供了一個(gè)尋找快速解決方案的途徑。這是難能可貴的,因?yàn)榕c傳統(tǒng)的編程語(yǔ)言之間的沖突是相當(dāng)嚴(yán)重的,你也無(wú)法嘗試所有的方案。
問(wèn):過(guò)去,Scripting語(yǔ)言一直排在分類語(yǔ)言的后面,因?yàn)镾cripting語(yǔ)言占據(jù)了大量的計(jì)算資源,現(xiàn)在是不是還是這種情況?
開(kāi)發(fā)工具的整個(gè)發(fā)展史也就是機(jī)器時(shí)間相對(duì)程序員的時(shí)間越來(lái)越變得廉價(jià)的歷史,換句話說(shuō),程序員的時(shí)間變得越來(lái)越昂貴,因此使低端的資源存儲(chǔ)和管理實(shí)現(xiàn)自動(dòng)化是非常有意義的。程序員可以集中精力攻克一些高端的任務(wù),這也可以說(shuō)是scripting語(yǔ)言的功勞。
問(wèn):還有一個(gè)相關(guān)的問(wèn)題:廉價(jià)計(jì)算資源的出現(xiàn)是否會(huì)對(duì)軟件業(yè)造成負(fù)面的影響?
我認(rèn)為廉價(jià)計(jì)算資源的出現(xiàn)并不會(huì)對(duì)軟件工程造成負(fù)面的影響。如果說(shuō)有影響的話,只是使簡(jiǎn)潔的軟件設(shè)計(jì)更加必要,因?yàn)閷?xiě)出大量代碼是相當(dāng)容易的。
從3萬(wàn)英尺的高度看各種語(yǔ)言在功能上的差距,你會(huì)發(fā)現(xiàn)Python和Perl之間是相當(dāng)接近的。你用其中一種語(yǔ)言實(shí)現(xiàn)的功能幾乎都可以利用另一種語(yǔ)言實(shí)現(xiàn)。而僅有的一點(diǎn)的差別就用Python來(lái)編寫(xiě)一些模糊的代碼相對(duì)比較困難。經(jīng)過(guò)六個(gè)月的實(shí)踐我發(fā)現(xiàn)Python語(yǔ)言較Perl更容易閱讀。我也確信,對(duì)于今天我們所進(jìn)行的大規(guī)模的項(xiàng)目來(lái)說(shuō),保持長(zhǎng)期的穩(wěn)定性可以說(shuō)是任何一種語(yǔ)言最有說(shuō)服力的功能。
問(wèn):特別是當(dāng)所有的維護(hù)工作都能輕易完成時(shí),對(duì)不對(duì)?
當(dāng)然,但我并不是說(shuō)這就是一個(gè)長(zhǎng)期的發(fā)展趨向,我想人們將會(huì)發(fā)現(xiàn)為此將付出越來(lái)越多的隱藏的成本。
問(wèn):以上是不是基于一種文化上的差異,或者因?yàn)槟阆M绦騿T可以在線相互交流?
兼而有之吧。