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