Herb Sutter談Dennis Ritchie
本文是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。
相關文章:
相關文章
- C語言之父Dennis Ritchie告訴你:如何成為世界上最好的程式設計師?C語言程式設計師
- printf("goodbye, Dennis");Go
- 談談近況,談談自由職業,談談“金飯碗”
- 談談PromisePromise
- 談談RaftRaft
- 談談 Web 安全Web
- 談談壓測
- 談談遞迴遞迴
- 談一談PromisePromise
- 談談創業創業
- 談一談 DDD
- 談談 Kubernetes Operator
- 談談LK社群
- 談談url、href、src
- 談談LruCache原始碼原始碼
- 談談字串翻轉字串
- 談談最近的思考
- 談一談元件化元件化
- 談談Java事務Java
- 精讀《談談 Web Workers》Web
- 談談 React 那些小事React
- 談一談javascript非同步JavaScript非同步
- 談談ThreadStatic屬性用法thread
- 談談Koa 中的next
- Netty系列(二):談談ByteBufNetty
- 老生常談之再談this
- 談談“認知升級”
- 談談JavaScript 的Navigator 物件JavaScript物件
- 談談刷題姿勢
- 談談JVM(基礎模型)JVM模型
- 談談程式碼重構
- 談談 JavaScript 的作用域JavaScript
- 簡單談談Cross Entropy LossROS
- 談談iOS獲取呼叫鏈iOS
- 談談拷貝這件小事
- 談談 Git 程式碼回滾Git
- 談談JavaScript編碼風格JavaScript
- 簡單談談DNS協議DNS協議
- 談談RxSwift和狀態管理Swift