可能程序員們都認(rèn)為編寫(xiě)代碼時(shí)給變量取名是件煩人的事,不過(guò)他們還需要給另外一個(gè)東西取名,那就是新的編程語(yǔ)言。編程語(yǔ)言命名通常有幾個(gè)規(guī)律,如根據(jù)特性取縮寫(xiě)(如BASIC,COBOL,TCL和LISP),以已有的語(yǔ)言為基礎(chǔ)(如C++,C#和CoffeeScript),或直接是數(shù)學(xué)和計(jì)算機(jī)領(lǐng)域杰出人物的名字(如Ada,Pascal和Turing)。有時(shí),設(shè)計(jì)者取名時(shí)更充滿想象力。下面是13個(gè)意味深長(zhǎng)的名字,以及它們背后的故事。
Python
于20世紀(jì)80年代末,由GuidovanRossum發(fā)明,初衷據(jù)說(shuō)是為了打發(fā)圣誕節(jié)的無(wú)趣,1991年發(fā)布,是ABC語(yǔ)言的繼承,同時(shí)也是一種腳本語(yǔ)言,目前已經(jīng)很流行。取名時(shí),GuidovanRossum 認(rèn)為它應(yīng)該“短小,獨(dú)特,還有一點(diǎn)神秘感”,他是英國(guó)劇團(tuán)MontyPython的忠實(shí)粉絲,所以就是Python了。
Java
于20世紀(jì)90年代初期誕生,源自Sun公司的智能家電程序開(kāi)發(fā),如互動(dòng)電視。最初名為Oak,不過(guò)Sun公司的律師發(fā)現(xiàn)這個(gè)名字已經(jīng)被注冊(cè)。通過(guò)一系列的會(huì)議,公司從一個(gè)包含有Silk,DNA和Java的名單中選擇了它。是誰(shuí)第1個(gè)建議使用Java這個(gè)名字的不得而知,不過(guò)普遍猜測(cè)是靈感來(lái)自Peet咖啡店,因?yàn)镾un公司的工程師們很喜歡到這里喝咖啡。
Forth
于20世紀(jì)60年代,由CharlesMoore創(chuàng)造。1968年CharlesMoore在一家名為Mohasco的家裝公司工作,只有一臺(tái)最多2250圖形顯示點(diǎn)數(shù)的IBM1130微型計(jì)算機(jī),不過(guò)卻要用它來(lái)設(shè)計(jì)地毯,而FORTRAN卻不能滿足要求,所以他發(fā)明了Forth。最初其名為Fourth,不巧,IBM1130最多支持5個(gè)字符的文件名,“u”去而“Forth”生。
Perl
被譽(yù)為“瑞士軍刀”,以靈活性和高效性著稱,于20世界80 年代由LarryWall發(fā)明。LarryWall的構(gòu)思是這個(gè)名字應(yīng)該短,并充滿正面意味。想到pearl前,他還考慮過(guò)他妻子的名字Gloria。不過(guò)已經(jīng)有一種語(yǔ)言叫PEARL,所以去掉了pearl中的"a"。值得一提的是,這個(gè)名字一直都是小寫(xiě),受Unix文件系統(tǒng)都是區(qū)分大小寫(xiě)的影響,1991年P(guān)erl4發(fā)布時(shí),LarryWall將首字母改為大寫(xiě)。
Lua
于1993年,由TeCGraf開(kāi)發(fā)完成,是一種腳本語(yǔ)言。該語(yǔ)言由DEL和SOL開(kāi)發(fā)而來(lái),結(jié)合了兩者的優(yōu)點(diǎn),并增加了了流控制等函數(shù)特性,可謂是它們的孩子。葡萄牙語(yǔ)中,sol意為”太陽(yáng)”,而lua意為“月亮”。
Smalltalk
于20世紀(jì)70年代早期,由XeroxPARC開(kāi)發(fā),是是面向?qū)ο箢愋驼Z(yǔ)言的一員,后來(lái)的Java,Python和Ruby中都能見(jiàn)到其影子。優(yōu)化后,參與開(kāi)發(fā)者AlanKay對(duì)其命名時(shí)表示應(yīng)該遵從名字看起來(lái)好看的語(yǔ)言,如“Zus”和“Thor”都不長(zhǎng)命,這種規(guī)律。所以,就取了“Smalltalk”這個(gè)平平的名字。
Logo
于20世紀(jì)60年代,是由DanielG.Bobrow,WallyFeurzeig,SeymourPapert和CynthiaSolomon設(shè)計(jì)的一種教學(xué)式語(yǔ)言,也是一種Lisp方言,為教學(xué)過(guò)程中介紹大量程序設(shè)計(jì)概念提供了便利,對(duì)后來(lái)的教學(xué)式編程語(yǔ)具有深厚的影響,如Scratch。這種語(yǔ)言的一個(gè)重要特征就是“海龜繪圖”系統(tǒng)。其名源自“l(fā)ogos”,希臘語(yǔ)中意為“單詞”或“思想”,以區(qū)別于傳統(tǒng)的編程語(yǔ)言。
Ruby
于1993年,由YukihiroMatsuMOTO(“Matz”)開(kāi)發(fā)完成,是名副其實(shí)的面向?qū)ο蟮哪_本語(yǔ)言,與Perl和Python比肩。Matz希望同Perl一樣,為它取一個(gè)寶石的名字。與同事KeijuIahitsuka 在許多名字中篩選后,剩下Coral和Ruby。最終選擇Ruby是因?yàn)?,Perl的發(fā)音與6月的誕生石pearl(珍珠)相同,Ruby選擇以7月的誕生石ruby(紅寶石)命名,Matz認(rèn)為Ruby不只甘做Perl(Matz認(rèn)為其是“玩具語(yǔ)言”)的后繼者,而是要替代它。
Scheme
20世紀(jì)50年代末,JohnMcCarthy在MIT開(kāi)發(fā)了最早的高級(jí)編程語(yǔ)言,Lisp。它迅速成為了人工智能研究領(lǐng)域的第1選擇。隨后,許多Lisp方言相繼誕生,如Planner和Conniver。1975年,GeraldJaySussman同MIT的GuySteele聯(lián)合開(kāi)發(fā)完成了另外一種Lisp方言,并根據(jù)Planner和Conniver的取名方式,命名為Schemer。同是不巧,當(dāng)在MIT開(kāi)發(fā)的ITS操作系統(tǒng)上運(yùn)行時(shí),這種系統(tǒng)最多支持六個(gè)字符的文件名,所就改為了Scheme。
Scala
于2001年,由MartinOdersky開(kāi)發(fā)完成,既是一種函數(shù)式編程語(yǔ)言,也具有面向?qū)ο蟮奶匦裕\(yùn)行于Java平臺(tái)(早期有.NET平臺(tái)的實(shí)現(xiàn))。其名Scala的得來(lái)有兩個(gè)原因:SCAlableLAN兩個(gè)單詞相結(jié)合;意大利語(yǔ)中scala意為“梯子”或“樓梯”,蘊(yùn)含“更佳的編程語(yǔ)言”。
Scratch
第1版Scratch由麻省理工學(xué)院媒體實(shí)驗(yàn)室終身幼稚園組2006年研發(fā)出來(lái),是一種教學(xué)式語(yǔ)言。兒童可以通過(guò)拖拽電腦屏幕上的程序模塊完成程序設(shè)計(jì)序。它可以用以創(chuàng)作小說(shuō),電影,游戲,音樂(lè)等等,幾乎你能想到的它都能辦到。其名源自打碟的聲音。
AWK
如果使用過(guò)Unix系統(tǒng),AWK對(duì)你來(lái)說(shuō)可能再熟悉不過(guò)了。它于1997年開(kāi)發(fā)完成,是用以處理文本文件的解釋性語(yǔ)言,同時(shí)也是Linux及Unix環(huán)境中現(xiàn)有的功能最強(qiáng)大的數(shù)據(jù)處理引擎之一。LarryWall開(kāi)發(fā)Perl時(shí)深受其影響。AWK這個(gè)名字同許多語(yǔ)言名字一樣,也是縮寫(xiě),不同的是,這三個(gè)字母是其發(fā)明這的名字首字母,貝爾實(shí)驗(yàn)室的AlfredAho,PeterWeinberger和BrianKernighan。
Groovy
2003年,Java程序員JamesStrachan需要這樣一種腳本語(yǔ)言:同Python和Ruby相似,但又卻能在Java平臺(tái)上運(yùn)行。于是發(fā)明了Groovy。它能動(dòng)態(tài)編譯為Java字節(jié)碼。正如JamesStrachen所說(shuō)的那樣,“在絕妙的(groovy)Java代碼基礎(chǔ)上編程”,這個(gè)名字就不言而喻了。