2011/12/10

編程的頂尖對話 Coders At Work by Peter Seibel

作者 Peter Seibel 訪問了15位軟體大師,當然 Peter Seibel 要能訪問這些人,就必須要先瞭解所有人的基本背景,而且要知道他們擅長的軟體技術,這才能問出一些像樣的問題,也才能勾勒出這些大師最深層的想法。

問題的項目大致上就是以下這些:
1. 什麼時候開始做程式設計
2. 最喜歡、熟悉那一個語言
3. 如何除錯、設計程式
4. 印象最深的程式
5. 規模最大的程式
6. 有沒有嘗試過 Pair Programming
7. 有沒有做過Literate Programming,有沒有讀過TAOCP
8. 對 Java 的看法
9. 有沒有推薦的書籍
10. 是否會閱讀程式碼
11. 如何學習,並增進自己的程式功力
12. 如何定義自己:工程師、工匠、科學家或是藝術家
13. 喜歡什麼工作,排斥什麼工作,喜歡什麼語言,排斥什麼語言

15位大師分別為
Jamie Zawinski: 早期接觸LISP與AI,Netscape UNIX版, Netscape Mail Reader早期開發者之一,開發了 XEmacs
Brad Fitzpartrick: LiveJournal網站創辦者,開發了memcached, Perlbal, MogileFS
Douglas Crockford: Yahoo!資深Javascript架構師,開發了JSON,提案ECMASscript 3.1,反對ECMAScript 4
Brendan Eich: Mozallia 的 CTO,Javascipt發明者,1998年跟 Jamie Zawinski勸說Netscape將瀏覽器open source
Joshua Bloch: Goole首席Java架構師,實現了 Java Collection Framework,因 Effective Java獲得 2001年Jolt大獎
Joe Armstrong: 發明了 Erlang,建立了Open Telecom Platform(OTP)
Simon Peyon Jones: 定義 Haskell,名言「不惜一切代價避免成功」,著迷於函數式程式設計
Peter Norvig: Google 研究總監,2001年獲得NASA傑出成就獎,AAAI與ACM的成員
Guy Steele: 參與了Common Lisp與Scheme的建立,也在 Common Lisp, Fortran, C, ECMAScript, Scheme的標準化組織中工作,是ACM會員,美國藝術與科學院院士
Dan Ingalls: 參與了一至七代Smalltalk的實作,直到現在的Squeak,發明了用於點陣圖的BitBlt
L Peter Deutsch: 11歲開始coding,發明了Just-In-Time Compiler,發表著名論文「分散式運算的七個謬論」,Ghostscript開發者
Ken Thompson: UNIX 發明者,發明了B語言,設計了UTF-8 Unicode
Fran Allen: 以「最佳化編譯器技術的理論和實作領域中的開拓性貢獻」獲得圖靈獎,40年來第一位獲此殊榮的女性,IBM第一位女院士,IEEE院士...
Bernie Cosell: ARPANET 早期實現者之一
Donald Knuth: Tex花了十年,寫了TAOCP,提倡Literate Programming

閱讀每一個人清楚地談論自己是有趣的,但我也在讀完後,就忘得差不多了,畢竟那些都不是我自己的人生,就算是我自己的經歷,也常因為記憶破碎的關係,而模糊不清。

這些大師都是早期處理電腦軟體科學的人,普遍認為要從到電腦語言深入到任何可能的核心去追查問題。對目前我們都習慣使用很多被包裝好的函式庫的Programmer來說,要掌握追查所有核心線索的背景知識,是一件非常困難的事。說困難倒不如說,我們很懶,懶得去追問更多核心的問題,而是一直等待別人解決。