Dennis Ritchie(紀念)

Ritchie簡介: 

        丹尼斯·麥卡利斯泰爾·裏奇Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日),出生於美國紐約。著名的美國計算機科學家,對C語言和其他編程語言、Multics和Unix等操作系統的發展做出了巨大貢獻。

        裏奇在哈佛大學學習物理學和應用數學畢業,1967年他進入貝爾實驗室,他曾是朗訊技術公司系統軟件研究部門的領導人(2007年退休)。1983年他與肯·湯普遜一起獲得了圖靈獎。理由是他們“研究發展了通用的操作系統理論,尤其是實現了UNIX操作系統”。1999年兩人爲發展C語言和Unix操作系統一起獲得了美國國家技術獎章。 

      丹尼斯·裏奇與肯·湯普遜兩人發展了C語言,同時發展了Unix操作系統,在電腦工業史上佔有重要的席位。至今爲止C語言在開發軟件和操作系統時依然是一個非常常用的電腦語言,它對許多現代的編程語言如C++、C#、Objective-C、Java和JavaScript擁有極大的影響。在操作系統方面Unix也具有極大的影響:今天市場上有許多不同的Unix方言如AIX、Solaris、Mac OS X和BSD等,以及與Unix非常相似的系統如Minix和非常普及的Linux操作系統。甚至其Microsoft Windows操作系統與Unix相競爭的微軟爲他們的用戶和開發者提供了與Unix相容的工具和C語言編譯器。

Ritchie專訪:

IEEE Spectrum:你同時發明了Unix和C,你更喜歡哪一個呢?

Dennis Ritchie:很顯然,C語言帶來了豐厚的利潤,由我和Brian Kernighan合著的《The C Programming Language》一書仍在出版和銷售。Unix正在不斷壯大,同時C語言至今仍在使用。從某種意義上,C語言更多出自我手,它由Ken發明的B語言發展而來,但卻經歷了很大的進化。雖然我曾和很多人談過此語言,但C語言所有的變化都歸根於我。但對於Unix的進化,很多人都做出了貢獻。

IEEE Spectrum:用你的話來說,“C語言既古怪又有缺陷,卻取得了巨大成功”,如果你有機會重新設計的話,它將會有什麼不同?

Dennis Ritchie:需要改很多小地方,但我不想逐一列出了。其中一些在標準化過程中已經改正。但是原設計中也有很多內在的一致性(注:指不太好改),比如,內部類型系統的運作方式。並不總是那麼易用。例如,Null結尾數組也就是字符串,是一個以Null結尾的字符數組。人們常常抱怨這種設計容易使人犯各種各樣的錯誤,要是改成字符串是個計數然後放字符之類的設計就好了。可事實上,語言的內部基本機制決定了字符串就是數組,沒有地方放計數,即使很容易犯錯。

IEEE Spectrum:Unix不僅延續了下來,還佔領了計算機世界。對於Unix的現代化身Linux,你如何看待?

Dennis Ritchie:我認爲它很成功。我不再評論它細微的變化。雖然它並沒有通過相同的方法獲得批准,也沒有遵循相同的標準,但我認爲從本質來說,Linux是Unix新的實現形式。所以從這個意見上說,它做得很好,並將做得更好,爲此我很高興。

IEEE Spectrum:你的網站上有一篇1976年寫的很難懂的備忘錄:“提議對Unix進行可移植性實驗”。它代表了把Unix當作一個更普遍的計算機平臺的新思考方式,或許甚至考慮把它當作操作系統,對你來說,它的意義很重要吧?

Dennis Ritchie:當時我們正在移值Unix,我不得不很艱辛地尋找其他任何系統在移值中的參考資料。我發現了一些,但他們卻沒起到任何作用。所以我和Steve Johnson在實現Unix的移植性上做出了特殊的貢獻。Ken對內核做了大量的修改,從而使實現移植性成爲可能,但他當時正打算離開,去澳大利亞公休,所以實際的移植性實現工作都是我和Steve做的。

IEEE Spectrum:到1970年代後期,AT&T已經擁有使互聯網誕生的一切要素。Unix及其所有工具和服務,比如電子郵件,都已經有了,運行CP/M的個人電腦也比較常見。AT&T還有ISDN技術——我們本來可以跳過調制解調器/窄帶網絡時代的,應該在1985年而不是1985年就出現萬維網(Web)了。你是否覺得錯失了一個大機遇?貝爾實驗室當時有人預見到世界的這一圖景嗎?

Dennis Ritchie: AT&T的思維定勢基本上是以連接爲中心的。長時間連接,就像電話那樣。分組交換對他們沒意義。AT&T在早期互聯網時代有太多機會被視而不見了。

IEEE Spectrum:Unix的最初目的是想作爲一個電話交換機的平臺,是嗎?

Dennis Ritchie:Ken最初的想法是計劃寫一個操作系統。他開始後,我也很早便加入了。除了做了一些新的、很酷的東西后,真正引導我們的是我們的“自私”——去開發一些可以使我們的生活變得更輕鬆的工具:“我喜歡用相應工具去做相應的事。對於一件很困難的事,我常思考我可以開發什麼樣的工具,讓它實現起來更簡單呢?”

IEEE Spectrum:後來你都開發了哪些諸如此類的工具呢?

Dennis Ritchie:有很多。比如Brian Kernighan開發的一種小語言。我們都喜歡排版和文檔——這是一種突發奇想,你可以寫一種語言去描述圖片、線條,然後用它來繪製圖表及有機分子圖。Unix使這一切都很簡單。

IEEE Spectrum:Unix實際應用裏你最喜歡哪個?

Dennis Ritchie:Kindle基於Linux,真酷啊。智能手機之類的也是。真讓人驚喜。

 

Ritchie教會我們:

首先:要對你所做的事有興趣。他們的初衷並非爲了掙錢,事實上剛開始是爲了省錢,或者將他們的遊戲裝到一個更省錢的機子裏邊。

第二:跳出舒適區工作非常有必要。Dennis Ritchie是一個物理學家和數學家,但是,他卻成了最具傳奇的程序員。很顯然,他的專業背景爲他研發出C語言或者UNIX起了很大幫助,正如Dennis Ritchie所言:Dennis Ritchie不懼工作在一個陌生的領域裏,如果丹尼斯花了數十年的時間在晦澀的數學上,或許UNIX就會胎死腹中。

第三:要有創新思維。Dennis Ritchie在貝爾實驗室是幸運的,那裏資金充足,不缺員工,他纔有條件與他得朋友按照自己的時間安排來研發他們想要的東西。

最後:要懂得分享。現在許多企業都喜歡保密,將自己的核心技術藏匿起來,但這在我看來都是不成功的,他們的思想與態度都是不利於公司發展的。

可以說現今世界上最重要的軟件是UNIX,之所以重要,是因爲它是開放的,任何人都可用。很多人可能會說開放就等於無利可圖,在我看來這樣的人最悲觀最愚蠢。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章