被遺忘的巨人,喬布斯也不過站在他的肩膀上而已
iPhone X的發布會被首次安排在喬布斯劇院,開場前預熱視頻也是喬布斯的聲音,此舉意為向喬布斯致敬。
「十年前,喬布斯發布了第一代iPhone,完全革新了手機;十年之後,在這樣一個場合、這樣一個時間點,蘋果同樣需要發布一款革新產業的產品。」
出場後僅僅說了兩句話,庫克就停下來清了清嗓子,用右手擦掉眼角的淚水。
當史上最貴的iPhone發布,人們致敬緬懷喬幫主之時,不禁再次想到了另一個被人們遺忘的巨人。
丹尼斯·里奇(Dennis Ritchie),一個很少有人知道的傻傻的老頭,也是在2011年10月逝世,和喬布斯離開的時間只相差了幾天。
不同的是,一個被媒體捧上神壇,一個是被遺忘的巨人。
丹尼斯·里奇,C語言之父,Unix和C語言的發明人,圖靈獎獲得者,今天幾乎所有的IT產品都是基於丹尼斯先生的成就誕生的。
「他的名字根本不是一個家喻戶曉的名字,但是如果你有一台顯微鏡,可以看電腦,你會看到他的工作到處都是。「
——Paul E. Ceruzzi,計算機史學家
蘋果,微軟,Windows,Android,iOS,JavaScript,C …今天我們熟悉的IT技術和軟體不過都是站在里奇這個巨人的肩膀上而已。
貝爾實驗室走出的C語言之父
里奇出生於1941年9月9日,他的父親Alistair Ritchie曾是貝爾實驗室的交換系統工程師。里奇高中畢業後,1963年獲哈佛大學物理與應用數學學士學位,1968年獲哈佛大學數學博士學位。
1967年里奇進入貝爾實驗室,就職于貝爾實驗室計算科學研究中心——-當時世界上最著名的數字創新中心之一,晶體管的發源地。
在貝爾實驗室,里奇參與了貝爾實驗室Multics操作系統開發。在這裡,里奇遇見了肯·湯普森,後來他成為里奇的主要合作者之一。
後來貝爾實驗室放棄了Multics計劃,但里奇和肯·湯普森並未放棄合作,他們找到了一台PDP-7機器,從頭開始開發應用程序和操作系統,並於1969年成功開發出UNIX操作系統。
上世紀70年代,計算機硬體並沒有統一的標準,花樣百出,軟體開發者們不得不花很多精力和時間為每一個新平台創建新的軟體。
原始的UNIX內核是用彙編語言編寫的,但是里奇和湯普森覺得需要一個更高級別的語言,以便更好地控制跨操作系統的所有數據。
他們採用了BCPL(Basic Combined Programming Language)語言,並繼續對BCPL進行了修改,還為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。
他們用B語言寫了第一個UNIX操作系統。
不過,1973年,這個B語言又被給「煮」了。里奇在B語言的基礎上最終設計出了一種新的語言,並BCPL的第二個字母作為這種語言的名字,這就是C語言。
C語言通過添加新的數據類型和句法升級了B語言。不同的是,B語言是一種編譯型語言,需要由中間代碼執行才能運行於CPU,而C語言可直接在CPU上執行。
C語言能夠輕鬆、快速地在不同的硬體之間移動,用C語言編寫的軟體運行於任何可運行C語言的設備時,幾乎不做任何修改。
C語言極具模塊化和結構化特點,且由於C語言可以輕鬆的運行於不同的電腦,程序員可以將整個代碼複製到自己的軟體中,無需從頭開始,從而實現起來更加方便快捷。
里奇和肯·湯普森重新用C語言編寫了UNIX操作系統。
▲里奇和肯·湯普森解釋UNIX操作系統
直到今天,C語言成為廣泛使用的編程語言,從90年代如日中天的Sun MicroSystems,到今天蘋果帝國的所有產品操作系統,都是源於UNIX和C語言。如果你用的不是蘋果,安卓系統也是。
UNIX本質上是一個簡單的操作系統,但你必須是一個了解簡單的天才。
—丹尼斯·里奇
了解簡單的天才
1954年,電氣工程師阿利斯泰爾·里奇(Alistair E. Ritchie),決定舉家從紐約州的布朗克斯維爾(Bronxville),搬到幾十公里以外的新澤西。這樣可以離他的工作單位"貝爾實驗室"更近一些。
13歲的丹尼斯·里奇(Dennis Ritchie),就這樣隨著父親一起來到新澤西。那時,誰也沒有想到,這個文靜的少年將在這裡待上一輩子,並且創造出改變世界的發明。
中學畢業後,丹尼斯·里奇聽從父親的建議,進入哈佛大學學習應用數學,直到拿到博士學位。他的第一份工作,是為軍方研製核武器,這並不符合他的志趣。1967年,通過父親介紹,26歲的他進入貝爾實驗室,從事剛剛興起的計算機研究。從此,他在新澤西老家一住就是44年,直到去世。
他在貝爾實驗室的第一個任務,是參與大項目Multics,即開發一個前所未有的、可以多人使用的、同時運行多個程序的操作系統。該項目由貝爾實驗室、麻省理工學院和通用電氣公司三方聯合研製,但是由於設計過於複雜,遲遲拿不出成果,1969年貝爾實驗室宣布退出。
第一個任務這樣無果而終,丹尼斯·里奇很不甘,但也無能為力。誰知過完了夏天,比他小兩歲的同事肯·湯普森(Ken Thompson)找上門,說借鑒Multics的設計思路,做了一個個人項目Unix,問他有沒有興趣一起參與。丹尼斯·里奇立刻表示同意,於是兩人一起投入Unix的開發。肯·湯普森的專業是電子工程,丹尼斯·里奇專業是應用數學,正好互補。經過日以繼夜的工作,1969年聖誕節前,Unix已經可以初步運行了。
吸取了Multics設計複雜而導致失敗的教訓,丹尼斯·里奇將Unix的設計原則定為"保持簡單和直接"(Keep it simple stupid),也就是後來著名的KISS原則。為了做到這一點,Unix由許多小程序組成,每個小程序只能完成一個功能,任何複雜的操作都必須分解成一些基本步驟,由這些小程序逐一完成,再組合起來得到最終結果。
表面上看,這樣的設計很低效:為了取得結果,你必須運行一連串小程序,那麼為什麼不用一個大程序一次運行就得到結果呢?但是事實證明,由於小程序之間可以像積木一樣自由組合,所以非常靈活,能夠輕易完成大量意想不到的任務。而且,計算機硬體的升級速度非常快,所以性能也不是一個問題。另一方面,開發單一目的的小程序,要比開發大型程序容易得多,所以Unix才有可能在短短几個月內問世。
Unix迅速在程序員中流傳,到了80年代,已經成為主流操作系統,演變成整個軟體工業的基礎,當代最主要的操作系統----Windows、MacOS和Linux----都與Unix有關。由此可見,丹尼斯·里奇的"保持簡單"原則,對計算機時代的影響有多大。
丹尼斯·里奇對世界的貢獻還不止於此。Unix最早是用不通用的機器語言編寫的,如果換一個型號的計算機,就必須重新編寫一遍。為了提高通用性和開發效率,丹尼斯·里奇決定發明一種新的計算機語言----C語言。
C語言也貫徹了"保持簡單"的原則,語法非常簡潔,對使用者的限制很少。丹尼斯·里奇編寫的教材《C編程語言》總共只有100多頁,薄得難以置信。很多人都被它的簡潔性吸引,學習並使用C語言。直到今天,C語言依然是世界上最重要的編程語言之一,"保持簡單"原則顯示了強大的生命力。
Keep it simple stupid
儘管功成名就,但是就像他的工程設計思想,丹尼斯·里奇在個人生活上也盡量"保持簡單"。他依然住在新澤西,低調地生活,不太在媒體上曝光,終身沒有結婚。
他也始終沒有跳槽,一直在貝爾實驗室工作,儘管後者多次分拆,到了最後已經名存實亡。2001年,接手貝爾實驗室的朗訊公司,決定關閉大多數實驗室,許多研究人員紛紛離開,包括Unix發明者之一的肯·湯普森都去了Google,但是丹尼斯·里奇哪裡也沒去,還是留了下來。2006年12月1日,貝爾實驗室被整體賣給了法國阿爾卡特公司,第二年他就選擇退休了。
退休以後,他過上了隱居生活,外界幾乎忘了他的存在。2011年10月12日,共事20年的同事Rob Pike從加州到新澤西去拜訪他,才發現他已經去世了。由於是獨居,無法知道準確的死亡時間。據他的兄弟透露,這幾年丹尼斯·里奇的健康狀況一直不好,他患有前列腺癌和心臟病。
Rob Pike在Google Plus發了一條簡短的消息,"據我所知,Unix和C語言發明人丹尼斯·里奇已經去世",外界才知道這件事,引發了紀念浪潮。雖然這個過程有點令人傷感,但是必須說,這很符合他的"保持簡單"的原則。
▲1999年4月,柯林頓總統為里奇頒發美國國家科技獎,以表彰他發明UNIX操作系統和C編程語言。
提供肩膀的巨人
羅伯是里奇的同事,二人在貝爾實驗室共事20年。羅伯說:
當喬布斯去世時,享受到了聲勢浩大的追思。相形之下,里奇先生對當代科技進程做出了更大的貢獻,可公眾甚至不知道他是誰,這十分不公平。
網路已經成為當代生活不可或缺的一部分。然而,缺少了里奇所創造的 C 語言和 UNIX ,網路和任何網路產品都不可能存在。比如,瀏覽器是用 C 語言寫的,網路伺服器是C語言寫的,很多人反駁說他們所使用的是 JAVA 或者 C ,但它們也是 C 語言的衍生物。包括網頁架構時的 Python 和 Ruby 兩種程序語言,也是基於 C 語言的。除此而外,所有的網路硬體產品都是 C 語言所編寫的,而 UNIX 是整個網際網路所運行的基礎。由此可見,我們怎樣評價里奇先生的豐功偉績,都不足為過。甚至Windows 也曾經用C 語言寫過,蘋果公司用於個人電腦、iPad和iPhone上的操作系統,都是基於UNIX的。
麻省理工大學計算機系的馬丁教授評價說:
如果說,喬布斯是可視化產品中的國王,那麼里奇就是不可見王國中的君主。喬布斯的貢獻在於,他如此了解用戶的需求和渴求,以至於創造出了讓當代人樂不思蜀的科技產品。然而,卻是里奇先生為這些產品提供了最核心的部件,人們看不到這些部件,卻每天都在使用著。
里奇是一個非常低調地科研工作者。和喬布斯力圖形成壟斷的個人主義截然不同,里奇一直希望自己的工作能夠為更多的科研工作者所用,能夠為他人日後的科研工作和科技進展提供便利。
克尼漢評價道:
牛頓說他是站在巨人的肩膀上,如今,我們都站在里奇的肩膀上。
這句話,應該是對丹尼斯·里奇先生的一生最有力也是最中肯的評價。
推薦閱讀:
※十條笑話:喬布斯已經下去教了,你還瞎操心什麼呀?
※羅永浩和羅振宇,喬布斯和安蘭德
※紐約時報:巨頭喬布斯坐擁巨額財富卻在慈善領域缺位(圖)