Herb Sutter談Dennis Ritchie

武衛東發表於2011-10-20

本文是Herb Sutter 2011年10月12日發表在其部落格上的。原文連結

多麼傷感的一週!

Rob Pike告訴我們Dennis Ritchie也去世了。Ritchie是電腦科學的先鋒之一,是一位名不虛傳的圖靈獎得主,他的成就很多,特別是發明了C語言,這是歷史上最有影響力的程式語言,今天仍然風頭正勁。

——(說起“風頭正勁”,本週也是ISO標準C語言里程碑的時刻。幾天前,新的C標準剛好通過了看來是最後一輪的投票表決,因此我們現在有了新的C11標準。C11包含了一些與C++11呼應的新特性,尤其是有了一個記憶體模型,和與C++11相應的執行緒/互斥鎖/原子性併發庫。新的C標準在接下來的幾周內會由ISO正式釋出。)

——(根據ISO的規則,新標準如果在倒數第二輪的投票中得到國際一致支援,就可以不必再經過最後一輪正式投票,而直接出版釋出。)

Bjarne Stroustrup雄辯地指出了Ritchie的貢獻對於我們專業領域的重要性,他說:“世人都說辦不到,而他卻做成了。”

讓我來解釋一下Bjarne的意思。

在C之前,硬體種類繁多,遠勝今日。各類計算機極盡誇張之能事,不僅各個指令集標新立異,而且幾乎所有方面都彼此不一,甚至連基本的字元位寬度和記憶體定址方式都不一樣。每個位元組8位不適合你嗎?那麼9位、7位,或者有時6位有時12位?你不喜歡16位指標?那麼18位指標如何?哦,順便說一聲它不是指向位元組的指標,而是指向字的指標。

那時沒有一種通用的程式,既可以在不同的硬體間移植,又能在效率上媲美為特定硬體編寫的定製程式碼。用Fortran寫陣列的數學運算程式還算不錯,但沒有人可以用它寫出通用的程式碼,去實現作業系統可以做的一切。

於是他這個狂妄小子挺身而出,決定發明一種語言,讓人們可以寫出這樣的程式:(a)具有資料結構和函式的高階程式;(b)可以移植到任何硬體;(c)在每類硬體上效率堪比不可移植的定製彙編程式碼。也就是說要發明一種高階的、可移植的、高效率的系統級程式語言。

真是異想天開。每個人都清楚,這不可能做到。

C就是這麼一個典型代表,說明了一定要讓那些知其不可為的人別去騷擾那些正在有所為的人。(而且閃開,不要妨礙這些發明家,他們絕不懈怠,自始至終在尋找並解決新問題,進而用世界上第一個可移植的高效程式語言,開發出了世界上第一個可移植的作業系統,而且從不認為這也是不可能的。)

謝謝你,Dennis。


相關文章

相關文章