Quantcast
Channel: 工程師 – TechOrange
Viewing all articles
Browse latest Browse all 585

Python 不是大蟒蛇、Java 就是一杯咖啡,程式語言都是如何命名的?

$
0
0

打開 TIOBE Index 世界程式語言排行榜,出現在榜單上的程式語言名稱多半都讓人一頭霧水。一些程序語言的作者會以「這種語言是什麼」來命名語言,比如 BASIC、COBOL、TCL、LISP;另一些語言則是由它從哪些現有語言派生而來命名,像是 C++,C#;當然還有一些來源於數學家或計算機科學家的名字,其中的代表則是 Ada,Pascal,Turing。

但也有很多語言的名稱是編寫者隨便拍腦門和大腿瞎想出來的,這篇文章裡要講的這幾個就是如此。

  • Python 不是大蟒蛇,是個 BBC 電視劇
Guido van Rossum

Python 的創始人吉多· 範羅蘇姆(Guido van Rossum)是個精力旺盛的逗比(就是上面圖裡這個人,我也想拍一張這樣的照片!)。1982 年從阿姆斯特丹大學取得數學和計算機科學碩士學位後,他曾在多家科研機構工作,2005 至 2012 年他在 Google 工作了 7 年,之後又離職加入 Dropbox。這位現年 60 歲的荷蘭工程師在他 34 歲(1989 年)的聖誕節假期中設計出了風靡世界的語言 Python。雖然 Python 的原意是大蟒蛇,但創始人顯然不是想表明這種語言可以變成白娘子跟你在西湖相遇,關於 Python 的命名,吉多自己(在 1996 年時)的說法是這樣的:

「六年前的 1989 年 12 月,我在尋找一門『課餘』程式項目來打發聖誕節前後的假期時光。假期裡我的辦公室關門,但我有一台家用電腦。我決定為當時我正構思的一個新的腳本語言寫一個解釋器,它是 ABC 語言的繼承,對 UNIX / C 工程師會有吸引力。作為一個略微有些奇怪想法的人和《蒙提· 派森的飛行馬戲團》的狂熱愛好者,我選擇了 Python 作為項目的標題。」

那麼問題來了,《蒙提· 派森的飛行馬戲團》是啥?

kk

《蒙提· 派森的飛行馬戲團》(Monty Python’s Flying Circus)是英國的喜劇團體蒙提· 派森創作的系列超現實主義電視喜劇,1969 年首次以電視短劇的形式在 BBC 電視頻道​​播出,共推出了 4 季共 45 集節目。隨後喜劇團體蒙提· 派森的影響力從電視擴展到舞台劇、電影、音樂專輯、音樂劇等,被外國媒體認為「在喜劇上的影響力相當於披頭四在音樂方面的影響」。他們六個人就長這樣:

喜劇團體蒙提· 派森

那麼問題又來了,《蒙提· 派森的飛行馬戲團》這個電視劇的名字是怎麼來的?

事實上,喜劇團體蒙提· 派森取名的唯一評判標準就是聽起來是不是很滑稽。一種說法是在這個名字定下來之前他們嘗試過很多奇怪的名字,比如「貓頭鷹伸開翅膀的時候」「蟾蜍的升降力矩」「一匹馬」「勺子和桶」「回顧凡士林」「禿鷲」等等,直到 BBC 受不了了,表示「《蒙提· 派森的飛行馬戲團》這個名字很滑稽!而且我們把它公佈出去了你們不許改了!!」名字才定下來。

另一個成員說叫蒙提· 派森(Monty Python)是喜劇團體的成員 Eric Idle 的主意,「Monty」這個名字是為了諷刺二戰傳奇將軍蒙哥馬利勳爵(Field Marshal Lord Montgomery)。他們要為這個名字找到一個聽上去比較圓滑的姓,因此選擇了「Python」。這個方案提出後,BBC 對於「Monty Python」這個名字的看法是:「對於一個低俗娛樂群體而言真是個完美的名字」。

除去 Python,以流行文化命名的語言還有不少,比如 Frink Language 來自《辛普森一家》中的 Frink 教授:

說回到 Python 這門語言,雖然名稱來源和本意都不是大蟒蛇,但公司還是採用了兩條盤在一起的蛇作為 logo,不得不說這兩條纏在一起的蛇真的好像是在交配……

  • 咖啡屋的小甜心 Java

Java 在英語中直譯是著名咖啡產地「爪哇島」,Java 的命名也與此有關。

1990 年代初期,Sun Microsystems 公司正努力開發一種應用於電視機頂盒、鬧鐘、麵包機和微波爐的程序語言。這一項目在 Sun 公司內部被稱為 Green 項目,但公司創始人和前 CEO 詹姆斯· 高斯林(James Gosling)一直認為應該為這種新語言取個名字。直到有一天,詹姆斯看到辦公室門口的一株橡樹(Oak),這種充滿生命力的綠色植物在矽谷隨處可見,詹姆斯決定將新語言命名為 Oak。由於當時智慧家電的市場需求並不太高,Sun 公司不久後就放棄了這項計劃。

1994 年,網絡的發展讓 Sun 公司認為萬維網未來大有可為,決定將 Oak 應用於應用於萬維網。但那時 Oak 已經被一家顯卡製造商註冊了,詹姆斯只好要求公司市場部召開命名徵集會來命名這個新語言,將徵集來的名稱按照評選次序列成表提交給商標律師。

詹姆斯· 高斯林

關於取名的過程,詹姆斯曾經這樣告訴 Sun 公司現任總裁喬納森· 施瓦茲(Jonathan Schwartz):

「那天下午,我們大約十二人將自己鎖在房間中,命名顧問充當會議主持人讓我們寫出一些名字來挑選。​​我們最終寫出了大約十二個名稱,律師團選定了能排除其他名稱的候選項。Java 是列表中的第四個名稱,我最喜歡的是第三個名稱『Lyric』(抒情詩)。」

會上排在第一位的名字是 Silk(絲綢),但這個名字遭到了詹姆斯的堅決反對。排名第二第三的名稱沒有通過律師的篩選,排在第四位的 Java 最終當選。

據詹姆斯回憶,最先提出這個名字的人是馬克· 奧普曼(Mark Opperman),靈感來源是在一家咖啡店與同事品嚐的爪哇島咖啡。爪哇島出產的阿拉比卡種咖啡香味清淡又沒有酸味,很多國外咖啡館都以 Java 來命名或宣傳以彰顯品質。Java 語言同樣看中了這種品質,以一杯飄著香氣的咖啡作為 Logo,還將 Java 語言中的很多庫類名稱以咖啡相關詞語命名,比如 NetBeans、JavaBeans、ObjectBeans 等等。

另外,當使用十六進制編輯器打開由 Java 源代碼編譯出的二進製文件(.class 文件)的時候,最前面的 32 位顯示為 CA FE BA BE,即為詞組「CAFE BABE」(咖啡屋寶貝)。

除了 Java Language,名稱同樣屬於食物類的語言還有 Pizza Language 等等。

  • Lovelace 女士是情色女星,也是女工程師

洛夫萊斯(Lovelace)是個跟程序語言有著不解之緣的姓氏。至少有兩種程序語言以 Lovelace 女士的名字命名。較為知名的一個是 Ada Language,這種語言 1970 年代產生於美國國防部,最初目的是減少國防部使用的高級編程語言數量。Ada 的命名則是為了紀念埃達· 洛夫萊斯(Ada Lovelace)女爵。

Ada Lovelace

這位 Lovelace 女爵就是大名鼎鼎的英國詩人拜倫的女兒。和她父親一樣,Ada 在數學方面也有著極高的天賦。她曾花九個月時間翻譯意大利數學家路易吉· 米納比亞講述查爾斯· 巴貝奇計算機分析機的論文,並添加了許多註記來說明用該機器來計算伯努利數的方法。這種方法被認為是世界上第一個計算機程式,Ada 也被認為是世界上第一位女性工程師。

Linda Lovelace

工程師 Ada Lovelace 女士逝世約 126 年後,耶魯大學的研究生大衛· 格林特(David Gelernter)聽說了這個故事。當時他正考慮如何為自己編寫的一種程式語言的命名。格林特先生馬上想到了另一位 Lovelace 女士——他最喜歡的情色女星琳達· 洛夫萊斯(Linda Lovelace)。格林特用 Linda 的名字命名了他的程式語言。

以人名命名的程式語言很多,比如 Eiffel Language 得名於埃菲爾鐵塔的設計者居斯塔夫· 埃菲爾(Gustave Eiffel),Hugo Language 則是以維克多· 雨果(Victor Hugo)的名字命名。與藝術相關的命名也不少,比如 Oberon Language 的名字源於莎士比亞《仲夏夜之夢》中的國王,Miranda Language 則是莎士比亞《暴風雨》中的一個角色。Oz Language 的 Oz 來自《綠野仙踪》(The Wizard of Oz),Malbolge Language 的 Malbolge 則是但丁《神曲》中地獄的第八層。

十幾年後,有好事記者採訪格林特詢問他為什麼用 Linda 來命名程式,格林特只是淡淡地慫了慫肩膀:「哈哈哈哈哈哈當時我只是個研究生啊。」

(本文獲Tech2IPO授權刊載,未經授權不得轉載)

  • 延伸閱讀

未來程式設計的 9 大猜想,其中之一就是 JavaScript 將成為主宰語言
簡直是個老不死!年度工程師最愛程式語言 JAVA 勇奪第一名
我要成為前端工程師!給 JavaScript 新手的超詳細建議與學習資源整理
這就叫神童:12 歲炒股寫 code、13 歲創立第一間公司,他的下個使命是改變教育!


Viewing all articles
Browse latest Browse all 585

Trending Articles