瞭解和學習一門語言、一個系統乃至方方面面的任何東西時,若是不知道其歷史和現狀而只是一上來就一味地悶頭苦學,你就很容易「一葉障目不見泰山」。編程
如此這般火急火燎的就上手苦幹,私覺得大錯特錯,所謂「學而不思則罔」。固然,上手苦幹也是以後的很重要的部分。編程語言
想要了解C語言的歷史,請慢慢品味以下這long long ago 的故事,這涉及到了不少公司和人物,且聽我一一道來。學習
爲何要介紹at&t 呢?spa
這是由於,C語言和Unix起源於貝爾實驗室,而要了解貝爾實驗室,咱們得先從其所屬所屬公司at&t 開始……操作系統
由其名字(美國電話電報公司)就能夠看出來at&t 主要致力於通信領域,它起源於遙遠的1877年,距今已經有100多年的的歷史了(我想到了馬雲說要作101年的企業,願你成功!)。設計
到今天,單就這一個at&t 獨立公司來講,它目前是主營電信業務,是美國第二大移動運營商。unix
然而,要說at&t 就不得不從他的創始人Bell - 貝爾 開始提及…對象
請注意,這不是貝爾·格里爾斯(Bear Grylls),儘管這guy很酷~blog
咱們的主角叫亞歷山大·格拉漢姆·貝爾(Alexander Graham Bell,1847-1922),他是美籍加拿大著名發明家和企業家,他得到了世界上第一臺可用電話機的專利權,是「電話之父」。它以電話專利權起家建立了貝爾電話公司 ,這家公司和以後的大量衍生公司最終被稱爲貝爾系統 。此外,他還發明瞭載人巨型風箏、水翼船、改良了留聲機等。繼承
2002年6月15日,美國國會經過一項決議,斷定意大利人安東尼奧·梅烏奇(Antonio Meucci)爲電話的發明者。換言之他纔是「電話之父」!
那麼歷史究竟是怎樣的呢?根據能夠網上能夠查到的資料顯示:
意大利人梅烏奇在1849年的一天在他研究電生理學的過程當中發現了「電話的原理」並開始研究他稱之爲「會說話的電報機」的裝置。此時,亞歷山大·貝爾才兩歲…
在移居美國以後,由於不會英語的關係他始終融入不進主流社會,得不到應有的承認,甚至他連申請專利的錢都不夠。更加讓人心寒的是,1876年和梅烏奇共用一個實驗室的貝爾向美國專利局提出申請電話的專利權!
固然,梅烏奇憤而提起上訴,當時最高法院已經贊成以欺詐罪指控貝爾,但就在勝利曙光要顯現時,年近80窮困潦倒、病魔纏身的梅烏奇卻於1889年帶着遺憾離開了人世。
歷史就是如此具備魔力,成王敗寇,歷來如此。貝爾得到了電話的專利權,成爲「電話之父」,名聲大噪,建立了貝爾電話公司(at&t前身)。自此,歷史的車輪一直走到了今天。固然,咱們不能由於一點而徹底否定一我的,貝爾仍是爲社會、科技的發展做出了卓越的貢獻!
後人只能從當時留下的不知真假的隻言片語中猜想當時發生了什麼。若是以上是真實的歷史,那麼我相信隨着美國國會的一紙決議,梅烏奇終於能夠稍感欣慰了。
貝爾建立的貝爾系統,也能夠用at&t 代稱,在其100多年的歷史中,經歷了屢次的拆分和重組(因爲自身發展或是政府反壟斷)。
貝爾系統包括母公司at&t 和數量龐大的子公司和研究所,曾長期壟斷了80%-90%的美國市話和長途業務。而到今天,如今的at&t 已是被拆分了幾回以後的結果了。貝爾系統 的歷史以下:
1877年,貝爾 成立了一家叫作美國貝爾電話公司 的公司。
1895年,貝爾 又成立了一個公司來負責其正在開發的美國全國範圍的長途業務,這就是美國電報電話公司 - at&t 。
1899年,at&t 整合了貝爾電話公司的業務,成爲了貝爾系統(貝爾的一系列公司)的母公司。
1984年,美國司法部根據《反托拉斯法》拆分了at&t ,將其分爲8個公司,1個公司繼承了母公司名字at&t (專營長途話務)、7個本地電話公司(貝爾七兄弟)。
1995年,at&t 再次被分離爲3個公司,除了1個at&t 外,分出了2個從事設備開發製造的朗訊科技 和NCR 。至此at&t只保留了通訊服務業務。
2005年,原貝爾七兄弟之一的西南貝爾 ,以160億收購了at&t ,合併後的企業保留了at&t 名字。
題外話,今天美國NBA中馬刺隊(San Antonio Spurs)的主場就叫at&t Center
說了以上那麼多,其實和咱們關係最大的是at&t 的一個部門:貝爾實驗室。
貝爾實驗室如雷貫耳,自1925年以來,實驗室共得到了兩萬五千多項專利(請自行與國內大部分扯淡專利區分開來),8項諾貝爾獎。
在20世紀二三十年代,貝爾實驗室的研究人員推出了遠距離電視傳輸、數字計算機,領導了有聲電影的開發;兩項信息時代的重要發明 - 晶體管和信息論都是貝爾實驗室在40年代研究出來的。在50、60年代,貝爾實驗室發明了太陽能電池、激光的理論和通訊衛星。
貝爾實驗室的歷史以下:
1925年,at&t 收購了西方電子公司的研究部門,成立了一個叫作「貝爾電話實驗室公司」的獨立實體,後來改稱爲:貝爾實驗室 。
1995年,從at&t 分離出了獨立公司朗訊科技(Lucent Technologies),貝爾實驗室一併納入朗訊科技 麾下。
2006年,法國阿爾卡特(Alcatel)公司 收購了朗訊,在合併後的新公司中,朗訊只佔40%,其合併後的規模僅次於美國思科,新公司稱爲:阿爾卡特-朗訊(Alcatel - Lucent),貝爾實驗室目前屬於阿朗。
2008年,因爲阿郎 長期虧損,不得不出售了已經有46年曆史的貝爾實驗室大樓(上圖),值得欣慰的是,購得大樓的地產開發商並無徹底抹掉大樓的計劃。
2015年,諾基亞 宣佈將以156億歐元收購阿郎 ,預計2016年上半年完成。我想,若是貝爾實驗室部門還存在,應該要納入諾基亞了。
根據現有資料,貝爾實驗室 的規模和人員已經大不如前,不知道將來在諾基亞中貝爾實驗室 是否還會繼續存在……可是,其輝煌燦爛的歷史已經彪炳史冊,值得咱們永遠崇敬了!
我以爲上面這段歷史頗有趣,無數的因果、偶然造就了今天五彩繽紛的世界……好吧,終於到了C語言部分了……好漫長,那麼咱們開始吧。
由上可知,貝爾實驗室實際上是專一於通信領域的,但其對計算機軟件領域的影響卻也是無與倫比的!
20世紀60年代,貝爾實驗室的研究員Ken Thompson(肯·湯普森)發明了B語言,並使用B編了個遊戲 - Space Travel,他想玩本身這個遊戲,因此他揹着老闆找到了臺空閒的機器 - PDP-7,可是這臺機器沒有操做系統,因而Thompson着手爲PDP-7開發操做系統,後來這個OS被命名爲 - UNIX。
Thompson(肯·湯普森)發明了UNIX
1971年,Ken Thompson的同事D.M.Ritchie(DM裏奇),也很想玩Space Travel,因此加入了Ken Thompson,合做開發UNIX,他的主要工做是改進Thompson的B語言。
最終,在1972年這個新語言被稱爲C,取BCPL的第二個字母,也是B的下一個字母。
D.M.Ritchie(DM裏奇)發明了C語言
1973年,C主體完成。Ken Thompson和D.M.Ritchie火燒眉毛的開始用C語言徹底重寫了UNIX。此時編程的樂趣已經使他們徹底忘記了那個「Space Travel」,一門心思的投入到了UNIX和C語言的開發中。自此,C語言和UNIX相輔相成的發展至今。
Ken Thompson(left)和D.M.Ritchie(right)
C語言、C語言的起源以及相似C語言的編程語言的歷史簡直不要太漫長,我簡單總結列表以下:
CPL(Combined Programming Language) - 1963
CPL是1963年劍橋大學發明的
BCPL(Base Combined Programming Language) - 1967
劍橋的Matin Richards 對CPL作了簡化,推出了BCPL
B(B Programming Language) - 1969
貝爾實驗室的Ken Thompson(肯·湯普森) 對BCPL又作了改進,設計出了簡單的且接近硬件的B語言,並用B語言寫了第一個UNIX OS
C(C Programming Language) - 1972
貝爾實驗室的另一我的Dennis MacAlistair Ritchie(D.M.Ritchie - DM裏奇)在B的基礎上設計出了C語言。C 保持了B的優勢(精煉、接近硬件),又克服了他的缺點(過於簡單,數據無類型)
C++(C plus plus Programming Language) - 1983
仍是貝爾實驗室的人,Bjarne Stroustrup(本賈尼·斯特勞斯特盧普) 在C語言的基礎上推出了C++,它擴充和完善了C語言,特別是在面向對象編程方面。必定程度上克服了C語言編寫大型程序時的不足。
Java(Java Programming Language) - 1995
Sun公司的Patrick Naughton的工做小組研發了Java語言,主要成員是James Gosling(詹姆斯·高斯林)
C#(C Sharp Programming Language) - 2000
Microsoft公司的Anders Hejlsberg(安德斯·海爾斯伯格)發明了C#,他也是Delphi語言之父。
隨着時代和社會的發展的須要,編程語言也跟着發生了很大的改變,舊有的語言不斷的完善、增長了新的特性;同時,也有不少優秀的新編程語言出現。
但站在巨人肩膀上的咱們,應該記得那些彷佛要消散在歷史中的瞬間。