13個不同尋常的編程語言名稱背后的故事
- 2019-06-24 11:17:00
- 原創(chuàng)
- 4897
軟件開發(fā)中最難的一項(xiàng)任務(wù)可能就是“命名”了,給類,變量,函數(shù)命名。相比而言,當(dāng)一個新的語言被創(chuàng)造出來,想一個好的名稱更不容易。
有時候,語言的創(chuàng)造者們在選擇名字的時候非常有創(chuàng)意,今天就來聊一聊13個不同尋常的編程語言名稱背后的故事。
這是荷蘭人Guido van Rossum 于上世紀(jì)80年代末設(shè)計的一個語言,現(xiàn)在非常流行,Van Rossum 在起名的時候,想要一些“短的、獨(dú)特的、有點(diǎn)神秘色彩的”東西,他是英國著名戲劇團(tuán)體Monty Python超級粉絲, 就從中找到了靈感,用Python命名了這門新語言。
其實(shí)Monty Python劇團(tuán)有個著名的戲劇叫做Dead Parrot, 似乎沒有消息說他想用這個名字來命名新語言。
上世紀(jì)90年代初,Sun預(yù)感到智能家居設(shè)備(如互動TV)的浪潮即將來臨,他們開發(fā)了一個叫Oak的語言,但是Sun的律師確定這個名字的商標(biāo)已經(jīng)被注冊,他們只好選個新名字,經(jīng)過一系列的會議,大家想了很多名字,經(jīng)過律師的“過濾”,只剩下了三個Silk, DNA , Java。
不知道是誰第一個建議使用Java, 但是大家普遍認(rèn)為靈感來自于Sun的工程師常去一個咖啡店:Pete’s Coffee,因?yàn)镴ava是印度尼西亞的爪哇島,那里盛產(chǎn)咖啡。
Forth 是Charles Moore在上世紀(jì)60年代設(shè)計的一個古老語言, 當(dāng)時他在一個家裝公司工作,公司給它提供了一臺IBM 1130 微型計算機(jī),還帶著一個2250顯示卡,公司想讓他用電腦來設(shè)計地毯!
Moore最初想使用FORTRAN, 但這個語言沒法使用2250 顯卡。他只好發(fā)明了一個新語言,叫做Fourth ,意思是第四代編程語言。 可是1130計算機(jī)要求文件名不能超過5個字符, 于是他只好把u給踢了出去,變成了Forth。
Perl 被譽(yù)為瑞士軍刀,功能強(qiáng)大而靈活,是由Larry Wall上世紀(jì)80年代發(fā)明的。Larry想要一個短的,有“內(nèi)涵的”名稱,他曾經(jīng)考慮了妻子的名字Gloria, 后來還是選擇了pearl(珍珠)。
悲催的是同名的語言已經(jīng)存在了,于是他就把A去掉,最終變成了perl 。注意最初名稱是全小寫的,直到1993年 Perl4發(fā)布的時候,才變成首字母大寫。
Lua 是巴西的一個大學(xué)所發(fā)明的,它基于兩個語言:DEL(Date Entry Language)和SOL(Simple Object Language)。 新語言把兩個語言的優(yōu)點(diǎn)都結(jié)合了起來。
Sol在葡萄牙語中的意思是太陽, 那新的語言就叫做月亮: Lua。
Smalltalk是一個面向?qū)ο蟮恼Z言,由施樂帕洛?阿爾托研究中心發(fā)明,這門語言給Java,Python,Ruby等很多后來者帶來了巨大影響。
Alan Kay的小組發(fā)明了Smalltalk,正如他所說,這一名字的選取是針鋒相對于“印歐神靈理論”的,該理論中任何系統(tǒng)都會被賦予一個它們永遠(yuǎn)無法企及的、類似于神靈的名字,例如宙斯(與天神同名)和索爾(與雷神同名)。相反地,他選擇了一個超級平淡無奇的名字,Smalltalk,以杜絕招致任何過高的期望值。
這是MIT開發(fā)的一個用于教育的一門語言,作為LISP的一個方言,可以用來教授很多的編程概念,它也影響了很多后來的致力于教育的編程語言,例如Scratch。
Logo編程時有個小海龜,可以根據(jù)用戶的指令來畫圖。
Logo來源于logos, 在希臘語中意思是“詞”或者“思想”, 這個名稱和那些面向數(shù)字的編程語言區(qū)分開了。
Ruby 由日本人Yukihiro Matsumoto(“Matz”)開發(fā),這是個面向?qū)ο蟮哪_本語言。
類似Perl,Matz想要一個寶石作為語言的名稱,經(jīng)過和同事討論后,Coral和Ruby 被留在了最后的名單內(nèi)。 Matz選擇了Ruby , 這是大有深意的,根據(jù)歐美“誕生石(Birthstone)”的傳統(tǒng),每個星座都有誕生石。 其中7月的誕生石是ruby,6月的是pearl(對應(yīng)的語言就是LarryWall發(fā)明的perl)。
Matz可不僅僅是想讓Ruby成為Perl的后繼,而是想替代它。
上世紀(jì)50年代,John McCathy在MIT發(fā)明了Lisp,這是最早的高級編程語言之一,并且很快變成了人工智能研究者的最愛。
隨著時間的推移,很多LISP的方言被開發(fā)出來,其中的兩個是Planner和Conniver。
1975年,MIT的Gerald Jay Sussman和Guy Steele 又開了一個Lisp的新方言(方言真多?。?,他們把它稱為Schemer,Schemer使用了Planner和Conniver的命名規(guī)范。然而,這個語言跑在一個MIT開發(fā)的叫做ITS的操作系統(tǒng)上,它的文件名支持兩個部分,每個部分都只能有6個字符,于是Schemer只好縮水,變成Scheme。
Scala是個年輕的語言,2001年由Martin Odersky創(chuàng)建,這是一個既支持函數(shù)式編程又支持面向?qū)ο缶幊痰恼Z言。 被編譯以后,它成為了Java字節(jié)碼,在JVM中運(yùn)行(之前,Scala可以被編譯成.NET的中間代碼來執(zhí)行)。
選擇Scala作為名稱有兩個原因: 首先它表示SCAlable LAN這兩個詞的組合,其次在意大利語中表示樓梯或者梯子,這就暗含著Scala要幫助你不斷上升,成為更好的編程語言。
又是一個MIT開發(fā)的面向孩子的編程語言!
孩子們可以通過可視化的形式來操作屏幕上的“精靈”,從而創(chuàng)造一些故事,小電影,游戲,音樂以及他們夢想創(chuàng)造的任何東西。
這個語言的名字來源于嘻哈音樂DJ,他們會通過手動旋轉(zhuǎn)和刮擦(scratching)唱機(jī)上的黑膠唱盤來創(chuàng)造新的聲音和音樂。
使用過Unix都會對AWK很熟悉,這是一個腳本語言用來處理文本文件, 1977當(dāng)它被開發(fā)出來的時候主要是想做一個grep 工具的一個更加通用的版本。AWK對Larry Wall設(shè)計Perl產(chǎn)生了重要的影響。
和很多編程語言的名稱類似,AWK也是一種縮寫,但是這個縮寫不是表示語言能做什么,相反,它是三個來自于貝爾實(shí)驗(yàn)室的發(fā)明人的名稱: Alfred Aho, Peter Weinberger 和Brian Kernighan。
2003年,一個叫James的Java程序員想要一個像Python 和Ruby 的腳本語言, 但是要運(yùn)行在JVM中。
他的解決方案就是設(shè)計一個新的語言,能夠動態(tài)地編譯成Java 字節(jié)碼。用他自己的話來說:“我更期待一種(僅僅)建立在那些精妙的Java代碼和JVM之上的動態(tài)語言(精妙-Groovy)?!?/span>
關(guān)注智慧山微信公眾號(zhihuishan2013)后,在公眾號里回復(fù)以下關(guān)鍵字,即可得到相應(yīng)資源!
公開課、作文、復(fù)習(xí)、試卷、知識點(diǎn)、活動、拼音、字母、鐘表、看圖寫話、故事、雙語故事、成語、常識、APP、語文、數(shù)學(xué)、英語、百家姓、三字經(jīng)、唐詩三百首、自助查詢、超級口算
- 兒童故事
- 教育資源
- 小學(xué)語文
- 小學(xué)英語
- 小學(xué)數(shù)學(xué)
- 資源下載
- 專家講座
- 智慧山微課
- 少兒英語
- 專項(xiàng)復(fù)習(xí)
- 各科教材
- 課外讀物
- 育兒博客
- 書籍推薦
- 胎教音樂
- 經(jīng)典兒歌
- Scratch編程
- 一年級新生
- 家長課堂
- 心理準(zhǔn)備
- 習(xí)慣培養(yǎng)
- 能力鍛煉/學(xué)習(xí)用品
- 經(jīng)驗(yàn)分享
- 家長困惑
- 小學(xué)入學(xué)指南
- 幼小銜接群
- 飲食健康
- 學(xué)齡前
- 兒童電影
- 成長故事
- 學(xué)習(xí)寶典
- 幼小銜接
- 古詩文
- 影視動畫
- 科學(xué)小實(shí)驗(yàn)
- 精選課程
- 書法比賽專用
- 首頁課程介紹
- 小學(xué)指南
- 智慧山活動
- 說明
- 家庭教育
- 曬飯—一早一晚
- 兒童編程
- 認(rèn)知階段Scratch圖形化編程
- 理解階段Python人工智能語言
- 運(yùn)用階段C++及信息學(xué)競賽
- code.org作業(yè)答案
- code.org作業(yè)視頻講解
- 編程網(wǎng)站
- python入門課作業(yè)答案
- python1(上)作業(yè)答案
- python1(下)作業(yè)答案
- Scratch入門課作業(yè)答案
- 作業(yè)解析
- Scratch相關(guān)資源
- python2(上)作業(yè)答案
- Scratch Level 1作業(yè)答案
- python2(下)作業(yè)答案
- Python3(上)作業(yè)答案
- Scratch Level 2作業(yè)答案
- 國家政策及比賽
- 2022年P(guān)ython寒假課
- 2022年Scratch寒假課
- 編程網(wǎng)站
- 智慧山圖書館
- 小升初
- 英語學(xué)習(xí)
- 智慧家庭教育