你知道這些編程語言的名字的來歷嗎

任何一種新型語言的設計工作完畢後,隨之而來的就是命名過程,命名過程往往遵循以下幾個步驟,以語言本身的特性或者描述為名,採取首字母或者縮寫形式(例如BASIC、COBOL、TCL以及LISP),從現有語言當中派生而來的新名稱(例如C++、C#以及CoffeeScript),或者直接取自某位對軟件作出卓越貢獻的名字(例如Ada、Pascal以及Turing),不過有時候奇妙的語言也使得命名者也會發掘出一些特別的靈感,進而為我們帶來更為豐富的命名方式,下面我們就一起來看看下面這幾種編程語言和它們背後的故事。


你知道這些編程語言的名字的來歷嗎​Python 是由荷蘭程序員Guido van Rossum於上世紀八十年代末著手開發的。由他一手打造的這款新型腳本語言派生自ABC編程語言,其誕生源自Rossum在聖誕節假期中的興趣之作。當需要為這種全新語言選擇名稱時,van Rossum希望選擇一個“簡短、獨特而且略帶神秘色彩”的字眼。他從著名英國喜劇團體Monty Python(巨蟒)身上得到了靈感,於是就給軟件取名為Python。

Java的前身是誕生於上世紀九十年代早期、由Sun公司打造的Green項目,該項目的初衷在於為即將到來的智能設備浪潮,例如互動式電視建立一套技術支持方案,這款新語言在建立之初被稱為Oak,但Sun公司的律師團很快發現該名稱已經被註冊,這迫使他們必須重新尋找合適的新名稱,公司旋即召開了一系列會議,並整理出一份簡短的備選名稱清單(經過律師團隊的嚴格甄選),其中包括Silk、DNA以及Java,jsva確實受到了大多數與會者的廣泛支持,Java的靈感源自Peet咖啡店(Java即英文的爪哇,以盛產咖啡而聞名),這裡是Sun公司的各位工程師們最青睞的休閒場所。

Forth語言的開發工作可以追溯到上世紀六十年代,由Charles Moore負責開發。他曾於1968年效力於一家名為Mohasco的家居傢俱公司,當時公司為他配備了一臺IBM 1130微型計算機外加一臺2250圖形顯示器,希望他能借此進行地毯產品的設計,由於無法利用FORTRAN語言進行圖形設計,Moore決定自己開發一套編程語言,這就是Forth。他最初選擇的名稱是“Fourth”,代表這是第四代語言。但是IBM 1130微機只允許在文件名當中包含最多五個字符,所以在去掉了“U”之後、Forth由此誕生。
你知道這些編程語言的名字的來歷嗎​Perl由Larry Wall於上世紀八十年代末所創建。在為其選擇名稱時,Wall表示他希望能在簡短的詞彙中包含“積極的內涵”。他考慮過使用他妻子的名字(Gloria),但後來轉而選擇了“pearl(珍珠)”,然而當時這個名稱已經被另一款編程語言所佔用(即PEARL,‘流程與實驗自動化實時語言’的縮寫),為了避免衝突、他去掉了其中的“A”並由此衍生出perl。值得注意的是最初peal這個名稱的四個字母全部為小寫,這是受到了Unix全部小寫規則的啟發。不過到了後來,也就是1993年Perl 4版本正式發佈時,名稱的首字母開始轉為大寫並一直沿用至今。

Lua是由TeCGraf於1993年創建的一款腳本化語言,很多朋友對於TeCGrag可能並不熟悉,它是巴西里約熱內盧天主教大學計算機圖形技術小組的簡稱。Lua以TeCGraf此前所開發的兩款早期語言為基礎,它們分別是DEL(即日期輸入語言)與SOL(即簡單對象語言)。當一種結合了DEL與SOL的精華與其它諸多功能(例如流控制)於一身的新型語言被創造出來時,開發者為其取名為Lua,也就是葡萄牙語中的“月亮”,理由非常簡單,SOL在葡萄牙語中是指“太陽”。

Smalltalk是一個包含多種面向對象編程語言的家族,最初由Xerox公司的帕洛阿爾託研究中心(簡稱PARC)於上世紀七十年代所創建,它的出現給眾多後續出現的編程語言帶來了重大影響,其中包括Java、Python以及Ruby等等。Alan Kay的學習研究小組一手建立起了Smalltalk,而根據Kay的回憶,當時選擇這個名稱是為了迎合“印歐神話體系”中的設定。在這套理論系統中,像宙斯以及托爾這類名號霸氣側漏的神往往歷盡坎坷、飽經磨難。因此他反其道而行之,選擇了Smalltalk這樣一個聽起來就人畜無害的字眼,平和舒緩的風格也讓人們不至於對這種語言抱有不切實際的期望。
你知道這些編程語言的名字的來歷嗎​ Logo是一款由麻省理工學院人工智能實驗室的多位計算機科學家於上世紀六十年代中期開發完成的編程語言,當時主要是為了滿足教學需要。它屬於Lisp語言的一類分支,能夠被用於實現多種編程概念的教學、同時也給Scratch等後續教學型語言帶來了深遠影響,Logo這一名稱明顯源自希臘語的“logos”,原意為“字”或者“思想”,開發者希望藉此對其與傳統中面向數字的編程語言加以區分。


你知道這些編程語言的名字的來歷嗎​Ruby由松本行弘於1993年所創建,這款真正面向對象的腳本化語言被作為Perl以及Python的替代方案,與Perl類似,松本希望選擇一個與珠寶相關的詞彙為其命名。在與同事石冢圭樹進行討論之後,最終名稱選項被鎖定在Coral(珊瑚)與Ruby(紅寶石)二者之間。Ruby最終當選,這一方面是由於松本更喜愛這個名稱、另一方面它也是石冢的生日石。松本還明確指出,雖然Perl所代表的珍珠象徵著六月、而Ruby所代表的紅寶石則象徵著七月,但Ruby並非Perl的繼承者(松本一直認為Perl只是一種‘玩具性質的語言,相反Ruby將徹底取代Perl。

Scheme在上世紀五十年代末被麻省理工學院的John McCarthy創造出了Lisp。作為歷史最為悠久的早期高級編程語言之一,Lisp很快成為人工智能研究者們最為青睞的編程方案。隨著時間的推移,Lisp的一系列不同分支也爭相湧現,其中就包括Planner與Conniver,1975年麻省理工學院的Gerald Jay Sussman與Guy Steele開發出了Lisp的又一款衍生方案,並按照Planner與Conniver的命名慣例為其選擇了Schemer作為名稱。不過這種語言當時運行在由麻省理工學院自主開發的ITS(即非兼容分時系統)系統之上,該系統強制要求文件名由兩部分組成、且每一部分最多隻能包含六個字符。有鑑於此Schemer最終被縮減成了Scheme。

Scala語言由Martin Odersky於2001年創建,它身兼函數與面向對象兩種特性。它在編寫時充分考慮到了將開發成果編譯為Java字節碼的需求(在此之前,它也能夠被編譯為.NET代碼)。Scala這一名稱的確定基於兩個不同理由,首先由於結合了可擴展LAN、因此它具備很好的擴展(scale)能力。其次“scala”在意大利語中代表著樓梯或者階梯,這為該語言賦予了美好的雙重含義——幫助使用者通往目標的卓越編程語言。

Scratch是由麻省理工學院媒體實驗室於2003年開發完成,孩子們可以利用它將屏幕上的各個積木狀模塊(被稱為sprite,即精靈)連接起來,並藉此完成程序創建。在它的幫助下,年輕的開發者們能夠創造出屬於自己的故事、電影、遊戲、音樂以及一切曾經出現在他們夢中的事物,這款語言的名稱來自嘻哈電臺主持人通過旋轉並刮擦(scratch)塑膠唱片來創造全新音效與音樂作品的表演方式。

任何一位曾經與Unix系統打過交道的朋友肯定也對AWK相當熟悉,這是一種用於處理文本文件的解釋型語言。它最初誕生於1977年,當時被作為Unix grep工具的通用版本使用,隨後於1979年首次成為Unix版本7中的內置方案。在開發Perl時Larry Wall受到了來自AWK的諸多影響。AWK來自貝爾實驗室的三位開發者的姓氏首字母:Alfred Aho、Peter Weingerber以及Brian Kernighan。

在2003年Java程序員James Strachan希望能用上一款像Python或者Ruby那樣的腳本化語言,但卻要能夠運行在Java平臺之上,這可怎麼辦? 於是他設計出的這款新語言能夠將開發成果動態編譯為Java字節碼,用他自己的話說,這是一款“站在全部精妙(groovy)Java代碼的肩膀上而被創造出來的語言”,Groovy這個名稱就這麼被敲定。
你知道這些編程語言的名字的來歷嗎


分享到:


相關文章: