你可能聽(tīng)過(guò)這樣一種說(shuō)法:在計(jì)算機(jī)科學(xué)領(lǐng)域后德,只有兩件困難的事情,其中一件是給事物命名抄腔。有些編程語(yǔ)言的名字很有意義瓢湃,比如谷歌(Google)將它的編程語(yǔ)言命名為Go(lang)窟赏,而其他的名字——比如Python和Java——為什么要這么命名就不那么明顯了。
在這篇文章里箱季,讓我們來(lái)一起探索一下最具標(biāo)志性的編程語(yǔ)言的歷史,以及它們的名字是如何得來(lái)的棍掐。
Python
Python起初是Guido van Rossum的一個(gè)“業(yè)余”編程項(xiàng)目藏雏,目的是讓他在圣誕節(jié)期間有事可做。van
Rossum希望這門(mén)語(yǔ)言有一個(gè)簡(jiǎn)短作煌、獨(dú)特且神秘的名字掘殴。如果你看到Python的“兩條蛇”標(biāo)志,可能會(huì)認(rèn)為Python是以一種巨大的蟒蛇來(lái)命名的(它能把整條鱷魚(yú)吞下)粟誓。
實(shí)際上奏寨,Guido是以70年代英國(guó)喜劇團(tuán)體Monty Python’s Flying
Circus的名字給它命名的。原來(lái)他是這個(gè)喜劇團(tuán)體的超級(jí)粉絲鹰服,剛好那個(gè)時(shí)候他在看這個(gè)團(tuán)體的劇本病瞳。
image
Python的“兩條蛇”標(biāo)志與它的名字的起源沒(méi)有任何關(guān)系
Java
Java是20世紀(jì)90年代初Sun微系統(tǒng)公司作為Green項(xiàng)目的一部分而開(kāi)發(fā)的。為這個(gè)項(xiàng)目開(kāi)發(fā)一門(mén)新語(yǔ)言并不是他們的重點(diǎn):開(kāi)發(fā)Java是因?yàn)樗麄冃枰环N可以獨(dú)立于處理器的語(yǔ)言悲酷,能夠提供C++的大部分功能套菜,同時(shí)更容易使用。成立這個(gè)絕密的Green團(tuán)隊(duì)是為了打造超越個(gè)人電腦的“下一波計(jì)算浪潮”设易,他們認(rèn)為個(gè)人電腦應(yīng)該是具有互動(dòng)性的數(shù)字控制的消費(fèi)電子產(chǎn)品(也就是“智能設(shè)備”的前身)逗柴。
Green團(tuán)隊(duì)的杰作:一個(gè)無(wú)線、全彩顿肺、觸摸屏控制器戏溺,名字叫作Star7
Java最初以開(kāi)發(fā)者窗戶外面的一棵橡樹(shù)來(lái)命名,叫作Oak屠尊。但是旷祸,Sun的律師說(shuō)Oak已經(jīng)被注冊(cè)為商標(biāo),于是Green團(tuán)隊(duì)召開(kāi)了一次頭腦風(fēng)暴會(huì)議讼昆,并想出了Java這個(gè)名字肋僧。他們希望這個(gè)名字可以反映這門(mén)語(yǔ)言的本質(zhì):“活力、革命性控淡、活潑和有趣”嫌吠。經(jīng)過(guò)這場(chǎng)“持續(xù)瘋狂”的頭腦風(fēng)暴,Java顯然是一個(gè)完美的選擇掺炭。
雖然Star7有點(diǎn)超前于時(shí)代辫诅,從未真正起飛,但它的編程語(yǔ)言卻成功了——剩下的就是我們已經(jīng)知道的歷史了涧狮。
JavaScript
JavaScript是Brendan Eich于1995年在網(wǎng)景公司
(Navigator背后的公司炕矮,當(dāng)時(shí)最流行的Web瀏覽器)開(kāi)發(fā)出來(lái)的么夫。那時(shí),網(wǎng)頁(yè)完全是靜態(tài)的肤视,但網(wǎng)景公司設(shè)想的是今天這種交互式的動(dòng)態(tài)網(wǎng)頁(yè)档痪。由于來(lái)自微軟IE瀏覽器的壓力,他們聘請(qǐng)Eich將腳本語(yǔ)言集成到瀏覽器中邢滑。
網(wǎng)景公司希望創(chuàng)造一種簡(jiǎn)單易用的語(yǔ)言腐螟。借著Java蓬勃發(fā)展的勢(shì)頭,他們希望這門(mén)語(yǔ)言成為“Java的腳本伴侶”困后,就像Visual
Basic是C/C++的伴侶一樣乐纸。Eich強(qiáng)調(diào)開(kāi)發(fā)速度和易用性,繼承了Java的大部分語(yǔ)法摇予,只用了10天就寫(xiě)出了JavaScript的第一個(gè)版本汽绢,名字叫作Mocha。
“我的任務(wù)是讓它看起來(lái)像Java侧戴,但又不能太臃腫……它應(yīng)該是一種小弟語(yǔ)言宁昭,對(duì)吧?Java的小伙伴”⌒锼危——Brendan Eich
當(dāng)這門(mén)語(yǔ)言第一次被集成到Netscape中時(shí)久窟,它被叫作LiveScript。不久之后本缠,網(wǎng)景公司就全身心投入到“Java伴侶”的開(kāi)發(fā)當(dāng)中斥扛。他們與Sun公司合作,將這門(mén)語(yǔ)言重命名為JavaScript丹锹,并與Java一起宣傳JavaScript:JavaScript是一種腳本語(yǔ)言稀颁,用于在瀏覽器中執(zhí)行小型的客戶端任務(wù),而Java則是一種更大楣黍、更專(zhuān)業(yè)的工具匾灶,用于開(kāi)發(fā)豐富的Web組件。事實(shí)上租漂,JavaScript這個(gè)名字的起源是網(wǎng)景公司試圖與微軟抗衡的一種營(yíng)銷(xiāo)策略阶女。
C家族語(yǔ)言(C\C++\Objective-C\C#)
世界上第一門(mén)編程語(yǔ)言是Ada,這要?dú)w功于Ada
Lovelace哩治。不久之后就有了B語(yǔ)言秃踩,C語(yǔ)言的名字就是從B語(yǔ)言衍生而來(lái)的。C語(yǔ)言是由貝爾實(shí)驗(yàn)室的Dennis
Ritchie開(kāi)發(fā)的业筏,被很多人認(rèn)為是第一種高級(jí)編程語(yǔ)言憔杨。
C語(yǔ)言有很多擴(kuò)展,包括C++蒜胖、Objective-C和C#消别。C++和Objective-C的名字不言自明抛蚤,而C#則不那么明顯。C#的部分靈感來(lái)自音樂(lè):一個(gè)尖銳的(#)音符意思是它應(yīng)該在音調(diào)上提升半個(gè)音高寻狂。更有趣的是岁经,#包含了4個(gè)+符號(hào),2x2的正方形蛇券,完美地詮釋了C#是C++的“增量”!
Swift
蘋(píng)果公司從2010年開(kāi)始開(kāi)發(fā)Swift缀壤,并在四年后首次發(fā)布。因?yàn)镺bjective-C的影響力巨大怀读,蘋(píng)果公司便將Swift標(biāo)榜為一種快速、易用和安全的設(shè)計(jì)骑脱。一開(kāi)始菜枷,Swift的名字叫“Shiny”,就好像你正在構(gòu)建一個(gè)“閃亮的東西”叁丧。實(shí)際上啤誊,它還用.shiny做過(guò)文件擴(kuò)展名。
他們最終選用Swift這個(gè)名字來(lái)反映它的速度——在性能和開(kāi)發(fā)速度方面拥娄。Swift的標(biāo)志是一只與之同名的鳥(niǎo):Swift是一種以速度和空中駐留能力著稱的鳥(niǎo)類(lèi)蚊锹。
Swift的標(biāo)志是一只同名的飛鳥(niǎo)
Haskell
Haskell是以邏輯學(xué)家Haskell Brooks
Curry的名字命名的,他在組合邏輯方面的工作廣為人知稚瘾。事實(shí)上牡昆,有幾種編程語(yǔ)言分別是以他全名當(dāng)中的各個(gè)部分命名的:Haskell、Brook和Curry!柯里化(Currying)的概念也是以他的名字命名的摊欠。
Haskell的一個(gè)很少被討論的地方是它的標(biāo)志丢烘。你可能會(huì)注意到Haskell標(biāo)志當(dāng)中有個(gè)λ符號(hào),這是對(duì)λ演算(lambda
calculus)的一種贊頌些椒。如果你更仔細(xì)看播瞳,會(huì)發(fā)現(xiàn)λ夾在“>”和“=”之間。這個(gè)來(lái)自Monads綁定操作符>>=免糕。Haskell的標(biāo)志是一個(gè)交織了λ的綁定操作符赢乓。
Haskell的標(biāo)志是綁定操作符和lambda符號(hào)的組合