編者按:這個對當代最有聲望的程式設計師進行系列訪談的想法,是由微軟出版社的Min S. Yee提出的。
在訪談中,我們問了這樣的問題:那些想法是從哪裡來的?把想法轉化為現實有多難?開發大型程式是什麼感覺?這是一門藝術還是一門科學?是手藝還是技能?同樣的事情還能再做一次嗎?訪談的目標不是支配、欺騙或操控,而是程式設計師自由地反思、反省,然後用言語把他自己的程式設計方法表達出來。
世界上的優秀程式設計師為數眾多,他們不會都出現在本書中。所以,這是對當代傑出程式設計師進行訪談的系列圖書的第一本。
在本書出版之前,有必要讓讀者預先了解一下各位大師的時代背景,後續會推出訪談樣章,敬請關注!
Charles Simonyi
1948年9月10日,Charles Simonyi出生於匈牙利布達佩斯。上高中時,Charles開始接觸計算機和程式設計,他父親安排他給一名從事計算機工作的工程師當助手,當時計算機在匈牙利屈指可數。
1966年,Charles高中畢業,同時也完成了他的第一個編譯器。憑藉開發編譯器時積累的經驗,他在丹麥哥本哈根的A/S Regnecentralen 公司謀得了一個職位。1968年,Charles離開丹麥進入美國加州大學伯克利分校學習,並於1972年獲得理學學士學位,1977年獲得史丹佛大學博士學位。
Simonyi曾先後在加州大學伯克利分校計算機中心、伯克利計算機公司、ILLIAC 4專案和施樂PARC工作。自1981年以來,他一直供職於微軟公司。在施樂公司,Charles開發了Alto個人電腦的Bravo和Bravo X程式。在微軟,Charles組建了應用軟體小組,並領導開發出Multiplan、Microsoft Word、Microsoft Excel等廣受歡迎的應用軟體。在微型計算機世界的幾乎各個領域,Charles Simonyi都打上了他的烙印,要麼通過他自己的作品,要麼通過影響和他共事的那些人。他謙遜而活潑,臉上常掛著微笑,幾乎能夠評論任何話題,不論是否與計算機相關。
關於Simonyi後來的情況,請見Programmers at Work 後的人生——Charles Simonyi。
Butler Lampson
Butler Lampson,目前在加州帕洛阿爾託數字裝置公司(Digital Equipment Corporation,下文簡稱DEC)系統研究中心擔任高階工程師,他曾是加州大學伯克利分校電腦科學副教授、伯克利計算機公司創始人、施樂PARC電腦科學實驗室的高階研究員。
Lampson是業界最受敬重的專家之一,他在許多計算機設計和研究領域都頗有建樹。他開發過硬體系統,如乙太網區域網和Alto、Dorado個人電腦;作業系統,如SDS 940和Alto;程式語言,如LISP和Mesa;應用程式,如Bravo編輯器和Star辦公系統;還有網路伺服器,如Dover印表機和Grapevine郵件系統。
John Warnock
John Warnock出生於1940年,在猶他州長大,就讀於猶他大學,並獲得了數學學士和碩士學位,以及電腦科學博士學位。1968年,Dave Evans 在猶他大學組建了著名的研發團隊,研究互動式設計和計算機圖形學,此時Warnock剛好轉學電腦科學專業。拿到電腦科學博士學位後,Warnock進入加拿大不列顛哥倫比亞省溫哥華的一家公司,嘗試當了一段時間的企業家,隨後加入加拿大電腦科學公司(Computer Sciences of Canada),在多倫多工作。之後,他前往華盛頓哥倫比亞特區,進入戈達德太空飛行中心工作。
1972年,Warnock搬到加州,跟Dave Evans和Ivan Sutherland一起參與Illiac IV巨型計算機、美國宇航局太空梭太空飛行模擬器和飛機模擬器等方面的工作。1978年,Warnock加入施樂PARC,在電腦科學實驗室工作了4年。在PARC工作期間,Warnock致力於提高計算機灰階成像的排版效果。
1982年,John E. Warnock博士和Charles M. Geshchke博士共同建立了Adobe系統公司(Adobe Systems),開發混排文字和圖形的軟體,其輸出與裝置無關。他們精誠合作,開發出了Adobe系統公司的第一款產品PostScript。
進入公司辦公大樓時,你會一眼看到Adobe公司的標誌。這座大樓位於帕洛阿爾託的恩巴克德羅大道(Embarcadero)旁,這條大道兩旁散佈著不少高科技企業。公司標誌非常大,金光閃閃,顯示出Warnock的公司近來獲得的巨大成功。跟其他很多人一樣,Warnock帶著自己的想法離開了施樂PARC,並在現實世界中將這些想法變成了一門語言(PostScript)和一家公司(Adobe系統公司)。
Gary Kildall
作為數字化研究所(DRI)的創始人和董事會主席,Gary A. Kildall於1972年到1973年間開發了第一個微機作業系統。他把那個系統稱為CP / M(控制程式/監控程式)作業系統,後來成為他們公司的第一個產品。此外,他為IBM個人計算機設計了DRLogo程式語言,並開發出微機上最早的高階計算機語言之一,PL / 1。
Gary Kildall是西雅圖人,生於1942年5月19日。他於1972年獲得華盛頓大學電腦科學博士學位。他隨後加入了海軍,並且執教於加利福尼亞州蒙特裡的美國海軍研究生院,講授電腦科學。從海軍退役後他仍舊在那裡繼續執教。
Kildall於1984年建立了一個名為Activenture的新公司(最近已更名為KnowledgeSet公司),以探索光碟出版業的潛力。Activenture公司於1985年宣佈,他們將出版光碟版的《格羅利爾多媒體百科全書》。Kildall在擔任KnowledgeSet公司總裁的同時仍舊擔任著數字化研究所董事會主席一職。
Bill Gates
作為微軟的CEO,William H. (Bill) Gates被認為是當今個人計算領域和辦公自動化行業一個強有力的推動者。Bill Gates從年輕時就開始了計算機軟體的職業生涯。當Gates和微軟的聯合創始人Paul Allen還在華盛頓州的西雅圖上高中時,兩人就開始做起了程式設計顧問的工作。1974年,當Gates在哈佛大學讀本科時,他與Allen合作為第一臺商用微型計算機MITS Altair開發了一套BASIC程式語言。在那個專案順利完成後,兩人創辦了微軟公司,為新興的微機市場開發並銷售軟體。
微軟為軟體產業在程式語言、作業系統和應用軟體等各方面設定了標準。Gates為微軟提出了新產品的創意和技術發展的遠景。在開發新產品時,他還會親自指導技術小組,投入時間複審和完善微軟所銷售的軟體。
John Page
John Page 於1944年9月21日出生於英國倫敦,他從青少年時期就開始使用計算機,並在20多年的職業生涯中繼續從事著計算機領域的工作。
1970年,John Page加入了惠普公司。他在倫敦、日內瓦和歐洲其他地區為惠普做了4年多的技術支援工作。他1974年移居到惠普公司總部所在地——加利福尼亞州的庫比蒂諾,負責管理HP 3000計算機的全球技術支援。後來,他轉入軟體研發領域並開發了Image資料庫管理系統。在惠普工作期間,Page在史丹佛大學學習了人工智慧專業,完成了電腦科學方面的研究生工作。1980年,Page離開惠普,和Fred Gibbons及Janelle Bedke聯手創辦了軟體出版公司(Software Publishing Corporation,SPC)。Page在他的車庫裡開發了軟體出版公司的第一款產品,即後來的PFS:FILE。現在PFS系列中的軟體已經超過六種,涵蓋了資訊管理的各個方面。John Page是軟體出版公司負責研發的副總裁。
John Page是一個身體修長、健康,稍有點孩子氣的人。他目光柔和、笑容親切、說話帶點兒輕微的英國口音。我們見面時,他穿著一件未扣領釦的藍色襯衫和一條灰色休閒褲。Page帶我穿過軟體出版公司那有著加州風格的舒適的紅木樑柱辦公室,進入一間很大的空會議室中。在那裡,Page以一種放鬆的狀態思考和分析了他在程式設計和管理軟體公司上的做法和心得。
C. Wayne Ratliff
從1969年到1982年,C. Wayne Ratliff在Martin Marietta公司工作,擔任了工程和管理方面的一系列職位。當“海盜”號空間飛行器於1976年在火星著陸時,他是NASA(美國國家航空航天局)“海盜”號飛行團隊的一員,為“海盜”號的著陸支援軟體編寫了資料管理系統MFILE。
他在1978年開始編寫名為Vulcan(火山)的程式,並在1979年到1980年期間自己進行推銷。在1980年下半年,他和Ashton-Tate達成了市場推廣協議,並把Vulcan產品重新命名為dBASE II。在1983年年中,Ashton-Tate購買了dBASE II的技術和版權,Ratliff也加入Ashton-Tate成為新技術的副總裁。Ratliff是dBASE III的專案經理,同時兼任設計師和主程式設計師。
Ratliff生於俄亥俄州的特倫頓,在俄亥俄和德國的多個城鎮長大。他現在住在洛杉磯地區。
Dan Bricklin
費城人Dan Bricklin出生於1951年7月16日。1973年,他從麻省理工學院(MIT)畢業並取得電氣工程和電腦科學學士學位,畢業後先後供職於數字裝置公司(DEC)和Fas Fax公司,從事程式設計工作,隨後進入哈佛大學商學院。在哈佛期間,他根據同班同學和教授的專門知識和建議,設計了一款電子表格程式。
1978年,還在哈佛大學時,他跟MIT的老同學Bob Frankston合作,開發了這個程式的實用版本。這就是後來的VisiCalc。他們創辦了一家名叫Software Arts的公司,該公司於1979年1月註冊成立。同年4月,他們跟Personal Software簽約,由該公司負責VisiCalc的市場運作。(Personal Software後來更名為VisiCorp。)關於VisiCalc的新聞很快鋪天蓋地。截止1981年5月,VisiCalc的銷量超過10萬套。1983年,累計銷量突破50萬套。Software Arts的成功一直持續到1984年,隨後,為了爭奪VisiCalc的相關權利,他們與VisiCorp陷入曠日持久的官司當中。
1985年5月,Dan Bricklin離開Software Arts,加入Lotus公司,做了很短一段時間的顧問。之後Dan Bricklin創辦了Software Garden,這是他新開的公司,1985年11月正式註冊成立。公司推出的第一款產品叫“Dan Bricklin的演示程式”。
Bob Frankston
36歲的Bob Frankston從事程式設計工作已經超過20年了。他在紐約的布魯克林區長大。早在少年時期,他就對電子技術和計算機產生了濃厚的興趣。在麻省理工學院上學時,他進一步加強了對這些領域的研究,他於1970年從麻省理工學院獲得了兩個學士學位,一個是數學學士,一個是電子工程和電腦科學學士。他於1974年又從麻省理工學院獲得了另外兩個學位,一個是工程學士學位,一個是電子工程和電腦科學碩士學位。當他在麻省理工上學時遇到了Dan Bricklin,兩人成了朋友。
Bricklin在哈佛商學院的時候產生了電子報表的想法,於是請Bob Frankston幫助開發出一個可執行的版本。Bob Frankston不管白天黑夜,只要一有時間,就會在他的小閣樓裡程式設計,最後開發出了一個以Bricklin的構想為原型的電子報表的軟體版本。後來他們兩人成立了軟體藝術(Software Arts)公司,並肩工作,於1979年開發出他們的第一個產品——VisiCalc。1985年春天,軟體藝術公司因為與 VisiCorp公司(以前的Personal Software公司,後來的Paladin公司)打了一場曠日持久的官司而解散,Frankston隨即加入了蓮花軟體開發公司(Lotus Development Corporation),成為資訊服務部門的首席科學家。
Jonathan Sachs
Jonathan Sachs出生於1947年,在美國東海岸的新英格蘭地區長大。他獲得了麻省理工學院的數學學士學位。Sachs在麻省理工學院一共學習和工作了14年。作為程式設計師,他的程式設計經驗很廣泛:他曾在空間研究中心、認知資訊處理小組以及生物醫學工程中心工作過。在為生物醫學工程中心工作時,他開發了STOIC(面向堆疊的互動式編譯器)程式語言。在70年代中期,Sachs離開麻省理工學院,來到Data General公司,負責管理一個作業系統的開發工作。接著他與人共同創辦了Concentric Data Systems公司,一個以資料庫產品而知名的公司。曾取得非凡成功的Lotus 1-2-3 電子報表軟體的開發工作要歸功於Jonathan Sachs。1981年,Sachs與Mitch Kapor一起開發並銷售Sachs 的電子報表程式,在1982年4月,只有8名員工的Lotus軟體開發公司成立了。1983年1月26日,Lotus開始交付用於IBM PC的Lotus 1-2-3軟體。同年4月26日,Lotus 1-2-3軟體首次在 Softsel暢銷排行榜上躍居首位,並從此居高不下。它也是第一個取代VisiCalc的程式。1984年,Sachs 離開Lotus軟體開發公司併成立了自己的公司。
Ray Ozzie
Ray Ozzie出生於1955年11月20日,在芝加哥近郊的帕克裡奇(Park Ridge)長大。他大學就讀於伊利諾伊大學香檳分校,學習電腦科學。在校期間,他開發過PLATO(Programmed Logic for Automatic Teaching Operation,指用於自動化教學的程式邏輯),那是一個與世界各地近1000個終端相連的計算機輔助教育系統。
1978年大學畢業後,Ozzie加入波士頓附近的一家小型計算機公司Data General,到Jonathan Sachs麾下工作,一起開發一個小型業務系統。離開Data General後,Ozzie進入VisiCalc締造者Software Arts的微型計算機和軟體世界。在Software Arts工作一年半後,Ozzie離職並加入Lotus,與Jonathan Sachs和Mitch Kapor共事。他在那裡參與開發Symphony,並且後來成為這個專案的負責人。Symphony完工後,Ray Ozzie創辦了自己的公司Iris Associates,與Lotus簽訂合約開發軟體。
目前,Ray和妻子Dawna Bousquet以及他們的兒子Neil一起住在波士頓郊外的鄉村。
Peter Roizen
作為一個加利福尼亞本地人,Peter Roizen就在帕羅奧多長大。他在加州大學伯克利分校就讀,並於1967年獲得數學專業的學士學位。他畢業後的第一份工作就是程式設計師,雖然在此之前他幾乎沒碰過程式設計。Roizen在離開伯克利後在蒙特利爾和多倫多待了兩年,然後去了歐洲,在世界衛生組織幹了七年程式設計師。他後來回到美國,在華盛頓特區為世界銀行工作。1980年,Roizen創辦了自己的公司,來推廣和銷售他的電子資料表程式,即T/Maker。這是當他就職於世界銀行時,用業餘時間開發出來的。1985年,Roizen把他的小公司從華盛頓哥倫比亞特區搬到了舊金山灣區。Roizen現年39歲,已婚,有一個五歲的兒子。他住在加利福尼亞的洛斯加託斯。
Bob Carr
作為Ashton-Tate公司的首席科學家,29歲的Robert Carr負責新產品和新技術的研究工作。作為整合化軟體領域的開拓者之一,Carr是Framework軟體及其後續產品Framework II軟體的設計師和主要開發者。
在此之前,Carr曾擔任Forefront公司的董事長。1983年7月,Carr與人合作成立了Forefront公司,為的是能完成他自己於15個月前就開始了的Framework軟體的開發工作。Ashton-Tate公司同意以注資Forefront公司的方式來獲得Framework軟體的市場開發權。1985年7月,Ashton-Tate公司收購了Forefront公司。
在開發Framework軟體並共同建立Forefront公司之前,Carr參加了最早的整合化軟體包之一的Context MBA軟體的開發工作,擔任其程式開發顧問。在此之前,Carr曾在施樂公司的帕洛阿爾託研究中心從事施樂之星及Smalltalk前身產品的開發工作。他同時擁有史丹佛大學電腦科學的學士學位和碩士學位。
Jef Raskin
蘋果電腦公司Macintosh專案發起人Jef Raskin多才多藝。他擔任過舊金山小型歌劇團的指揮;持有包裝設計、飛行器結構和電子學領域的多項專利。他還是個藝術家,作品在紐約現代藝術博物館和洛杉磯美術館展出過。他目前擔任資訊裝置公司(Information Appliance Inc)的CEO。1943年,Raskin出生在紐約市,用他的話來說,差不多跟數字計算機同齡。
在紐約州立大學石溪分校,他主攻數學、物理、哲學和音樂,在校期間,他多次贏得獎學金,並獲美國國家自然科學基金會(National Science Foundation)的資助。經過5年學習,他大學畢業並獲得哲學學士學位。之後他又在賓夕法尼亞州立大學取得電腦科學碩士學位,後來成為加州大學聖地亞哥分校(UCSD)視覺藝術教授。他在加州大學聖地亞哥分校執教5年,同時還擔任第三學院(Third College,參見http://en.wikipedia.org/wiki/ ThurgoodMarshallCollege)計算機中心主任。
他後來毅然決然地從聖地亞哥分校辭職了——關於為什麼要離職,他並不想多說。隨後,他成為一名職業音樂家,從事教學和指揮。當8080微處理器面世時,Raskin創辦了Bannister & Crun公司來利用這項新技術。公司找到一塊有利可圖的細分市場,專門給Heath、蘋果、美國國家半導體和其他公司編寫手冊和軟體。
1978年,他加入蘋果電腦公司,成為第31號員工,擔任發行經理。後來他又擔任高階系統的經理,組建了創造Macintosh的團隊。1982年,他離開蘋果公司,到丹麥資料處理學院(Dansk Datamatik Institute)任教,之後回到矽谷創辦資訊裝置公司。
Andy Hertzfeld
Andy Hertzfeld出生於1953年4月6日,在費城西郊長大。Hertzfeld上高中時開始對計算機著迷,他當時寫的程式有一個就是學校舞會的約會程式。高中畢業後,他進入布朗大學,學習物理、數學和電腦科學,並於1975年取得電腦科學學位。1979年,Hertzfeld獲得加州大學伯克利分校電腦科學碩士學位。研究生畢業後,Hertzfeld加入蘋果電腦公司,從事Silentype印表機 、Apple III作業系統及其他產品的開發。1981年2月,他作為第二名程式設計師加入Macintosh開發團隊,參與專案開發,併成為Macintosh作業系統的主要開發人員。最近,Hertzfeld離開蘋果公司,開始自己單幹。他後來在Macintosh上開發了Switcher ,另外還有一款低成本、高解析度的數字化儀,稱為ThunderScan 。
Toru Iwatani
遊戲設計師Iwatani1955年1月25日出生於日本東京目黒區。他在計算機、視覺藝術或平面設計方面全都是自學的,沒接受過正規訓練。1977年,22歲的Iwatani加入南夢宮(NAMCO LIMITED),東京一家制作電子遊戲的計算機軟體公司。進入公司之後,Iwatani最終找到了適合自己的職位,遊戲設計。Iwatani與另外四人合作,從構思到成品,歷時1年零5個月的開發,完成了Pac Man(《吃豆人》遊戲)的製作。
遊戲先在日本發售,大獲成功。出口歐美后,同樣俘獲了大批玩家。完成Pac Man之後,Iwatani又設計了不少遊戲,包括他自己最喜歡的Libble Rabble(《幾何魔寶》)。近來,Iwatani開始更多地參與南夢宮的公司管理。
Scott Kim
Scott Kim是洛杉磯本地人,出生於1955年10月27日。他曾就讀於史丹佛大學,學習數學、電腦科學和音樂,並於1977年獲得音樂學士學位。 1975年,在學習了圖形設計的課程後,Kim開始從事他的“倒置”(inversion)工作——Kim用“倒置”這個詞表述他對文字藝術的演繹,文字可以從許多不同的方向看,類似於迴文和字謎。1981年,Scott Kim出版了《Inversion》一書。很多計算機界的傑出人士對此書做出了貢獻。前言是Douglas Hofstadter寫的,他是Kim的教授,也是Kim的朋友。John Warnock幫忙對影像進行程式設計。Donald Knuth和David Fuchs幫助排版,Jef Raskin寫了“後記”。Kim最近還開發了一個配合此節使用的“第四方軟體”,在蘋果Macintosh計算機上使用的“倒置”軟體。該軟體執行在MacPaint軟體之上,包括用於建立“倒置”的許多練習、技巧和遊戲。
Kim把他熟悉的圖形設計和字型方面的知識應用到了他在電腦科學方面的工作上。目前,他正在研究一種全新的使用者介面設計方法,這是他在史丹佛大學攻讀博士學位的課題。早在讀本科時,Kim就一邊學習,一邊在施樂公司的帕洛阿爾託研究中心作志願顧問。他還在帕洛阿爾託從事過資訊家電的工作。此外,他還有自己的公司——LOOK TWICE公司。
Jaron Lanier
加隆·蘭尼爾(Jaron Lanier)在新墨西哥和德克薩斯西部長大,1981年搬到加利福尼亞,一心想要尋求一種不同的生活。就像他說的那樣,“在聖克魯茲過嬉皮士式的生活,在商場裡吹笛子”。結果當然並非如此。相反,在25歲時,蘭尼爾就已經開了自己的公司,叫做VisualProgramming Languages(可視程式語言),並且開發出了我們大多數人完全無法想象的產品。他剛進入計算機界時,是做電子遊戲音訊部分的程式開發。後來在Atari工作時獨立開發了完整的遊戲產品。他最成功的遊戲是Moondust,在1983年進入了Omni電視節目的十佳排行榜。當前,他的程式工作圍繞著一種新語言的開發,蘭尼爾相信這種語言將會徹底變革計算機產業[1]。他現在住在加利福尼亞的帕洛阿爾託。
Michael Hawley
Droid Works(機器人工場)在盧卡斯影業公司旗下承擔著把電影製作過程數字化這一意義重大的任務。作為其中的數字音訊程式設計師,Michael Hawley參與了SoundDroid(音響機器人)的軟體開發,這款軟體可以看作一個裝在盒子裡的全數字化音響工作室,它可以對聲音進行儲存、錄製、編輯和混合,當然也可以把聲音當即播放出來。
Hawley現年24歲。他成長於紐約市郊區的新普羅維登斯,並在那裡熟悉了計算機和程式設計。在整個高中和大學的時間裡,他在附近默裡山 的貝爾實驗室裡打工。當他在貝爾實驗室培育著計算機方面的興趣時,他同時也在耶魯大學進行著音樂和鋼琴的正規學習,並在1983年獲得了音樂和電腦科學的雙學位。畢業後不久,他作為貝爾實驗室的訪問研究員去了巴黎的IRCAM(聲學/音樂協作研究院)。在巴黎時,他開發了計算機音樂應用程式的使用者介面原型,同時又在IRCAM的音樂會系列中參加了一首為雙鋼琴和電子音樂所作的奏鳴曲的首場世界公演。離開IRCAM後,Hawley朝西搬遷,並加入了加利福尼亞馬林縣的Droid Works。
在我進入Droid Works辦公室所在的大樓時,我看到燈光、攝影器材和音響器材的工作人員四處穿梭的身影。這首先就告訴我,Droid Works更多是屬於電影娛樂行業而非傳統的軟體和計算機行業。