他目前就讀於西班牙的 Polytechnic University of Valence, 主修計算機科學。他多數的時間都待在這裡。
自五年前一開始使用 Linux ,他就熱愛 Linux﹝以及一般的 Unix*﹞。他也熱愛所有與電腦架構相關的事物。除了電腦之外,他喜歡聽音樂,到劇院,玩滑雪板。
這是一篇訪問 Dennis M. Ritchie 的紀錄。他是 C 和 Unix 作業系統的創始人之一。
有一些人因為改變歷史而出名,有一些人是因為創造了歷史。Dennis Richie 是屬於後者。當我們多數的人還在學習走路的時候,他已經發展了 C 語言,這是使用最廣泛的程式語言。這個貢獻對人類的重要性是無庸置疑的。
然而他並不以此為滿。 Dennis Richie 和 Ken Thompson 更發展了 Unix 作業系統,一個最著名的作業系統。沒錯,他創造了 Unix。
至今,他從未停止有關電腦及作業系統方面的工作。Plan 9 和 Inferno 就是在他的領導下,由一群研究人員發展出來的。
他的工作被許多電腦組織所推崇:ACM award for the outstanding paper of 1974 in systems and language;IEEE Emmanuel Piore Award (1982),Bell Laboratories Fellow (1983);Association for Computing Machinery Turing Award (1983);C&C Foundation award of NEC (1989);IEEE Hamming Medal (1990)等。
目前,Dennis M. Ritchie 主管系統軟體研究 (System Software Research) 部門,這個單位屬於 Bell 實驗室 (Bell Labs) 位於紐澤西州 Murray Hill 的計算機科學研究中心 (Computing Science Research Center)。
記者:您是全球眾多 C 程式設計師, UNIX 愛好者和一些其他的人心目中的偶像,就好像小孩子想變成超人一樣。被成千上萬的 Unix 和 C 程式設計師所崇拜,您感覺如何?今天,我們完全無法想像如果沒有 UNIX 或 C 會是何種情景。當您完成了 C 並著手於 UNIX 時,您可曾料到它們會是電腦界的“未來”?
Dennis:經常有人問到這兩個類似的問題。顯然的,我的同事和我所得到的獎勵和感激,是非常令人高興的。我們也深深感覺到,由於我們的協助,已經創造了一些確實有價值的東西。然而,在事前我們並不指望這會是“未來”,我們甚至沒有預期到這件工作對未來長遠的影響。起初,這件工作起始的精神是“咱們來建造一些有用的東西”,同時也著手協助別人的參與。有一點我們應牢記在心,雖然整個 Unix 和 C (或 C++) 的領域是舉足輕重的,整體電腦科技及真實的產物卻是一個更龐大的世界。這一個事實,存在於研究程式語言的學術界,也存在於巨額的軟體業之中。
記者:假設 UNIX 代表了過去和現在的作業系統,毫無疑問的 C 應當被認為是最重要的程式語言,即使與過去幾年來所出現的物件導向語言相比。您對 C++ 及 Java,還有 C 語言和 C++ 語言經常引起的爭議,有何看法?
C 被視為是一種可攜性的 組合語言﹝這一點,褒貶 互見﹞,而 C++ 試著提高 它的層次,讓它成為更抽 象的物件導向語言。 |
Dennis:C 給予 C++ 很大的便利,一方面因為在 C++ 成長之前,C 已被廣泛接受;另一方面,C++ 可以利用 C 作為新語言的藍圖,也可以利用 C 製造編譯器﹝compiler﹞。C 被視為是一種可攜性的組合語言﹝這一點,褒貶互見﹞,而 C++ 試著提高它的層次,讓它成為更抽象的物件導向語言。以最近冒出來的標準來看,似乎這兩者的通病都是太花俏了,而且累積了小零件。對於想了解哪些才是真正有需要的,這兩者的都有一點獨斷獨行。很明顯的,Java 是 C++ 的後裔,去除了一些繼承自 C 有關 pointers 的遺留物,再加上不拘平台物件檔案﹝machine-independent object file﹞的點子,這雖然不是新點子,不過現在來說可能真的可行了。由於現在混入 Sun 與微軟的策略之爭,很難猜的出 Java 何去何從。再說,它也有著花俏的毛病。
記者:現在談一個假設性的問題:以今日的觀點再加上這許多年 C 的經驗,如果要您重新設計 C,會有什麼不同的結果嗎?
Dennis :即使時間有限,也要設法堅持早就在 ANSI/ISO 中的標準:必須完整宣告功能參數﹝function arguments﹞的型態﹝type﹞,也就是 1989 C 標準中所稱的 function prototypes。也有很多小細節愈弄愈糟。比方說,“static”一字有許多用途,就讓人混淆不清。有關語言中宣告﹝declaration﹞的語法﹝syntax),是我仍然不確定的一點。在做宣告的時候,其語法是模擬該變數被使用時的形式。這是爭議極多的一點,雖然它擁有一些邏輯基礎。
記者:C 已經是一種基礎完備、定義完整的語言,而作業系統仍在繼續演進中。隨著硬體變得更快更便宜,新的想法不斷成型。未來在 OS 的設計基礎上,關鍵性的課題是什麼?尤其是您對 micro-nano-kernels 及 monlithic 兩種設計的主張是什麼?
Dennis:以這種方式來談,這實在不是一個有趣的問題。在 Unix ﹝含 Linux﹞,Plan 9,Inferno 一系列中,我強力主張,應用程式取得資源的環境,應提供結構化、通用名稱的空間和機構。我的看法是,所謂 micro-kernels 或 nano-kernels 的觀念在實質的用途上並沒有其重要性,至少在做為一般用途的系統基礎方面。實際上似乎會發生的是,micro-kernel 會變成專用於架構於其上的 macro-system。它可能會是一種使用於系統內部結構的有效工具,但是他不會單獨存在。當然在這個複雜的環境中,一個非常小的作業系統可以用於小型的、家電型的設備,而不是一般用途的設備,像桌上型或大型主機。
記者:到目前為止,UNIX 可以說是一個歷史悠久的作業系統。從發展到現在,這許多年來,在網路、硬體、服務及應用程式各方面的功能和需求,都有著極大的演進。針對使用者現在和未來的需求,UNIX 有哪些限制或不足的地方?
Dennis: 以基本的系統 API("system calls") 來說,我看不出有任何基礎上或技術上的缺失。然而,有很多商業和政策上的問題,存在於不同的 Unix 廠商之間,也存在於所謂免費﹝free﹞的 Unix,包括 Linux 及 *BSD。
記者:近來,有很多人關心即將來臨的公元兩千年,也關心著名的千禧蟲﹝Y2K bug﹞可能托垮整個網際網路。您覺得這一些專家們所做的預測有任何值得信賴的基礎嗎?
Dennis :老實講,我對這一點沒有什麼高明的看法。我不會在 1999 年 12 月 31 日 23 點 59 分搭乘飛機。這可能跟 Y2K 一點關係都沒有,因為我這輩子在新年的時候就從來沒有接近過一架飛機。
記者:如果我們不提一下您目前正在著手的作業系統 Inferno,這一段訪問就不算完整了。發展一種全新的作業系統以及專屬的程式語言 Limbo,最主要的理由是什麼呢?何況已經有了 Java VM/Java 的組合,為什麼要 Inferno/Limbo?換句話說,Inferno 能提供哪些 Java 的不足?
Dennis:Inferno 是接續 Phil Winterbottom 和 Rob Pike 的工作,在 Java 流行於公開的設備前就開始了。Java 確實有一個先期的產品,內部稱為 Oak。當 Inferno 開始萌芽的時候,沒有任何理由讓人相信會造成目前的現象。等到我們知道有 Java 時,它還沒有完全成型。這實在是一個很奇特的巧合,Sun 和我們一起發揚這項技術理念,就是一種語言在可攜性的虛擬機器﹝portable virtual machine﹞上執行。此外,從一開始,以 OS 的技術來說,Inferno 是一個有趣的主意;一種語言和 OS 能在陽春的、便宜的、精簡的機器上工作,同時在 Windows,Unix,Linux 上當成應用程式時能表現一致。在此同時,我們必須承認 Sun 在活力無窮的 WWW 及瀏覽器市場上表現較佳。
記者:以我們看來,Limbo 這個程式語言的未來,有賴於 Inferno 這種作業系統的擴展和流行。將 Limbo 用在別種作業系統下有沒有意義呢?或者這麼問,它的設計和目標是否太依賴 Inferno?
Dennis:技術上來說,Limbo 並不是特別的依賴 Inferno。而實質上,是有依賴性的,因為所有新的語言必須依賴所要使用的環境。
LF:回顧您在 Bell 實驗室的經歷,看來您一直從事於您所真正喜歡的專案上。我猜想對 Inferno 亦然。您一定非常喜愛 UNIX 和 C 的設計工作,沒錯吧?
Dennis:我確實非常喜愛在 Bell 實驗室的事業,而且會持續下去。
LF:我無法避免將您跟所有目前免費工作於非營利專案的人做比較。這些人免費工作,只因為他們喜歡。當然,我相信如果有人願意為這些本來免費的工作付錢,他們也不會拒絕的。 如果您不在 Bell 實驗室工作,您有可能參與像 Linux 這一類的計劃嗎?像您這樣,在研發實驗室內有著多年實際經驗的人,對這些人有何看法?由於我們雜誌的對象主要是 Linux 使用者,我們不該忘了問您一些 Linux 的問題。首先,您對 Linux 這些動力的看法如何?很多公司也決定為它發展軟體,像 Bell 實驗室將 Inferno 移植到 Linux,您的看法又如何?
Dennis:讓我一併回答這些問題。我認為 Linux 的現象是非常可喜的,因為它主要是由 Unix 延伸出來的。Linux 看來是所有直接自 Unix 延伸出的產品中最健康的,雖然有著各種 BSD 系統,以及由工作站和大型電腦廠商所推出的正式版本。當然我也注意到,由 Unix 演變出所謂“免費程式碼”﹝free-source﹞的世界,似乎也步入了像商業世界所發生的分裂和爭執。
LF:有關 Linux 的大問題。 您用過 Linux 嗎?如果有的話,您有何看法?
我非常讚佩 Linux 的成長和氣勢。 |
Dennis:恐怕我必須承認,我沒有真正的使用過它,我的意思是沒有每天依賴它做我的電腦工作。我的電腦世界中包括一個奇特版本的 Plan 9,Windows 及 Inferno。我非常讚佩 Linux 的成長和氣勢。偶爾也有人問我類似的問題。不過他們提問題的方法,好像是希望我會對 Linux 或著名公司所發行各種品牌的 Unix表示忌妒或不滿。其實不然,我覺得這兩者都是延續著我們﹝Ken 和我,還有一些其他的人﹞許多年來的理念 。
記者:談談微軟吧•••您對這個公司目前獨占桌上型電腦的情形,有何看法?在過去的科幻片裡面,預測我們日常生活的各方面,都被統馭整個世界的巨型電腦來管理。而目前的現實生活顯示出另外一種景象。從各方面看來,電腦充其量不過是個簡單的家電。像您這樣,一位發展了為程式設計師著想的作業系統,一位活在科幻世界裡,一未能預知電腦現狀的人,您如何想像電腦的未來呢?Inferno 和 Unix 在未來又扮演著什麼角色呢?
Dennis:這是兩個問題。微軟確實對桌上型電腦的領域有著某種程度的獨占,然而在這不是唯一有趣的電腦領域。像 Linux 這種不同的軟體供應方式;一些沒有像 Windows 或瀏覽器之戰經常出現媒體的小東西﹝如高效能電腦,高可靠度的電腦,超小型電腦﹞,這兩者在未來都有一席之地。我相信 Linux 和 Inferno 都會蓬勃發展。