心目中的傑出電腦科學家zz

來源:互聯網
上載者:User

心目中的編程高手

-- Bill Joy MIT BBS上說微軟電話面試的一道題就是“Who do you think is the bes

t coder, and why?”。我覺得挺有意思的,也來湊個熱鬧。排名不分先後。

心目中的編程高手 (1)

Bill Joy, 前任Sun的首席科學家,當年在Berkeley時主持開發了最早版本的BSD。他還

是vi和csh的作者。當然,Csh Programming Considered Harmful 是另一個話題樂。據

說他想看看自己能不能寫個作業系統,就在三天裡寫了個自己的Unix, 也就是BSD的前身

。當然是傳說了,但足見他的功力。另一個傳說是,1980年初的時候,DARPA讓BBN在Be

rkley Unix裡加上BBN開發的TCP/IP代碼。但當時還是研究生的B伯伯怒了,拒絕把BBNT

CP/IP加入BSD,因為他覺得BBN的TCP/IP寫得不好。於是B伯伯出手了,端的是一箭封喉

,很快就寫出了高效能的伯克利版TCP/IP。當時BBN和DARPA簽了巨額合約開發TCP/IPSt

ack,誰知他們的代碼還不如一個研究生的好。於是他們開會。只見當時B伯伯穿個T-sh

irt出現在會議室(當時穿T-shirt不象現在,還是相當散漫的哈)。只見BBN問:你怎麼寫

出來的?而B伯伯答:簡單,你讀協議,然後編程就行了。最令偶暈倒的是,B伯伯碩士

畢業後決定到工業界發展,於是就到了當時只有一間辦公室的Sun, 然後他就把Sparc設

計出來樂。。。象這種軟硬通吃的牛人,想不佩服都不行的說。據Bill Joy的同事說,

一般開會的時候B伯伯總是拿一堆雜誌漫不經心地讀。但往往在關鍵之處,B伯伯發言,

直切要害,提出漂亮的構想,讓同事們徹底崩潰。對了,他還是Java Spec和JINI的主要

作者之一。

心目中的編程高手 (2)

-- John Carmack John Carmack,id Software的founder和Lead Programmer。上個月和

一個搞圖形的師兄聊天,他竟然不知道John Carmack, 也讓偶大大地暈了一把。不過也

許搞研究的和搞實戰的多少有些隔吧。想必喜歡第一人稱射擊遊戲的都知道J哥哥。90年

代初只要能在PC上搞個小動畫都能讓人驚歎一番的時候,J哥哥就推出了石破天驚的Cas

tle 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

”就不知所謂樂。嗯,扯遠了,打住。

心目中的編程高手 (3)

-- David Cutler David Cutler,VMS和Windows NT的首席設計師,去微軟前號稱矽谷最

牛的kernel開發員。當初他和他的手下在微軟一周內把一個具備準系統的bootable k

ernel寫出來,然後說:“who can't write an OS in a week?",也是牛氣衝天的說。

順便說一句,D大爺到NT3.5時,管理1500名開發員,自己還兼做設計和編程,不改code

r本色啊。D大爺天生脾氣火爆,和人爭論時喜歡雙手猛擊桌子以壯聲勢。:-) 日常交談

F-word不離口。他面試秘書時必問:"what do you think of the word '****'?" ,讓

無數美女刹羽而歸。終於有一天,一個同樣火爆的女面對這個問題脫口而出:"That's

my favorite word"。於是她被錄取樂,為D大爺工作到NT3.5發布。

心目中的編程高手 (4)

-- Donald E. Knuth Don Knuth。高大爺其實用不著偶多說。學編程的不知道他就好像

學物理的不知道牛頓,學數學的不知道歐拉,學音樂的不知道莫紮特,學Delphi的不知

到 Anders Hejlsberg,或者學Linux不知道Linus Torvalds一樣,不可原諒啊。:-)為了

讓文章完整,就再羅唆幾句吧。高大爺本科時就開始給行行色色的公司寫各種稀奇古怪

的編譯器掙外快了。他賣給別人時收一兩千美元,那些公司拿了code,加工一下賣出去

就是上萬上十萬。不過也沒見高大爺不爽過,學者本色的說。想想那可是60年代初啊,

高大爺寫編譯器寫多了,順帶就搞出了個Attribute Grammar和LR(k),大大地造福後人

啊。至於高大爺在CalTech的編程比賽(有Alan Kay得眾多高高手參加)總是第一,寫的T

ex到86年就code freeze,還附帶2^n美分獎勵等等都是耳熟能詳,偶就不饒舌樂。順便

說一下,高老大爺是無可爭議的寫作高手。他給Concrete Mathematics 寫的前言可謂字

字鏗鏘,堪為前言的典範。他的技術文章也是一絕,文風細緻,解釋精當,而且沒有學

究氣,不失輕快跳脫。記得幾年前讀Concrete Mathematics,時不時開懷大笑,讓老媽

極其鬱悶,覺得我nerdy到家,不可救藥。其實呢,子非魚,安知魚之樂,更不知那完全

是高大爺的功勞。說到寫作高手,不能不提Stephen A. Cook。他的文章當年就被我們的

寫作老師極力推薦,號稱典雅文風的樣本。高大爺一頭銀髮,身材頎長,總是面帶謙和

的微笑,頗有仙風道骨,正好和他的仙文相配的說。高大爺其實還是開源運動的先驅。

雖然他沒有象Richard Stallman那樣八方奔走,但他捐獻了好多作品,都可以在網上看

到,比如著名的Mathematical Writing,MMIXWare,The Tex Book等,更不用說足以讓

他流芳百世的Tex樂。

心目中的編程高手 (5)

-- Ken Thompson Ken Thompson,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編譯器。

心目中的編程高手 (6)

-- Rob Pike Rob Pike, 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,痛斥當下系統

開發不思進取,固步自封的弊病。雖然這篇文章是羅伯伯含忿出手,頗有偏激之詞,但

確實道出了系統開發的無奈:開發週期越來越長,代價越來越大,使用者被統一到少數幾

個系統上,結果越來越多的活動是測量和修補,而真正的革新越來越少。就在羅伯伯鬱

悶之極的時候,google登門求賢來樂。如果說現在還有一家福士公司在不遺餘力地把系

統開發推向極致的話,也就是google 樂。隨便看看google的成果就知道了。具有超強容

錯和Server Load Balancer能力的Distributed File SystemGFS (現在能夠用100,000台廉價PC搭起一個巨型分

布系統,並且高效便宜地進行管理的系統也不多哈),大規模機器學習系統(拼字檢查,

廣告匹配,拼音搜尋。。。哪個都很牛的說),更不用說處理海量並行計算的各式googl

e服務了。Rob在System Software Research is Irrelevant裡蕭瑟地說現在沒有人再關

心系統研究的前沿成果了。想不到他錯了,因為google關心。google網路了大批功成名

就的牛人,還有大量初生牛犢般博士做開發,顯然不是沒事耍酷,而是因為它們的開發

總是試圖吸取系統研究的最新成果。 想必Rob Pike在google很幸福。願他做出更棒的系

統。

心目中的編程高手 (7)

-- Dennis M. Ritchie 既然Ken Thompson是我的偶像,新聞群組上人稱DMR的Dennis M.

Ritchie自然也是,畢竟兩人共同締造了UNIX,而Dennis幾乎獨力把C搞大(當然,C的前

身是B,而B是Ken Thompson一手做出來的)。J 兩人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廣為流傳的基礎。最後八卦一下。D爺爺的業餘

愛好和NBA大牛Karl Malone一樣:開卡車。不過D爺爺更喜歡開NASCAR,而KM獨愛巨無霸

。J D爺爺自稱心中不供偶像,如果一定要說一個,那就是Ken Thompson了。現在Ken爺

爺退休當飛機教練去了,而D爺爺當了貝爾實驗室系統開發部的頭,整日忙於開支票。他

倆合作20年,屢屢創造曆史。這段令人神往的佳話,也就長留你我心中樂。P.S., 很多

人都以為Brian W. Kernighan是C的作者。其實BWK只是寫了那本經典K&R C。據D爺爺說

,他,Ken, 和Kernighan三人中,Kernighan最能寫文章,他次之,而Ken寫得最少;但

說到編程,Ken爺爺才是當之無愧的老大。

心目中的編程高手 (8)

-- Edsger Wybe Dijkstra 對,就是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年的圖靈獎。因為Alg

o60,戴爺爺發表了一篇石破天驚的文章:Recursive Programming,於是人們才知道,

原來進階語言也可以高效地實現遞迴,原來從此以後,所有程式員都不可避免地和戴爺

爺發明的一個詞(應該說是概念)打交道:堆棧。而且Algo60還讓戴爺爺深入地思考多道

程式設計的問題,最終發明了每個系統程式員都繞不開的概念:semaphore。當然,戴爺

爺總是把他發明的概念嚴格形式化,極具科學家本色的說。和這些成就想比,他提出的

吃飯的哲學家問題,也就沒什麼好說的了。說來好笑,當時的大學(忘了哪所了)還是覺

得戴爺爺沒有受過正統的數學訓練,也不是專門搞數值分析的,所以最後不太情願地給

了他一個教職。這種小挫折並不能妨礙象戴爺爺這樣的牛人創造曆史。他一邊教數值分

析(:-D) ,一邊開始開發一個新的作業系統,並培養電腦科學家。幾年後,THE Mult

iprogramming System橫空出世。THE是第一個支援鬆散耦合,顯式同步的進程並由此使

得嚴格證明系統沒有死結變得容易的作業系統。可惜戴爺爺任職的系不識貨,還強行解

散了他的研究小組(1972年戴爺爺給他的系主任說他得了圖靈獎,系主任的第一反應是你

們搞電腦就喜歡亂髮獎)。這讓戴爺爺相當鬱悶,得了抑鬱症。在極度鬱悶之中,戴爺

爺決定用寫作來治療自己的抑鬱症。於是經典就誕生樂:Notes on Structured Progra

mming。戴爺爺從此被尊為結構化編程的奠基人,而且他的抑鬱症也被治好樂。EWD太牛

,結果他的故事也太多。先到這裡吧。1973起,他的故事就在美國發生了。

心目中的編程高手 (9)

Anders Hejlsberg,微軟.NET的首席架構師,程式設計語言設計和實現的頂尖高手。他一手

做出了Turbo Pascal, 也是Delphi,J++(尤其是WFC),C#,和.NET的主要作者。這些作品

的名字足以為他立傳。作為一個程式員,我在這樣的大師面前實在無語。生子當如Ande

rs的說。李維的<<Borland傳奇>>裡已詳細講述了Anders的傳奇故事,我就不用費舌了:

http://java.mblogger.cn/iexploiter/posts/1505.aspx。 Artima上有Anders談C#的

系列訪談 。MSDN上有一段Anders導遊的錄影 。有興趣可以去看看牛人的丰采。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.