漫畫 | 這個北歐小國發明的編程技術,竟然占領全世界了!
上世紀60年代 ,挪威計算中心。
一個新來員工剛上班,發現有兩個人居然在一樓的黑板前打架。
新員工立刻跑到電話接線員那里報告
什么樣的編程語言,能讓兩人大動肝火?
當時Nygaard正在編寫復雜系統的模擬程序,模擬程序要求先定義通用的行為,然后再創建大量的實例出來。
挪威不是計算機和軟件的強國,挪威計算中心也不是資金雄厚的研究所。
Dahl和Nygaard要發明新編程語言的事情,遭到了組織內部的批評。
但是Dahl和Nygaard并不在意,他們以ALGOL 60 為基礎,開始設計Simula 。
在不斷的設計迭代中,兩人迸發出來強大的創造力,在Simula中發明了現代面向對象的所有關鍵概念!
Simula本意是為了做“模擬”,但后來大家認識到,這是一種新的編程泛型,它完全可以作為通用的編程語言。
Simula是世界上第一個面向對象的語言,Dahl和Nygaard因為對面向對象的卓越貢獻獲得了計算機界最高獎:圖靈獎。
可惜的是,2002年,Dahl和Nygaard不幸去世,在這里向兩位前輩致敬。
讓我們再把目光轉向美國,1968年,博士生Alan Kay 提了一個非常超前的想法:制作一臺適合所有年齡段兒童的個人電腦!Dynabook。
Dynabook需要有圖形用戶界面,有無線網絡,可以協作,并且本身就是個強大的編程環境。
1970年,Alan Kay 加入了著名的施樂帕洛阿托研發中心,Dynabook的想法成功地激發施樂開發了Alto電腦。
Alto電腦是個劃時代的產品,里邊有很多影響后世計算機的重大創新
Smalltalk是第一個純粹的面向對象編程語言,在Smalltalk中,一切都是對象!
所有的計算都是通過發送消息來完成的,消息傳遞是Smalltalk最重要的概念。
Smalltalk對后來的編程語言產生了巨大的影響力,它發明的MVC被后來各種框架采用。
它實現的消息傳遞、GC、字節碼、純粹的面向對象被很多語言借鑒。
重構、設計模式、極限編程后來也被發揚廣大。
Simula和Smalltalk作為兩個面向對象的先驅,可以說是領先時代,但它們都沒有大范圍地流行起來
1969年,一個叫Bjarne Stroustrup的年輕人進入丹麥Aarhus大學學習計算機專業。
在這里他遇到了Simula的發明人Nygaard,挪威離丹麥不遠,Nygaard經常來這里講學。
面向對象的思想就此在Bjarne Stroustrup腦海中埋下了種子。
1979年,Bjarne Stroustrup 在劍橋大學寫博士論文的時候,他再次注意到了Simula。
Bjarne Stroustrup畢業后加入了貝爾實驗室,在這里他近距離接觸到了C語言。
Bjarne Stroustrup決定為C語言增加一些類似Simula的面向對象特征
1985年,C++的第一個版本發布,它既有C語言閃電般的速度,又支持面向對象,受到了大家的熱烈歡迎。面向對象從此進入主流。
到了90年代,Java出現,更是將面向對象推向最高峰。
與此同時,在世界的另一端