程式語言的“別樣”編年史,原來都是“閒”惹的禍
程式碼是一門語言,這門語言搭建了人與計算機溝通的橋樑。通過編寫程式碼,人類可以“命令”計算機開發網頁、開發軟體、搭建遊戲... ...
這門語言並不是上帝的發明,它是前輩們發揮聰明才智創造出來的,前輩們的創造過程雖然充滿了有趣與巧合,但是並不神祕!本文就從1980年開始,帶你一覽程式語言發展的“別樣”歷史。
1800年,Joseph Marie Jacquard讓織布機學會了讀穿孔卡片,造出了第一臺重度使用多執行緒處理單元的機器。
預見到天網(Skynet)誕生的織布工們激烈地反對該項發明。
Ada Lovelace
1842年,Ada Lovelace厭倦了貴族生活,於是在記事本上寫寫畫畫,而記事本上的這些內容被後世稱作第一個釋出的計算機程式。
可惜當年沒有電腦,真是不巧。
1936年,Alan Turing啥都發明瞭,但英國法庭看他不順眼,還閹了他。後來女王免了他的罪名,雖然當時他已經死去幾百年了。
Alonzo Church
1936年,Alonzo Church和Turing一樣啥都發明瞭,但他生活在太平洋彼岸(也不是基佬)所以沒被女王人道主義。
John Backus
1957年,John Backus發明Fortran語言,也是“真正的程式設計者”使用的第一種計算機語言。
1959年,Grace Hopper發明了第一個面向企業、可用的程式語言,命名為“通用的業務導向語言”,簡稱為COBOL。
1964年,John Kemeny和Thomas Kurtz都覺得現有計算機語言的程式設計太難了,人們需要回歸基礎(basic),因而將他們發明的計算機語言稱之為BASIC。
1970年,Niklaus Wirth創造了Pascal和幾門其它語言(他就是這麼愛創造語言),他還創造了沃斯定律。相形之下摩爾定律就過時了,因為軟體開發者基於摩爾定律寫的軟體太臃雜了,連主機都帶不動。後來Electron.js的發明和基於它的抽象概念也證明了這一點。
Dennis Ritchie
1972年,Dennis Ritchie在貝爾實驗室裡對工作產生了厭倦,於是決定搞個帶大括號的C語言,並取得了巨大的成功。之後,他在語言中加入分段錯誤和其它一些對開發者友好的功能來增強C語言的生產力。
幹完這些工作後,離下班還有幾小時,所以他和貝爾實驗室的小夥伴們決定開發個程式來展示C語言,然後他們就造了個叫Unix的作業系統(紅紅火火恍恍惚惚)。
Alan Kay
1980年,Alan Kay建立了一門叫做Smalltalk的面向物件的程式語言。這門語言裡,什麼都是物件,物件本身也是一個物件。可惜大家都沒時間思考閒聊(small talk)的意義。
Larry Wall
1987年,Larry Wall經歷了一次宗教體驗,成為了一名傳教者,他傳播的教義就是Perl。
Jean David Ichbiah
1983年,Jean Ichbiah發現Ada Lovelace的程式就從來沒真正執行過,於是決定以她名字建立一門語言。
但她的語言也沒執行過。
1986年,Brac Box和Tol Move決定要建立一門基於Smalltalk、不可讀版本的C語言,並稱之為Objective C語言,但沒人看得懂這門語言的語法。
Bjarne Stroustrup
1983年,Bjarne Stroustrup從未來穿越過去,發現C語言沒給編譯留足時間,於是他把所有能夠想到的功能加進去了,並命名為C++。幾乎所有的程式設計者都在使用它,這樣他們就有理由在工作的時候擼貓片和看科學松鼠會了。
Guido van Rossum
1991年,Guido van Rossum寫了本關於蛋蛋和火腿的食譜(Python之父)。
1993年,Roberto Ierusalimschy和他的朋友們覺得他們需要一門英國本地化的指令碼語言,在本地化過程中出了個錯,使得本應該從0開始的計數從1開始了,然後他們把這個叫做Lua。
Rasmus
1994年,Rasmus Lerdorf為他個人主頁的CGI指令碼弄了個模版引擎,並把這個檔案釋出在網上了。世界各國人民欽定這個檔案哪哪都要用上,於是興奮炸裂的Rasmus又放了點額外的繫結資料庫上去,並稱之為PHP。
Yukihiro Matsumoto
1995年,Yukihiro Matsumoto不是很開心,還發現其它碼農也不是很開心,所以他建立了Ruby語言讓大家開心開心。Ruby語言面世後,Matz挺開心的,Ruby社群也挺開心,大家都很開心(*^__^*)。
Brendan Eich
1995年,Brendan Eich花了個週末設計了門語言,希望能夠為世上所有的網頁瀏覽器賦能,最終也影響天網。他最開始去了網景,並稱自己設計的語言為LiveScript,但Java在程式碼審查環節火了,於是他們決定用大括號才好,改名叫JavaScript。
後來Java一團糟,於是他們覺得這語言跟Java沾親帶故會出事,所以又在標準化時候把它改名叫ECMAScript,但人們還是按習慣稱之為JavaScript。
James Gosling
1996年,James Gosling建立了Java,第一個真正的過於詳細的、設計模式高於實用性的、面向物件的程式語言。這麼一個非常有效的、管理員供應商集裝箱供應商服務管理者單件模式管理者供應商模式就誕生了。
Anders Hejlsberg
2001年Anders Hejlsberg重建了Java,並稱之為C#,因為用C語言程式設計比Java要更酷。
大家都很愛這個Java新版本因為它一點也不像Java。
David Heinemeier Hansson
2005年,David Hanselmeyer Hansen建立了個叫做RubyonRails的網頁框架,人們從此把紅寶石與鐵路聯絡起來了。
John Resig
2006年,John Resig給JavaScript寫了個助手庫,所有人都覺得這也是門計算機語言,給許多從網上覆制貼上jQuery程式碼的人們解決了就業問題。
Ken Thompson
2009年,Ken Thompson和Rob Pike打算也造個類似於C語言但有更安全的裝置的語言,而且用金花鼠當作吉祥物讓它更好推銷。
他們把這門語言叫做Go語言,也開源了,支援社群的資金來源就是賣金花鼠的周邊護膝和頭盔。
2010年,Graydon Hoare也想造一門類似C語言的語言,並稱之為Rust。人們表示,所有的軟體都應該現在立即馬上用Rust語言重寫一遍。但Graydon喜歡一閃一閃的亮晶晶而不是生鏽的(rust)東西,所以去Apple開發Swift去了。
2012年,Anders Hjelsberg想在網頁瀏覽器裡重寫C#,於是他設計了TypeScript,其實也是JavaScript的一種,但更像Java了。
2013年,Jeremy Ashkenas也想像Ruby開發者那麼開心,所以他搞了個CoffeScript,也就是JavaScript的編譯,但看起來更像Ruby。然鵝,Jeremy並沒有像Matz和Ruby開發者那樣開心。
Chris Lattner
2014年,Chris Lattner設計Swift的初衷是讓它別像Objective-C一樣,所以最後Swift看起來就像是Java了。