很多人可能聽說過 Dennis Ritchie 這個人。上世紀 60 年代末,他從哈佛大學應用數學系畢業並「子承父業」加入貝爾實驗室,在那裏度過了他的整個職業生涯。加入貝爾實驗室不久,他就和 Ken Thompson 一起開發了 Unix 操作系統和經久不衰的 C 語言。Thompson 領導了系統的開發,Ritchie 則主導了 C 語言的創造。在 C 語言問世之後,Thompson 又用它重寫了 Unix。1983 年,Dennis Ritchie 和 Ken Thompson 共同獲得圖靈獎。
半個世紀之後,Unix 已經成爲構建數字世界大多數操作系統的基礎,而 C 語言則成爲世界上最受歡迎的編程語言之一。
Ken Thompson 和 Dennis Ritchie
雖然 Dennis Ritchie 已經於 2011 年去世,但貝爾實驗室依然保留着他的個人主頁。在這個頁面上,Ritchie 用他特有的乾巴巴的口吻對自己的計算科學求學生涯進行了介紹:
「我在哈佛大學讀本科並進一步深造,我的本科專業是物理學,研究生專業是應用數學…… 我的博士論文(1968 年)關於函數的子遞歸層次(subrecursive hierarchies)。本科階段的學習讓我明白,以自己的才智還不足以成爲一名物理學者,而往計算機方向發展似乎相當不錯。研究生階段的經歷又讓我清醒,自己的才智也不足以讓我成爲算法理論方面的專家。我自己更喜歡過程式語言,而不是函數式語言。」
且不論這些自我評價是否客觀,Ritchie 選擇的道路的確將他帶到了一個讓自己大放異彩的領域。
儘管 Ritchie 在計算機領域享有盛名,但鮮爲人知的是,他的博士學位論文沒有幾個人親眼見過,因爲這份論文——遺失了。
沒錯,就是遺失了,既沒有發表也沒有被任何公開文獻收錄,甚至哈佛大學圖書館的館藏目錄和論文數據庫中也找不到這篇論文。2011 年 Ritchie 去世的時候,他的妹妹 Lynn 仔細地翻閱了哈佛的館藏記錄和其他渠道,也沒有找到一份副本。
功夫不負苦心人,最終,她從 Ritchie 導師的遺孀那裏找到了一本。但由於缺少公開副本,在過去的半個世紀裏,只有不到十幾個人讀過這篇論文。
爲什麼會出現這種情況?
在 Ritchie 的自我描述中,我們注意到,他並沒有明確說明自己憑藉 1968 年那篇論文拿到了博士學位。實際情況是:他的確沒有拿到博士學位。
這中間出了什麼狀況?Ritchie 的研究生同窗、MIT 教授 Albert Meyer 給出了一個意想不到的答案。
因爲不想付裝訂費,博士論文遺失了半個多世紀
Albert Meyer 回憶道:
「我從我們導師 Pat Fischer 那裏聽到的解釋是,當時哈佛有一項規定:要想獲得博士學位就得向學校圖書館提交一份裝訂好的論文,然後圖書館纔會給你一份用來獲得博士學位的證明。當時,Dennis 已經將論文提交給了論文評審委員會,而且得到了通過。他還手打了一份準備提交給圖書館,但圖書館卻告訴他論文需要裝訂成冊再提交。那時候,裝訂費不是一筆小數目…… 倒也不是貴到拿不出來那種,只是說所費不菲。據 Pat 所說,Dennis 當時的態度是:『如果哈佛圖書館想要一本裝訂好的論文,那他們應該自己掏錢,我是不會掏的!』很顯然,他的確這麼做了,也因此沒拿到博士學位。」
所以,這位大佬之所以沒有拿到博士論文,並不是論文本身有問題,而是因爲「任性」,打死不交裝訂費!
經過多方打聽,Lynn 證實了 Ritchie 的確沒有提交裝訂版論文,也的確沒有拿到哈佛的博士學位,但 Ritchie 的兄弟 John 認爲,他之所以這麼「任性」絕不僅僅是因爲那點裝訂費:Ritchie 當時已經有了一份夢寐以求的工作——貝爾實驗室研究員,而且他是那種不拘小節的人,「不會去關心生活中的一些細枝末節」。