編程語言簡史:有人討厭花括號,于是…
編程語言有上千種,但是流行的不過 10 來種,那些我們經(jīng)常使用的編程語言都是誰在什么時(shí)候創(chuàng)造出來的呢?Casper Beyer 為我們進(jìn)行了整理。
1800 年
Joseph Marie Jacquard 教會了一臺織布機(jī)讀穿孔卡片,制造出了第一個(gè)高度多線程的處理單元。他的發(fā)明受到了預(yù)見天網(wǎng)(Skynet)誕生的紡織工人的強(qiáng)烈反對。
1842 年
Ada Lovelace(英國詩人拜倫之女)為計(jì)算程序擬定“算法”,寫作的第一份“程序設(shè)計(jì)流程圖”,被珍視為“第一位給計(jì)算機(jī)寫程序的人”。稍微有點(diǎn)不便的是當(dāng)時(shí)還沒有計(jì)算機(jī)呢。
1936 年
阿蘭·圖靈被稱為計(jì)算機(jī)科學(xué)之父,人工智能之父。但英國法庭卻并不認(rèn)可,還判處對他進(jìn)行化學(xué)閹割。
女皇后來寬恕了他,但不幸的是當(dāng)時(shí)他已經(jīng)過世很久了。
1936 年
Alonzo Church(算法理論重要奠基人)發(fā)明了 lambda 算子,跟圖靈生活在同樣的時(shí)代,但是他在時(shí)代的另一邊,也并沒有被女王閹割。
1957 年
John Backus 創(chuàng)建了 FORTRAN 語言,這真正是程序員使用的第一種語言。
1959 年
Grace Hopper 發(fā)明了第一門針對企業(yè)面向商業(yè)的編程語言,并且把這門語言叫做“面向商業(yè)的通用語言(common business-oriented language)”,簡稱 COBOL。
1964 年
John Kemeny 和 Thomas Kurtz 認(rèn)為編程太難了,需要回歸本源,他們把自己的編程語言叫做 BASIC。
1970 年
Niklaus Wirth 開發(fā)了多種語言,最后流行起來的是 PASCAL。他喜歡開發(fā)語言。
他還發(fā)明了讓摩爾定律變得過時(shí)的 Wirth 定律(軟件變慢的速度比硬件變快的速度更快),因?yàn)檐浖_發(fā)者會編寫出連大型主機(jī)也沒法跟上的臃腫軟件。
這在后來被證明是正確的——在 Electron.js 被發(fā)明出來后
1972 年
Dennis Ritchie 在貝爾實(shí)驗(yàn)室上班上到無聊了,于是他決定寫出帶有花括號的C語言,這門語言取得了巨大成功。隨后他又增加了分段錯(cuò)誤等對開發(fā)者友好的功能來輔助提高生產(chǎn)率。
折騰完這門語言之后他還有時(shí)間,于是他跟在貝爾實(shí)驗(yàn)室的伙計(jì)決定給C語言做個(gè)演示程序,結(jié)果他們弄出了一個(gè)操作系統(tǒng),UNIX。
1980 年
Alan Kay 發(fā)明了一門面向?qū)ο笳Z言,他把這門語言叫做 Smalltalk,在 Smalltalk 中一切都是對象,甚至一個(gè)對象也是對象。沒人真正搞得清楚 small talk 是什么意思。
1983 年
Jean Ichbiah 注意到 Ada Lovelace 的程序從來都沒有實(shí)際運(yùn)行過,決定以她的名字開發(fā)一門語言,但是這門語言還是沒有跑起來。
1983 年
Bjarne Stroustrup 注意到C在編譯方面花的時(shí)間還不夠多,于是他把自己能想到的每一項(xiàng)功能都增加了進(jìn)去,然后稱之為C++。
每一個(gè)地方的程序員都接受了它,因?yàn)檫@樣他們在工作的時(shí)候找借口看阿貓阿狗視頻和 xkcd 漫畫就顯得比較有誠意了。
1986 年
Brac Box 和 Tol Move 決定在 Smalltalk 的基礎(chǔ)上制作一個(gè)C語言的不可讀版本,他們把這門語言叫做 Objective-C,但是沒人弄得清楚它的語法。
1987 年
Larry Wall 有宗教經(jīng)驗(yàn),他成為了一名牧師,并且把 Perl 變成了一種教義。
1991 年
Guido van Rossum 不喜歡花括號,于是他發(fā)明了 Python,語法選擇的靈感來源自 Monty Python(巨蟒劇團(tuán))和 Flying Circus(飛行馬戲團(tuán))。
1993 年
Roberto Ierusalimschy 和他的朋友認(rèn)為自己需要一個(gè)巴西本地化的腳本語言,在本地化期間發(fā)生了一個(gè)錯(cuò)誤,這個(gè)錯(cuò)誤會把指針從 1 而不是 0 開始計(jì)算,他們把這門語言叫做 Lua。
1994 年
Rasmus Lerdorf 給他個(gè)人主頁的 CGI 腳本做了一個(gè)模板引擎,后來他把自己的資料都放到了網(wǎng)上。
世界決定將這些東西用到一切,Rasmus 于是匆忙地將一些數(shù)據(jù)庫綁定做了進(jìn)去,并把這門語言叫做 PHP。
1995 年
Yukihiro Matsumoto 不是很高興,因?yàn)樗⒁獾狡渌绦騿T不是很高興。他創(chuàng)建了 Ruby 來讓程序員高興。在他創(chuàng)建了 Ruby 后“Matz”高興了,Ruby 社區(qū)高興了,每個(gè)人都高興了。
1995 年
Brendan Eich 利用周末時(shí)間設(shè)計(jì)了一門語言,打算用這門語言來為全世界的每一個(gè)主流瀏覽器乃至于最終的 Skynet 都提供動力。
他先是找到了 Netscape 然后說這門語言叫做 LiveScript,但在代碼評審期間 Java 變得流行起來,所以他們決定最好還是用花括號,然后就把它更名為 JavaScript。
結(jié)果表明,Java 卻是一個(gè)會讓他們?nèi)巧下闊┑纳虡?biāo),JavaScript 隨后更名為 ECMAScript,但大家還是把它叫做 JavaScript。
1996 年
James Gosling 發(fā)明了 Java,第一們真正過于繁瑣的面向?qū)ο笳Z言,在這里設(shè)計(jì)模式完全壓倒了實(shí)用主義。
于是就誕生了超級有效的管理器提供商、容器提供商、服務(wù)提供商、單一管理器提供商模式。
2001 年
Anders Hejlsberg 重新發(fā)明了 Java 然后把它叫做C#,因?yàn)橛肅來編程感覺要比 Java 酷。每個(gè)人都喜歡這個(gè)新版本的 Java,因?yàn)樗耆幌?Java。
2005 年
David Hanselmeyer Hansen 創(chuàng)建了一個(gè) web 框架叫做 Ruby on Rails,從此大家不再記得 Ruby 和 Rails 是兩個(gè)獨(dú)立的東西了。
2006 年
John Resig 為 JavaScript 寫了一個(gè)幫助庫,每個(gè)人都以為那是一門語言,從此從互聯(lián)網(wǎng)上拷貝粘貼 jQuery 代碼就成為了一門職業(yè)。
2009 年
Ken Thompson 和 Rob Pike 決定做一門類似C那樣的語言,但要有更安全的裝置,還要有更好的賣相,并且把 Gopher(囊鼠)作為吉祥物。
他們把這門語言成為 Go,并把它做成開源然后另外賣 Gopher 商標(biāo)的護(hù)膝和頭盔作為收入來源。
2010 年
Graydon Hoare 也想把語言做成C那樣,他稱之為 Rust。每個(gè)人都要求馬上用 Rust 把軟件的每一塊都重寫一遍。Graydon 希望做點(diǎn)更有亮點(diǎn)的事情,于是開始為蘋果開發(fā) Swift。
2012 年
Anders Hjelsberg 希望在 web 瀏覽器里面寫C#,于是他設(shè)計(jì)出 TypeScript,這東西其實(shí)是 JavaScript,但里面有了更多的 Java 的東西。
2013 年
Jeremy Ashkenas 想要像 Ruby 開發(fā)者一樣快樂,于是他創(chuàng)建了 CoffeeScript,這東西編譯后像 JavaScript 但是樣子又更像 Ruby。Jerry 從來都沒有變得像 Matz 和 Ruby 開發(fā)者那樣真正快樂。
2014 年
Chris Lattner 做 Swift 的時(shí)候,其主要的設(shè)計(jì)目標(biāo)就是不要成為 Objective-C,最后它看起來像 Java。