歷史上的牛人們

轉自:http://wiki.woodpecker.org.cn/moin/GreatHackers


目錄

  1. 歷 史上的牛人們
    1. CODERS at WORK
      1. 八 卦 CODERS
    2. 我 心目中的編程高手
      1. Bill Joy
      2. John Carmack
      3. David Cutler
      4. Donald E. Knuth
      5. Ken Thompson
      6. Rob Pike
      7. Dennis M. Ritchie
      8. Edsger Wybe Dijkstra
      9. Anders Hejlsberg

程序員應該瞭解和嚮往的 牛人們!

 

CODERS at WORK

如果你是程序員,可以看看 自己知道下面多少人,如果沒有他們,我們就沒有今天的it文明。

詳細

 

八卦 CODERS

[email protected] 一點我知道的8卦:

  • 35 的學生;34715 等共同寫JAVA的 spec

  • 540 的朋友;

  • 40bill xu 的朋友;

  • 俺託 bill xu40 找http://www.codersatwork.com/coder/Gerald%20Jay%20Sussman.html 5]+38 的 書,再力請簽名一個。 :)

  • 28 的書很好看,可下載。

  • 可從ZEUUX 買 到125 設計的 圖標的t恤

  • 204 也在 sun

    繼續8卦呀。。。
ZoomQuiet

 

我心目中的編程高手

-- Bill Joy MIT BBS上說微軟電話面試的一道題就是“Who do you think is the best coder, and why?”。我覺得挺有意思的,也來湊個熱鬧。排名不分先後。

 

Bill Joy

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Joy.Colloquium.png 前任Sun的首席科學家,當年在Berkeley時主持開發了最 早版本的BSD。他還是vi和csh的作者。

當然,Csh Programming Considered Harmful 是另一個話題樂。據說他想看看自己能不能寫個操作系統,就在三天裏寫了個自己的Unix, 也就是BSD的前身。當然是傳說了,但足見他的功力。

另一個傳說是,1980年初的時候,DARPA讓BBN在Berkley Unix里加上BBN開發的TCP/IP代碼。但當時還是研究生的B伯伯怒了,拒絕把BBN TCP/IP加入BSD,因爲他覺得BBN的TCP/IP寫得不好。於是B伯伯出手了,端的是一箭封喉,很快就寫出了高性能的伯克利版TCP/IP。當時 BBN和DARPA簽了鉅額合同開發TCP/IP Stack,誰知他們的代碼還不如一個研究生的好。

於是他們開會。只見當時B伯伯穿個T-shirt出現在會議室(當時穿T-shirt不象現在,還是相當散漫的哈)。只 見BBN問:你怎麼寫出來的?而B伯伯答:簡單,你讀協議,然後編程就行了。

最令偶暈倒的是,B伯伯碩士 畢業後決定到工業界發展,於是就到了當時只有一間辦公室的Sun, 然後他就把Sparc設計出來樂... 象這種軟硬通吃的牛人,想不佩服都不行的說。

據Bill Joy的同事說,一般開會的時候B伯伯總是拿一堆雜誌漫不經心地讀。但往往在關鍵之處,B伯伯發言,直切要害,提出漂亮的構想,讓同事們徹底崩潰。對了, 他還是Java Spec和JINI的主要作者之一。

 

John Carmack

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/John.Carmack.png ,ID Software的founder和Lead Programmer。上個月和一個搞圖形的師兄聊天,他竟然不知道John Carmack, 也讓偶大大地暈了一把。不過也許搞研究的和搞實戰的多少有些隔吧。想必喜歡第一人稱射擊遊戲的都知道J哥哥。

90年代初只要能在PC上搞個小動畫都能讓人驚歎一番的時候,J哥哥就推出了石破天驚的Castle Wolfstein, 然後再接再勵,doom, doomII, Quake...每次都把3-D技術推到極致。J哥哥的簡歷上說自己的專長是"Exhaust 3-D technology",真是牛人之言不我欺的說。做J哥哥這樣的人是很幸福的,因爲各大圖形卡廠家一有了新產品就要向他“進貢”,不然如果他的遊戲不支 持哪種卡,哪種卡基本就會夭折樂。

當初MS的Direct3D也 得聽取他的意見,修改了不少API。當然,J哥哥在結婚前十數年如一日地每天編程14小時以上,也是偶們凡人望塵莫及的。對了,J哥哥高中肆業(?!), 可以說是自學成才。不過呢,誰要用這個例子來爲自己學習不好辯護,就大錯特錯了。那Leonardo Da Vinci還是自學成才呢(人是私生子,不能上學)。

普通人和天才還是有區別的。 對了,其實偶們叫“達分奇”是相當不對的,因爲Vinci是地名,而Da Vinci就是從Vinci來的人的意思。換句話說,Leonardo Da Vinci就是“從Vinci來的Leonardo”的意思。叫別人“Da Vinci”就不知所謂樂。嗯,扯遠了,打住。

 

David Cutler

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/David.Cutler.png

  • ,VMS和Windows NT的首席設計師,去微軟前號稱硅谷最牛的kernel開發員。

當初他和他的手 下在微軟一週內把一個具備基本功能的bootable kernel寫出來,然後說:"who can't write an OS in a week?",也是牛氣沖天的說。

順便說一句,D爺爺到 NT3.5時,管理1500名開發員,自己還兼做設計和編程,不改coder本色啊。D爺爺天生脾氣火爆,和人爭論時喜歡雙手猛擊桌子以壯聲勢。:-) 日常交談F-word不離口。

他面試祕書時必問:"what do you think of the word 'FUCK'?",讓無數美女剎羽而歸。終於有一天,一個同樣火爆的女面對這個問題脫口而出:"That's my favorite word"。於是她被錄取樂,爲D爺爺工作到NT3.5發佈。

 

Donald E. Knuth

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Donald.E.Knuth.png

  • 高爺爺其實用不着偶多說。學編程的不知道他就好像學物理的不知道牛頓,學數學的不知道歐 拉,學音樂的不知道莫扎特,學Delphi的不知到Anders Hejlsberg,或者學Linux不知道Linus Torvalds一樣,不可原諒啊。:-) 爲了讓文章完整,就再羅唆幾句吧。高爺爺本科時就開始給行行色色的公司寫各種稀奇古怪的編譯器掙外快了。

他賣給別人時收一兩千美元,那些公司拿了code,加工一下賣出去就是上萬上十萬。不過也沒見高爺爺不爽過,學者本色 的說。想想那可是60年代初啊,高爺爺寫編譯器寫多了,順帶就搞出了個Attribute Grammar和LR(k),大大地造福後人啊。至於高爺爺在CalTech 的 編程比賽(有Alan Kay得衆多高高手參加)總是第一,寫的Tex到86年就code freeze,還附帶2^n美分獎勵等等都是耳熟能詳,偶就不饒舌樂。順便說一下,高老大爺是無可爭議的寫作高手。

他給Concrete Mathematics寫的前言可謂字字鏗鏘,堪爲前言的典範。他的技術文章也是一絕,文風細緻,解釋精當,而且沒有學究氣,不失輕快跳脫。記得幾年前讀 Concrete Mathematics,時不時開懷大笑,讓老媽極其鬱悶,覺得我nerdy到家,不可救藥。

其實呢,子非魚,安知魚之樂,更不知那完全是高爺爺的功勞。說到寫作高手,不能不提Stephen A. Cook。他的文章當年就被我們的寫作老師極力推薦,號稱典雅文風的樣本。庫爺爺一頭銀髮,身材頎長,總是面帶謙和的微笑,頗有仙風道骨,正好和他的仙文 相配的說。

高爺爺其實還是開源運動的先驅。雖然他沒有象Richard Stallman那樣八方奔走,但他捐獻了好多作品,都可以在網上看到,比如著名的Mathematical Writing,MMIXWare,The Tex Book等,更不用說足以讓他流芳百世的Tex樂。

 

Ken Thompson

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Ken.Thompson.png ,C語言前身B語言的作者,Unix的發明人之一(另一個是Dennis M. Riche老大,被尊爲DMR),Belle(一個厲害的國際象棋程序)的作者之一,操作系統Plan 9的主要作者(另一個是大牛人Rob Pike, 前不久被google挖走了)。Ken爺爺也算是計算機歷史上開天闢地的人物了。

1969年還是計算機史前時代,普通人都認爲只有大型機才能運行通用的操作系統,小型機只有高山仰止的份兒。至於用高級 語言來寫操作系統,更是笑談。

Ken爺爺自然不是池中物,於 是他和DMR怒了,在1969年到1970間用匯編在PDP-7上寫出了UNIX的第一個版本。他們並不知道,一場轟轟烈烈的UNIX傳奇由此拉開了序 幕。

Ken爺爺在1971年又把Unix用C重寫,於是C在隨後 20年成就了不知多少豪傑的夢想和光榮。Ken爺爺還有段佳話:裝了UNIX的PDP-11最早被安裝在Bell Lab裏供大家日常使用。很快大家就發現Ken爺爺總能進入他們的帳戶,獲得最高權限。Bell Lab裏的科學家都心比天高,當然被搞得鬱悶無比。於是有高手怒了,跳出來分析了UNIX代碼,找到後門,修改代碼,然後重新編譯了整個UNIX。

就在大家都以爲“這個世界清淨了”的時候,他們發現Ken爺爺還是輕而易舉地拿到他們的帳戶權限,百思不解後,只好繼 續鬱悶。

誰知道這一鬱悶,就鬱悶了14年,直到Ken爺爺道出箇中緣 由。原來,代碼裏的確有後門,但後門不在Unix代碼裏,而在編譯Unix代碼的C編譯器裏。每次C編譯器編譯UNIX的代碼,就自動生成後門代碼。而整 個Bell Lab的人,都是用Ken爺爺的C編譯器。

 

Rob Pike

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Rob.Pike.png , AT&T Bell Lab前Member of Technical Staff,現在google研究操作系統。羅伯伯是Unix的先驅,是貝爾實驗室最早和Ken Thompson以及Dennis M. Ritche開發Unix的猛人,UTF-8的設計人。

他還在美國名嘴David Letterman的晚間節目上露了一小臉,一臉憨厚地幫一胖子吹牛搞怪。讓偶佩服不已的是,羅伯伯還是1980年奧運會射箭的銀牌得主。他也是個頗爲厲 害的業餘天文學家,設計的珈瑪射線望遠鏡差點被NASA用在航天飛機上。他還是兩本經典,The Unix Programming Environment 和 The Practice of Programming 的作者之一。

如果初學者想在編程方面精益求精,實在該好好讀讀這兩本書。它們都有中文版的說。羅伯伯還寫出了Unix下第一個基於位 圖的窗口系統,並且是著名的blit終端的作者。當然了,羅伯伯還是號稱銳意革新的操作系統,Plan9,的主要作者。可惜的是,Plan9並沒有引起多 少人的注意。

羅伯伯一怒之下,寫出了振聾發聵的雄文 Systems Software Research is Irrelevant 1 ,痛斥當下系統開發不思進取,固步自封的弊病。雖然這篇文章是羅伯伯含忿出手,頗有偏激之詞,但確實道出了系統開發的無奈:開發週期越來越長,代價越來越 大,用戶被統一到少數幾個系統上,結果越來越多的活動是測量和修補,而真正的革新越來越少。

就在羅伯伯鬱悶之極的時候,google登門求賢來樂。如果說現在還有一家大衆公司在不遺餘力地把系統開發推向極致的 話,也就是google樂。隨便看看google的成果就知道了。

具有超強容錯和負載平衡能 力的分佈式文件系統GFS(現在能夠用100,000臺廉價PC搭起一個巨型分佈系統,並且高效便宜地進行管理的系統也不多哈),大規模機器學習系統(拼 寫檢查,廣告匹配,拼音搜尋。。。哪個都很牛的說),更不用說處理海量並行計算的各式google服務了。

Rob在System Software Research is Irrelevant裏蕭瑟地說現在沒有人再關心繫統研究的前沿成果了。想不到他錯了,因爲google關心。google網絡了大批功成名就的牛人,還 有大量初生牛犢般博士做開發,顯然不是沒事耍酷,而是因爲它們的開發總是試圖吸取系統研究的最新成果。想必Rob Pike在google很幸福。願他做出更棒的系統。

 

Dennis M. Ritchie

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Dennis.M.Ritchie.png 既然Ken Thompson是我的偶像,新聞組上人稱DMR的Dennis M. Ritchie自然也是,畢竟兩人共同締造了UNIX,而Dennis幾乎獨力把C搞大(當然,C的前身是B,而B是Ken Thompson一手做出來的)。

J D兩人1983年分享圖靈獎,是有史以來少數幾個因工程項目得獎的工程師(本來是唯一的一對兒,但Alan Kay才因爲SmallTalk 得 獎,所以就成了唯二的樂)。一個人一生能做出一個卓越的系統已經不易,DMR的C和UNIX長盛不衰近30年,至今生機勃勃,DMR此生可以無憾的說。D 爺爺也算有家學淵源:他老爸在AT&T貝爾實驗室工作了一輩子,並在電路設計方面卓有成就,還出了本頗有影響的書The Design of Switching Circuits,據說在交換理論和邏輯設計方面有獨到的論述。

當然,D爺爺和他老爸是不同時代的人:他老爸的研究成形於晶體管發明之前,而D爺爺的工作離了晶體管就玩兒不轉 樂。:-D不要看D爺爺搞出了C,其實他最愛的編程語言是Alef,在Plan9上運行,支持並行編程。

Alef的語法和C相似,但數據類型和執行方式都和C大大不同。說到語言,D爺爺對後來人有非常中肯的建議:抱着學習的 目的來開發你自己的語言,不要冀望於它被衆人接受。這個建議不光對語言開發有用,也適用於其它大型系統的開發。別的不說,DMR後來領導自己的團隊在 1995年和1996分別推出了Plan9和Inferno操作系統,又用多少人知道呢?

其實,D爺爺當初也沒想過C會風行世界。他開發C的初衷和Eric S. Raymond在Cathedral and Bazaar裏闡述的一樣,就是要消除自己對現有工具的不爽之處。誰知D爺爺無心插柳,C竟然受到衆多程序員的狂熱擁戴,連D爺爺自己都大惑不解。

在一次採訪中D爺爺說大概那是因爲C的抽象程度碰巧既滿足了程序員的要求,又容易實現。當然C一度是Unix上的通用 語言也是原因。但不管怎麼說,D爺爺對編程語言出色的審美意識奠定了C廣爲流傳的基礎。最後八卦一下。

。他倆合作20年,屢屢創造歷史。這段令人神往的佳話,也就長留你我心中樂。P.S.,很多人都以爲Brian W. Kernighan是C的作者。其實BWK只是寫了那本經典K&R C。據D爺爺說,他,Ken和Kernighan三人中,Kernighan最能寫文章,他次之,而Ken寫得最少;但說到編程,Ken爺爺纔是當之無愧 的老大。

 

Edsger Wybe Dijkstra

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Edsger.Wybe.Dijkstra.png 對,就是E.W. Dijkstra. 一提到EWD,很多人就會想起找最短路徑的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一樣。其實這些個算法不過是兩個牛人在他們職業生涯中最瑣碎的貢獻。

比如Dijkstra算法,無非是戴爺爺在1956年爲了展示新計算機ARMAC的計算能力,初試身手的成果,屬於他 的算法處女作。據戴爺爺自述,他搞出最短路徑算法的時候連紙筆都沒用。當時他和他老婆在阿姆斯特丹一家咖啡廳的陽臺上曬太陽喝咖啡,突然就把這個算法想出 來樂。而且當時的算法研究還比較原始,牛人們忙着用計算機搞數值計算,對離散算法不屑一顧。那時連一個象樣的專注於離散算法的專業期刊都沒有。戴爺爺於是 推遲發表這個算法。直到1959年,他才把這個算法發表在Numerische Mathematik的創刊號上,權爲捧場。:-)

EWD在多個領域牛氣沖天,端的是理論和編程兩手硬的高手。只不過他的很多工作比較深刻,學校的老先生們覺得本科生接 受不了,不給本科生講而已。戴爺爺大概因爲最短路徑算法一戰成名,於是有人請他參加另一臺計算機X1的設計工作,並且把設計實時中斷系統的任務派給了他。 現在看來實時中斷也許不算什麼,但要知到,X1前根本就沒有實時中斷的概念。

實現它簡直就是一場豪賭。 戴爺爺起初還不情願,但經不住項目負責人Bram和Carel的輪番“吹捧”:我們知道實時中斷讓您工作變得非常困難,但象您這樣的牛人肯定能做出來的 說。

結果戴爺爺被糖衣炮彈徹底擊穿,接下了這個燙手山芋。兩三年 後,他不僅搞出了實時中斷,還圍繞這個寫出了自己的博士論文,順利戴上博士帽。

讓戴爺爺真正成名立萬的還 是在X1上開發的Algo60,最早的高級語言之一。戴爺爺沒日沒夜地工作了8個月,就搞出了Algo60,也因此獲得了1972年的圖靈獎。因爲 Algo60,戴爺爺發表了一篇石破天驚的文章:Recursive Programming,於是人們才知道,原來高級語言也可以高效地實現遞歸,原來從此以後,所有程序員都不可避免地和戴爺爺發明的一個詞(應該說是概 念)打交道:堆棧。

而且Algo60還讓戴爺爺深入地思考多道程序設計的問 題,最終發明了每個系統程序員都繞不開的概念:semaphore。當然,戴爺爺總是把他發明的概念嚴格形式化,極具科學家本色的說。和這些成就想比,他 提出的吃飯的哲學家問題,也就沒什麼好說的了。

說來好笑,當時的大學(忘了 哪所了)還是覺得戴爺爺沒有受過正統的數學訓練,也不是專門搞數值分析的,所以最後不太情願地給了他一個教職。這種小挫折並不能妨礙象戴爺爺這樣的牛人創 造歷史。他一邊教數值分析(:-D),一邊開始開發一個新的操作系統,並培養計算機科學家。

幾年後,THE Multiprogramming System橫空出世。

THE是第一個支持鬆散耦合,顯式同步的進程並由此使得嚴格證明系統沒有死鎖變得容易的操作系統。可惜戴爺爺任職的系 不識貨,還強行解散了他的研究小組(1972年戴爺爺給他的系主任說他得了圖靈獎,系主任的第一反應是你們搞計算機就喜歡亂髮獎)。

這讓戴爺爺相當鬱悶,得了抑鬱症。在極度鬱悶之中,戴爺爺決定用寫作來治療自己的抑鬱症。

於是經典就誕生樂:Notes on Structured Programming。

戴爺爺從此被尊爲結構化編程的奠基人,而且他的抑鬱症也被治好樂。EWD太牛,結果他的故事也太多。先到這裏吧。 1973起,他的故事就在美國發生了。

 

Anders Hejlsberg

http://www.cnblogs.com/images/cnblogs_com/birdshome/StoryArticle/2005/Anders.Hejlsberg.png ,微軟.NET的首席架構師,編程語言設計和實現的頂尖高手。他一手做出了Turbo Pascal,也是Delphi, J++(尤其是WFC),C#和.NET的主要作者。這些作品的名字足以爲他立傳。

作爲一個程序員,我在這樣的大師面前實在無語。

生子當如Anders的說。李維的《Borland傳奇》裏已詳細講述了Anders的傳奇故事,我就不用費舌了:http://java.mblogger.cn /iexploiter/posts/1505.aspx。Artima上有Anders談C#的系列訪談。

MSDN上有一段Anders導遊的錄像。有興趣可以去看看牛人的丰采。

擴展閱讀:《系統軟件研究是離題的 》http://wangcong.org/articles/ssrii.html
發佈了51 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章