什麼大神?編程藝術家高德納
把π作為版本號不是他做出的唯一一件前無古人的事
——對極致與美的追求,向來與作為理科生的你有關
教授數學軟體的KFC老師,給了我一個講故事的機會。這個故事有關一位中文名叫高德納的美國IT大佬Donald Ervin Knuth。
高德納是諾貝爾經濟學獎和圖靈獎雙重榮譽加身的西蒙的老鄉,關於西蒙如何結合心理學和計算機科學,從而開創人工智慧的研究,那又是另一個故事了。
今天來聊聊高德納這位不朽的程序員。事實上,這位建樹累累的天才式人物所開創的成就,應當感謝他大一暑假所呆的工作室隔壁的IBM650。倘若沒有這台引發高德納對於計算機興緻的機器,他也許會繼續在物理系的求學,書寫另一個完全不同的故事(比如像高德納的父親和陳老師那樣繼續傳道授業的神聖工作)。
而這台讓他轉向數學學習,也同時改變了信息技術發展歷史的機器,這台幫助他完成對校籃球隊公式評估的機器,大概也無法料想。那個曾經的對指示燈變化好奇無比的青年,會以洋洋數百萬言的多卷本《計算機程序設計的藝術》(The Art of Computer Programming),而成為獲得圖靈獎的前無古人的時代變革者。
如果把高德納的著作名稱當作一個發問,那麼瑞士計算機科學家Niklaus Wirth於1976年出版的《演算法+數據結構=程序設計》可看作是其中一個回答。有趣的是,高德納這個名字也與某個演算法關聯。Fisher–Yates shuffle,姑且翻譯作集合亂序演算法,是用於排序問題(你們所熟知的冒泡、快排等等)、撲克牌洗牌等問題的演算法。在維基百科上,有如下解釋:The Fisher–Yates shuffle is named after Ronald Fisher and Frank Yates, who first described it, and is also known as the Knuth shuffle after Donald Knuth。似乎,這可以算是IT界致敬形式的一種?另外,全球最具權威的IT研究與顧問諮詢公司Gartner (NYSE: IT and ITB)的名字,也叫高德納,不過這可能是個有趣的巧合。
在不多的業餘時間裡,高德納不僅寫小說,還是一個音樂家、作曲家、管風琴設計師。這份熱愛並追求美好的心,也體現在他工作的取捨上。微軟首席執行官比爾蓋茨在1995年接受一次採訪時說,「如果你認為你是一名真正優秀的程序員,就去讀(《計算機程序設計的藝術》的)第一卷,確定可以解決其中所有的問題。」值得注意的是,蓋茨本人讀這本書時用去了幾個月的時間,並同時進行了難以置信的訓練。蓋茨還說:「如果你能讀懂整套書的話,請給我發一份你的簡歷。」高德納本人的說法更犀利:要是看不懂,就別當程序員。在此書第三卷出版時,他已因此而獲得計算機科學領域的最高榮譽——圖靈獎。然而,在獲得圖靈獎後,高德納放下了著書的工作,轉而著手解決在寫作過程中遇到的排版的苦惱。在不屑的嗤笑和江郎才盡的指責聲中,輟筆10年的高德納以三個重量級創造性成果:字體設計系統METAFONT(其價值一言以蔽之:對整個西文印刷行業帶來了革命性變革)、文學化編程(充分展示程序設計的藝術性:清晰,美感,詩意),尤其是最具革命性的排版系統TEX(至今仍是全球學術排版的不二之選),給出了有力反擊。KFC老師的數學軟體課,亦會有相關介紹。
TEX作為一個軟體產品,也令人嘆為觀止。它的版本號不是自然數列,也不是年份,而是從3開始,不斷逼近圓周率(目前最新版本是3.1415926)。高德納再一次用行動宣告,這個東西趨近完美,不可能再有什麼大的改進了。根據Wang Kai的最新消息:高德納曾表示「最後一次升級是(於我過世後)將版本數改為π,那時任何餘下的漏洞將被看作程序的功能!」他還設立了獎金:誰發現TEX的一個錯誤,就付他2.56美元,第二個錯誤5.12美元,第三個10.24美元……以此類推。結果直到今天,他也沒有為此付出多少錢,可見TEX經過了怎樣的千錘百鍊。他設置的另一個獎項是找出其著作中錯誤的人能得到2.56美元,因為「256美分剛好是十六進位的一美元」。據說,獲獎者將有他簽名的支票視為珍寶,並不兌現。有網友戲說,什麼是聰明:在Knuth的書中找到錯誤;什麼是愚蠢:去兌現那張兩塊五毛六的支票。
2008年,在《計算機程序設計的藝術》的前三卷面市30年之後,第四卷終於面世了。而高德納自己卻已是白髮蒼蒼的古稀老人了。他對計算機科學的熱愛,使他為這套叢書耗費了一生的心血。
每個故事都會有結局,而現在,還不是為這位勤奮而堅韌的天才蓋棺論定的時候。那麼不妨將它當作一個寓言,我們能從中學到什麼呢?
第一點,在年輕的時候,多見識更大的天地。也許你就會發現這個世上某個角落,有你的IBM650。正如前校長柯炳生所說:「在好學校,學你最喜歡的專業,你就一定能做出點樣子來」。生命孑然一身而來,為何還要讓拚命的努力,僅僅是為了成為那個可以被別人代替的人呢?
第二點,不論是否從事科研,安貧樂道的心都是人生旅途的必備品。有時呢,臉皮要厚一些,不要為了誤解你的庸人去爭辯,白白浪費美好的生命。
那麼,今天的故事就講到這裡吧。謝謝讀到這裡的你。
文字:夏彤編輯:KFC圖片:來自網路
TAG:圖形公式不煩惱 |