蘋果、微軟的成就都是因爲站在這個巨人的肩膀上

相信很多剛剛上大學的計算機、電子通信等相關專業的同學,在學校學習接觸的第一門編程語言課程一般都是C語言。

可能有很多非計算機專業學生都是稀裏糊塗的學完這個課程,也有很多學生因爲掛科而開始“記恨”C語言的發明人,可是你知道你真正要“記恨”的那個人是誰麼?還有,你知道C語言至今已經誕生了多少年?是怎麼誕生的呢?它又對計算機的發展造成了哪些影響?

 

緣起於興趣

1967年,一個平常的日子,位於美國新澤西的貝爾實驗室迎來了一位26歲的新員工,他叫丹尼斯·裏奇(Dennis Ritchie),一個簡單而又低調的年輕人。誰也想不到的是,這個初來乍到的新員工今後會對計算機領域帶來了如何不朽的影響。

他的父親是貝爾實驗室的一個電氣工程師,受其父親影響,裏奇在中學畢業後進入了哈佛大學學習物理學和應用數學。在偶然機會下他聽了一些計算機相關的講座,從此便迷上了計算機,他還去選修了一學期計算機介紹的正規課程,之後便投入大量精力研究計算機理論和實踐。

歷史似乎總是按着既定的軌跡前進,裏奇進入貝爾實驗室後很快便開始參與他感興趣的也是剛剛興起的計算機研究。從此貝爾實驗室更像是他的家,他在這裏一工作便做到了退休,幾十年如一日的兢兢業業。

 

一件值得做的事

參加工作後不久,裏奇便開始參與第一個大項目,是由貝爾實驗室、麻省理工學院和通用電氣公司三方共同聯合研發的項目,目的是爲了開發出一套安裝在大型主機上多人多工的操作系統,即Multics分時操作系統。

可惜好景不長,1969年由於進度過於緩慢,Multics項目最終遭到裁撤,貝爾實驗室退出了該計劃。第一個大項目就這樣無果而終,裏奇終歸還是有所不甘卻又無可奈何。不過,不久他遇到了一個人,一個對他這一生的成果幫助巨大的人,也是他一生的摯友,比他小兩歲的肯·湯普森。

肯·湯普森老爺子年輕的時候應該是個遊戲宅和技術宅,他先是編寫了個模擬太陽系旅行的遊戲Space Travel,然後爲了能更好得玩上這個遊戲,他在BCPL語言基礎上開發出一個簡單很多的B語言,然後找了臺空閒的PDP-7電腦開始用B語言編寫一個能跑遊戲的系統,這個系統便是Unix系統的前身。

有一天,湯普森找到裏奇,想讓他加入自己的個人小項目,一塊開發Unix系統,本身對計算機技術就癡迷的裏奇當然跟湯普森一拍即合,就此展開了轟轟烈烈的Unix系統開發,而其最根本的原因也僅僅是爲了想在PDP-7電腦上運行Space Travel遊戲。

1970年,他們成功開發出基於B語言的Unix系統,而B語言是一種解釋型語言,有着很大的侷限性,造成他們開發系統的時候會太過複雜和繁瑣。於是,他們決定在B語言的基礎上進行改造和開發一種更高級的語言,終於在1972年,裏奇成功創造設計出了一種新的高級的語言,同時也是編譯型的語言,B語言是BCPL的第一個字母,裏奇就用第二個字母,所以C語言就此誕生。與B語言不同的是,C語言可以被編譯成機器碼,直接運行在CPU上,速度相對於B語言是不可同日而語的。

開發和編程的樂趣,早已讓這兩個人忘記了那個之前一直心心念唸的Space Travel遊戲。1973年初,在C語言主體已經基本開發完成之後,他們就開始迫不及待全身心的投入到用C語言重寫Unix系統。也是這一年,他們成功用C語言開發出了Unix系統第三版內核,至此之後Unix系統基於C語言的移植和修改都變得相當便利,這爲之後的Unix發展和普及打下了堅實的基礎。

回顧那段歷史,我們看到C語言幾乎都是伴隨着Unix的發展而發展,而C語言強大的移植性也促進了Unix的推廣。因爲C語言只要在不同架構處理器的計算機上加上相應的C語言編譯器和庫,就可以把C源代碼進行編譯,同時連接成目標二進制文件,這樣就可以在不同架構的機器上運行。

在1977年,裏奇發表了《可移植的C語言編譯程序》,主要介紹瞭如何基於不同架構系統下編譯C語言。第二年,貝爾實驗室正式向世界發表了C語言,雖然此時的C語言還沒有具體標準,直到布萊恩·柯林漢(Brian Kernighan)與裏奇一起編寫了一部至今仍被C語言學習者認爲是學習C語言的“聖經”的《The C Programming Language》(C程序設計語言),所以在那些還沒有C語言標準的年代,此書一直被當作是 C語言的非正式的標準說明。

很久以後,有人問裏奇是什麼啓發了他如此設計C語言,他回答很簡單:“這看起來是件值得做的事”。

 

站在巨人的肩膀上

C語言和Unix的出現,給計算機時代帶來一片嶄新的天地,影響極其深遠,在之後幾十年的計算機工業發展佔有極其重要的地位。

C語言的出現對現代計算機編程語言如C++、Objective-C、Java、C#等都有極大的影響,可以說C語言是現代程序語言革命的起點,是程序設計語言發展史的一個重要里程碑。同樣,Unix系統也對現代操作系統有着極大的影響,不管是AIX、Solaris、Mac OS X和BSD等這些不同的Unix系統,還是現在非常普及的類Unix系統Linux操作系統,甚至是微軟的Windows。甚至可以毫不誇張的說,蘋果、微軟等這些科技巨頭公司都是站在裏奇的肩膀上成功的。

1983年,裏奇和湯普森由於“研究發展了通用的操作系統理論,尤其是實現了UNIX操作系統”共同獲得了那一年的圖靈獎。並在1999年獲得有克林頓總統親自頒發的美國國家技術獎章,以表彰他們在C語言和Unix系統上的卓越貢獻。

2007年,裏奇從貝爾實驗室退休開始過上隱居生活,2011年美國時間10月12日在新澤西的老家中不幸去世,享年70歲。

最後,引用他的好友布萊恩·柯林漢對他的評價:牛頓說他是站在巨人的肩膀上,如今,我們都站在裏奇的肩膀上。

小程序猿謹以此文,獻給在天堂的計算機科學巨匠、C語言之父、Unix之父丹尼斯·裏奇!

 

我是前方有隻程序猿,一隻會寫代碼的IT猿,用略拙的文筆,飽含敬意地介紹每一位計算機科學巨匠!歡迎關注我!

 

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