不得不承認(rèn),世界上第一個(gè)編程語言完全是懶惰的副產(chǎn)物。對(duì)于IBM員工John Backus而言,上世紀(jì)五十年代的計(jì)算機(jī)操作起來太復(fù)雜了。那時(shí)候,程序員們需要使用二進(jìn)制機(jī)器碼才能與計(jì)算機(jī)通訊,只有最高端的系統(tǒng)才支持字節(jié)。操作計(jì)算機(jī)的人需要處理超長(zhǎng)的打孔紙帶——這是一件麻煩又非常容易出錯(cuò)的事。1952年,接到美國(guó)海軍的命令后,數(shù)學(xué)家Grace Hopper使用A-0系統(tǒng)創(chuàng)造了一個(gè)程序,這段程序可以合并海軍指揮命令中特定的字符串(String),然后將其轉(zhuǎn)換為機(jī)器碼。最后,在編譯器的幫助下,人終于可以與機(jī)器進(jìn)行“對(duì)話”了,但這種匯編語言的代碼依然非常抽象。在John Backus看來,匯編語言太麻煩了,他很快想到了應(yīng)該發(fā)明一種語言,它可以將符合人類語言邏輯的對(duì)話“翻譯”為機(jī)器語言命令。他把這種自己設(shè)計(jì)的計(jì)算機(jī)編程語言稱為“FORmula TRANslation”,縮寫為FORTRAN。第一個(gè)高級(jí)程序設(shè)計(jì)語言FORTRAN的出現(xiàn),使得編寫程序的代碼(命令)數(shù)比機(jī)器碼時(shí)代降低了至少20倍。
編程難度相對(duì)降低之后,計(jì)算機(jī)開始進(jìn)入大學(xué)和金融研究機(jī)構(gòu)。由于它們對(duì)計(jì)算機(jī)的需求與早期從事科研及軍事的機(jī)構(gòu)不同,為了讓他們更好地使用計(jì)算機(jī),讓編程語言更易于理解、并可以為特定的任務(wù)而優(yōu)化就成為了當(dāng)時(shí)的發(fā)展趨勢(shì)。正因?yàn)槿绱?,專注于編程語言和軟件開發(fā)的新型企業(yè)開始出現(xiàn)。例如,比爾·蓋茨在1975年創(chuàng)建了微軟公司,他們希望為即將到來的個(gè)人電腦開發(fā)操作系統(tǒng)和應(yīng)用軟件。與此同時(shí),擁有不同優(yōu)勢(shì)和弱點(diǎn)的各種編程語言開始涌現(xiàn)。人們很快就發(fā)現(xiàn)了問題:這些編程語言并不能相互兼容,大多數(shù)編程語言容易出錯(cuò)且不穩(wěn)定。直到美國(guó)國(guó)防部在1983年指定Ada語言為第一個(gè)標(biāo)準(zhǔn)化的編程語言后,情況才好轉(zhuǎn)了一些。以美國(guó)國(guó)防部為例,他們使用的編程語言從450個(gè)降到了36個(gè)。
為互聯(lián)網(wǎng)而生的新語言
編程語言的進(jìn)化隨著互聯(lián)網(wǎng)的繁榮又迎來了新的階段,服務(wù)器和瀏覽器的工作模式向編程語言提出了新的挑戰(zhàn),它要求編程語言在穩(wěn)定性、系統(tǒng)安全和可訪問性上要有所提升。因此腳本語言在那時(shí)出現(xiàn),這種語言被認(rèn)為是簡(jiǎn)單的、容易理解的,它可以將程序代碼輕易地集成到最流行的系統(tǒng)中。其實(shí),還有很多特殊的編程語言對(duì)大部分人而言是陌生的,因?yàn)樗鼈儾]有實(shí)際的用途,甚至源代碼都讓人難以理解,例如不支持可打印源代碼的,只由空格和制表符等組成的編程語言Whitespace,采用菜譜一樣源代碼結(jié)構(gòu)的Chef等。
盡管編程語言的進(jìn)化歷史并不長(zhǎng),但是依然誕生了很多長(zhǎng)壽的、極具生命力的編程語言。一些智能手機(jī)App仍在使用部分C語言,54歲的FORTRAN仍然在不斷改進(jìn)、成長(zhǎng)中,并誕生了許多不同的分支,它的發(fā)明者John Backus至今仍然在該語言的發(fā)展領(lǐng)域扮演著重要的角色。