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