16種編程語言是如何命名的?非常有趣

16種編程語言是如何命名的?非常有趣

Phil Karlton曾經說過,在計算機科學的世界中,只有兩件事:無效緩存還有命名。


也正是由於後者,我們在技術世界中,有著如何多的奇怪名字的編程語言。在本篇文章,我們一起探索一些常見編程語言的由來,來“揭密”為什麼選這樣的名,還有這些單詞的出處。


Perl


Perl被譽為瑞士軍刀,功能強大而靈活。它是由美國開發者Larry Wall在1987年創立。它只所以選擇叫Pearl,珍珠的單詞,是因為它覺得這個簡短又讓人難忘的單詞,有著積極的想像力。當時卻已經有一個編程語言叫了這個名字,他就將單詞改成了Perl,以開源的方式是Practical Extraction and Reporting Language,也就是實用提取的報表語言縮寫。Pearl一詞來自古英文語法Perle,意為珠子或有價值的東shgg,而拉丁語perna的意思是“腿”,延伸意義為看起來像羊腿一樣的軟體動物名字。

16種編程語言是如何命名的?非常有趣


Ruby

Ruby是由日本開發者Yukihiro Matz Matsumoto在1990年創建的。受Perl的影響,他也想用寶石的名字來給自己的語言起名,他選擇了叫 Ruby, 他認為也是借了Perl的光,是Perl誕生後的寶石:六月的珍珠,七月的紅寶石。Ruby單詞的來源於古法語的 rubi ,意思是微紅的寶石,而拉丁語的 rubeus 意為紅色。


16種編程語言是如何命名的?非常有趣

Matz可不僅僅是想讓Ruby成為Perl的繼任者 ,而是一直想替代它。


Python

16種編程語言是如何命名的?非常有趣

這是荷蘭人Guido van Rossum 於上世紀80年代末設計的一個語言,現在非常流行,Van Rossum 在起名的時候,想要一些“短的、獨特的、有點神秘色彩的”東西,他是英國著名戲劇團體Monty Python超級粉絲, 就從中找到了靈感,用Python命名了這門新語言。

其實Monty Python劇團有個著名的戲劇叫做Dead Parrot, 似乎沒有消息說他想用這個名字來命名新語言。

Linda

洛夫萊斯(Lovelace)是個跟程序語言有著不解之緣的姓氏。至少有兩種程序語言以 Lovelace 女士的名字命名。較為知名的一個是 Ada Language,這種語言 1970 年代產生於美國國防部,最初目的是減少國防部使用的高級編程語言數量。Ada 的命名則是為了紀念埃達 · 洛夫萊斯(Ada Lovelace)女爵。
這位 Lovelace 女爵就是大名鼎鼎的英國詩人拜倫的女兒。和她父親一樣,Ada 在數學方面也有著極高的天賦。她曾花九個月時間翻譯意大利數學家路易吉 · 米納比亞講述查爾斯 · 巴貝奇計算機分析機的論文,並添加了許多註記來說明用該機器來計算伯努利數的方法。這種方法被認為是世界上第一個計算機程序,Ada 也被認為是世界上第一位女性程序員。
程序員 Ada Lovelace 女士逝世約 126 年後,耶魯大學的研究生大衛 · 格林特(David Gelernter)聽說了這個故事。當時他正考慮如何為自己編寫的一種程序語言的命名。格林特先生馬上想到了另一位 Lovelace 女士——他最喜歡的情**星琳達 · 洛夫萊斯(Linda Lovelace)。
格林特用 Linda 的名字命名了他的程序語言。以人名命名的程序語言很多,比如 Eiffel Language 得名於埃菲爾鐵塔的設計者居斯塔夫 · 埃菲爾(Gustave Eiffel),Hugo Language 則是以維克多 · 雨果(Victor Hugo)的名字命名。

Java

16種編程語言是如何命名的?非常有趣

上世紀90年代初, Sun預感到智能家居設備(如互動TV)的浪潮即將來臨,他們開發了一個叫Oak的語言,但是Sun的律師確定這個名字的商標已經被註冊,他們只好選個新名字,經過一系列的會議,大家想了很多名字,經過律師的“過濾”,只剩下了三個Silk, DNA , Java。

不知道是誰第一個建議使用Java, 但是大家普遍認為靈感來自於Sun的工程師常去一個咖啡店:Pete's Coffee,因為Java是印度尼西亞的爪哇島,那裡盛產咖啡。

Forth

16種編程語言是如何命名的?非常有趣

Forth 是Charles Moore在上世紀60年代設計的一個古老語言, 當時他在一個家裝公司工作,公司給它提供了一臺IBM 1130 微型計算機,還帶著一個2250顯示卡,公司想讓他用電腦來設計地毯!

Moore最初想使用FORTRAN, 但這個語言沒法使用2250 顯卡。他只好發明了一個新語言,叫做Fourth ,意思是第四代編程語言。可是1130計算機要求文件名不能超過5個字符, 於是他只好把u給踢了出去,變成了Forth。

Lua

16種編程語言是如何命名的?非常有趣

Lua 是巴西的一個大學所發明的,它基於兩個語言:DEL(Date Entry Language)和SOL(Simple Object Language)。新語言把兩個語言的優點都結合了起來。

Sol在葡萄牙語中的意思是太陽, 那新的語言就叫做月亮:Lua。

Smalltalk

16種編程語言是如何命名的?非常有趣

Smalltalk是一個面向對象的語言,由施樂帕洛•阿爾託研究中心發明,這門語言給Java,Python,Ruby等很多後來者帶來了巨大影響。

Alan Kay的小組發明了Smalltalk,正如他所說,這一名字的選取是針鋒相對於“印歐神靈理論”的,該理論中任何系統都會被賦予一個它們永遠無法企及的、類似於神靈的名字,例如宙斯(與天神同名)和索爾(與雷神同名)。相反地,他選擇了一個超級平淡無奇的名字,Smalltalk,以杜絕招致任何過高的期望值。

Logo

16種編程語言是如何命名的?非常有趣

這是MIT開發的一個用於教育的一門語言,作為LISP的一個方言,可以用來教授很多的編程概念,它也影響了很多後來的致力於教育的編程語言,例如Scratch。

Logo編程時有個小海龜,可以根據用戶的指令來畫圖。

Logo來源於logos, 在希臘語中意思是“詞”或者“思想”, 這個名稱和那些面向數字的編程語言區分開了。

Scheme

16種編程語言是如何命名的?非常有趣

上世紀50年代, John McCathy在MIT發明了Lisp,這是最早的高級編程語言之一,並且很快變成了人工智能研究者的最愛。

隨著時間的推移,很多LISP的方言被開發出來,其中的兩個是Planner和Conniver。

1975年,MIT的Gerald Jay Sussman和Guy Steele 又開了一個Lisp的新方言(方言真多!),他們把它稱為Schemer, 這個Schemer 使用了Planner和Conniver的命名規範。

然而,這個語言跑在一個MIT開發的叫做ITS的操作系統上,它的文件名支持兩個部分, 每個部分都只能有6個字符, 於是Schemer只好縮水,變成Scheme。

Scala

16種編程語言是如何命名的?非常有趣

Scala是個年輕的語言,2001年由Martin Odersky創建,這是一個既支持函數式編程又支持面向對象編程的語言。被編譯以後,它成為了Java字節碼,在JVM中運行(之前,Scala可以被編譯成.NET的中間代碼來執行)。

選擇Scala作為名稱有兩個原因:首先它表示SCAlable LAN這兩個詞的組合,其次在意大利語中表示樓梯或者梯子,這就暗含著Scala要幫助你不斷上升,成為更好的編程語言。

Scratch

16種編程語言是如何命名的?非常有趣

又是一個MIT開發的面向孩子的編程語言!

孩子們可以通過可視化的形式來操作屏幕上的“精靈”, 從而創造一些故事,小電影,遊戲,音樂以及他們夢想創造的任何東西。

這個語言的名字來源於嘻哈音樂DJ,他們會通過手動旋轉和刮擦(scratching)唱機上的黑膠唱盤來創造新的聲音和音樂。

AWK

16種編程語言是如何命名的?非常有趣

使用過Unix都會對AWK很熟悉,這是一個腳本語言用來處理文本文件, 1977當它被開發出來的時候主要是想做一個grep 工具的一個更加通用的版本。AWK對Larry Wall設計Perl產生了重要的影響。

和很多編程語言的名稱類似,AWK也是一種縮寫,但是這個縮寫不是表示語言能做什麼,相反,它是三個來自於貝爾實驗室的發明人的名稱:Alfred Aho, Peter Weinberger 和Brian Kernighan。

Groovy

16種編程語言是如何命名的?非常有趣

2003年,一個叫James的Java程序員想要一個像Python 和Ruby 的腳本語言, 但是要運行在JVM中。

他的解決方案就是設計一個新的語言,能夠動態地編譯成Java 字節碼。用他自己的話來說:“我更期待一種(僅僅)建立在那些精妙的Java代碼和JVM之上的動態語言(精妙-Groovy)。”

Kotlin


Kotlin是JetBrains在2011年發佈的新編程語言。它的名稱來自俄羅斯的Kotlin島。團隊希望使用像Java一樣的島嶼名稱-儘管從技術上來說,Java是根據咖啡而不是島嶼來命名的!Kotlin(俄語為Котлин)曾經是瑞典國的一部分,芬蘭人稱其為Kettusaari,意為“狐狸島”,瑞典人稱其為Ketlingen,這可能源於德國下層的kettel,意為“大鍋”。彼得大帝(Peter Great)和他的沙俄軍隊在1703年奪取了該島的控制權後,將其改名為科特林(Kotling),後來簡稱為科特林(Kotlin)。


16種編程語言是如何命名的?非常有趣


Swift


關於蘋果公司為什麼選擇Swift的名稱,目前尚無明確答案,但是有人在Quora上討論過,它不是以Taylor Swift的名字命名的!我們的猜測是蘋果的團隊想給人以快速的印象。swift一詞的意思是“以極快的速度或快速運動”,可以追溯到史前的swipt,意思是“以驚掠的方式運動”。這種燕狀的鳥兒從17世紀起就被稱為燕子,並被用作編程語言的徽標。


還有一些有趣的例子:

最早有種叫“B語言”的程序語言,B是發明者妻子名字的第一個字母,也許他覺得他的發明和他老婆一樣重要。這個故事說明程序員活該沒老婆。


後來B語言經過改進,沒想到啥好名字,就往後一個字母,叫C語言。這個故事說明這個程序員沒老婆。


後來C語言擴展出面向對象功能,叫C++。別問我++是什麼,我不是程序員,你才是程序員,你全家都是程序員。


再後來微軟又發明了一種類似Java的語言,語法依然是C/C++的風格,叫C#,念“C Sharp”。什麼含義?和樂理有關。C就是“C大調”那個C,表示某個音,C#就是比C高一個半音。C#發明者的想象力比上面三位都強多了,所以編程水平比較低,寫出來的東西愛藍屏。


還有一些有趣的例子:

Linux:Linux Is Not UniX,這就有點像GNU了,但是是否屬實就有待考證了。

PHP:原名Personal Home Page,剛開始是Rasmus Lerdorf為了維護個人網頁而開發的,後來功能強大了,改名為PHP: Hypertext Preprocessor,相應地含義也變成了超文本預處理器。

RPM:RPM Package Manager,原名是Red Hat Package Manager,一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。與Dpkg類似。

Wine:Wine Is Not an Emulator,是一個能夠在多種 POSIX-compliant 操作系統(諸如 Linux,Mac OSX 及 BSD 等)上運行 Windows 應用的兼容層。關於Wine的真正含義,有人對“Wine Is Not an Emulator”的說法表示質疑,認為”非模擬器“的解釋不過是一種娛樂性的說法,Wine的真實意思應當是是Windows Environment的縮寫,即WinE。

PNG:PNG’s Not GIF,一種圖像文件存儲格式,其設計目的是試圖替代GIF和TIFF文件格式,同時增加一些GIF文件格式所不具備的特性。PNG的名稱來源於“可移植網絡圖形格式(Portable Network Graphic Format,PNG)”,

EMACS — EMACS Makes A Computer Slow,其自我調侃的意味就太明顯了,大概也是對自己集成的強大的功能洋洋得意吧。


是不是挺有趣,儘管有的語言名字起的有點奇異,但聽起來確定很酷:D


編譯:洛逸


分享到:


相關文章: