高德納


(攝於2005年)

才發現剛剛過去的1月10日是圖靈獎得主、我們這個世界最受尊重的程序員之一高德納(Donald Knuth)的72歲生日。老高,生日快樂!

不知道高德納?先看這裏的介紹,然後面壁三天去吧。

喜慶日子,列舉一些老人家的趣事:

1. 高德納這個中文名是姚儲楓所取,後者也是一位優秀的計算機科學家,是另一位圖靈獎得主、現在清華的姚期智的夫人(據說姚先生轉學計算機還是受了夫人的影響)。


2. 他的鴻篇鉅製《計算機程序設計藝術》(簡稱TAOCP)與愛因斯坦的《相對論》、狄拉克的《量子力學》、理查費曼的《量子電動力學》、羅素和懷特海《數學原理》、馮諾依曼《博弈論》等書一起被《美國科學家》雜誌譽爲20世紀最重要的物質自然物理科學專著。而我習慣將之比作錢鍾書的《管錐編》。

3. 這本書的寫作始於1966年,計劃寫七五卷,目前已完成四卷(第四卷的精裝本將在今年出版)。對了,如果你在他的書裏發現錯誤,會得到他的支票,每個錯誤獎勵2.56(16進制的1,即0x$1)美元。

4. 高德納是一位音樂癡迷者(美國傳統黑客的標誌),高中時對數學不感興趣,主要精力在作曲。會演奏管風琴、薩克斯和大號。當然,他也因此寫過一篇論文,叫《歌曲的計算複雜度》。

5. 所開發的著名排版軟件TeX版本號從3開始,改爲Pi(3,3.1,3.14),另一個軟件MetaFont版本號從2開始,改爲歐拉常數e(2,2.7,2.71)。意思是已經非常穩定,無需再進行大的改版。事實上,他也爲軟件bug設立了獎項,但是付出極少。

6.《計算機程序設計藝術》第三卷裏有一個索引項寫着:版稅,使用,XXX頁,而這一頁裏只有一張管風琴的圖,看來,這架琴是用書的版稅買的。

7. 他的另一本名著《Concrete Mathematics》裏記載了一件軼事:在斯坦福大學第一次上同名課程的時候,他解釋了這個怪名字,自己的意圖是要講一些堅硬的而不是那種軟軟的數學,他不會講什麼聚集理論、斯通的嵌入定理,也不會講斯通-切赫緊緻化。話音剛落,幾位土木系的學生默默地走出教室。原來他們以爲這門課是混凝土數學(concrete的常見意思是土木系最習用術語:混凝土)。

8. 爲了直觀地說明循環定義,他在《計算機程序設計藝術》第一卷索引中故意讓循環定義和定義,循環交叉引用。

9. 除計算機科學著作外,他還是虔誠的基督徒,寫作了很多基督教信仰圖書。

10. 在大學時,他曾經管理過一支籃球隊,並設計了一個公式,計算每個隊員的價值。此方法曾經被《新聞週刊》和美國CBS電視臺報道。

11. 1990年1月1日,他向同事宣佈,爲了集中精力寫作,停止使用電子郵件(而他從1975年就開始使用電子郵件了)。

12. 他之所以要開發TeX,是因爲在寫書過程中發現已有的排版軟件都太爛,於是決定自己動手。原本他預計半年就可以完成,但最終花了超過十年。在開發這個軟件過程中,他發明了literate programming,即文學編程,意思是像寫文章那樣寫代碼。通過強迫程序員明確描述程序背後的思路,讓未經深思熟慮的設計決策無所遁形,從而提高代碼質量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章