编程语言十大特征(16种编程语言是如何命名的)

编程语言十大特征(16种编程语言是如何命名的)(1)

Phil Karlton曾经说过,在计算机科学的世界中,只有两件事:无效缓存还有命名。


也正是由于后者,我们在技术世界中,有着如何多的奇怪名字的编程语言。在本篇文章,我们一起探索一些常见编程语言的由来,来“揭密”为什么选这样的名,还有这些单词的出处。


Perl


Perl被誉为瑞士军刀,功能强大而灵活。它是由美国开发者Larry Wall在1987年创立。它只所以选择叫Pearl,珍珠的单词,是因为它觉得这个简短又让人难忘的单词,有着积极的想像力。当时却已经有一个编程语言叫了这个名字,他就将单词改成了Perl,以开源的方式是Practical Extraction and Reporting Language,也就是实用提取的报表语言缩写。Pearl一词来自古英文语法Perle,意为珠子或有价值的东shgg,而拉丁语perna的意思是“腿”,延伸意义为看起来像羊腿一样的软体动物名字。

编程语言十大特征(16种编程语言是如何命名的)(2)


Ruby

Ruby是由日本开发者Yukihiro Matz Matsumoto在1990年创建的。受Perl的影响,他也想用宝石的名字来给自己的语言起名,他选择了叫 Ruby, 他认为也是借了Perl的光,是Perl诞生后的宝石:六月的珍珠,七月的红宝石。Ruby单词的来源于古法语的 rubi ,意思是微红的宝石,而拉丁语的 rubeus 意为红色。


编程语言十大特征(16种编程语言是如何命名的)(3)

Matz可不仅仅是想让Ruby成为Perl的继任者 ,而是一直想替代它。


Python

编程语言十大特征(16种编程语言是如何命名的)(4)

这是荷兰人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种编程语言是如何命名的)(5)

上世纪90年代初, Sun预感到智能家居设备(如互动TV)的浪潮即将来临,他们开发了一个叫Oak的语言,但是Sun的律师确定这个名字的商标已经被注册,他们只好选个新名字,经过一系列的会议,大家想了很多名字,经过律师的“过滤”,只剩下了三个Silk, DNA , Java。

不知道是谁第一个建议使用Java, 但是大家普遍认为灵感来自于Sun的工程师常去一个咖啡店:Pete's Coffee,因为Java是印度尼西亚的爪哇岛,那里盛产咖啡。

Forth

编程语言十大特征(16种编程语言是如何命名的)(6)

Forth 是Charles Moore在上世纪60年代设计的一个古老语言, 当时他在一个家装公司工作,公司给它提供了一台IBM 1130 微型计算机,还带着一个2250显示卡,公司想让他用电脑来设计地毯!

Moore最初想使用FORTRAN, 但这个语言没法使用2250 显卡。他只好发明了一个新语言,叫做Fourth ,意思是第四代编程语言。可是1130计算机要求文件名不能超过5个字符, 于是他只好把u给踢了出去,变成了Forth。

Lua

编程语言十大特征(16种编程语言是如何命名的)(7)

Lua 是巴西的一个大学所发明的,它基于两个语言:DEL(Date Entry Language)和SOL(Simple Object Language)。新语言把两个语言的优点都结合了起来。

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

Smalltalk

编程语言十大特征(16种编程语言是如何命名的)(8)

Smalltalk是一个面向对象的语言,由施乐帕洛•阿尔托研究中心发明,这门语言给Java,Python,Ruby等很多后来者带来了巨大影响。

Alan Kay的小组发明了Smalltalk,正如他所说,这一名字的选取是针锋相对于“印欧神灵理论”的,该理论中任何系统都会被赋予一个它们永远无法企及的、类似于神灵的名字,例如宙斯(与天神同名)和索尔(与雷神同名)。相反地,他选择了一个超级平淡无奇的名字,Smalltalk,以杜绝招致任何过高的期望值。

Logo

编程语言十大特征(16种编程语言是如何命名的)(9)

这是MIT开发的一个用于教育的一门语言,作为Lisp的一个方言,可以用来教授很多的编程概念,它也影响了很多后来的致力于教育的编程语言,例如Scratch。

Logo编程时有个小海龟,可以根据用户的指令来画图。

Logo来源于logos, 在希腊语中意思是“词”或者“思想”, 这个名称和那些面向数字的编程语言区分开了。

Scheme

编程语言十大特征(16种编程语言是如何命名的)(10)

上世纪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种编程语言是如何命名的)(11)

Scala是个年轻的语言,2001年由Martin Odersky创建,这是一个既支持函数式编程又支持面向对象编程的语言。被编译以后,它成为了Java字节码,在JVM中运行(之前,Scala可以被编译成的中间代码来执行)。

选择Scala作为名称有两个原因:首先它表示SCAlable LAN这两个词的组合,其次在意大利语中表示楼梯或者梯子,这就暗含着Scala要帮助你不断上升,成为更好的编程语言。

Scratch

编程语言十大特征(16种编程语言是如何命名的)(12)

又是一个MIT开发的面向孩子的编程语言!

孩子们可以通过可视化的形式来操作屏幕上的“精灵”, 从而创造一些故事,小电影,游戏,音乐以及他们梦想创造的任何东西。

这个语言的名字来源于嘻哈音乐DJ,他们会通过手动旋转和刮擦(scratching)唱机上的黑胶唱盘来创造新的声音和音乐。

AWK

编程语言十大特征(16种编程语言是如何命名的)(13)

使用过Unix都会对AWK很熟悉,这是一个脚本语言用来处理文本文件, 1977当它被开发出来的时候主要是想做一个grep 工具的一个更加通用的版本。AWK对Larry Wall设计Perl产生了重要的影响。

和很多编程语言的名称类似,AWK也是一种缩写,但是这个缩写不是表示语言能做什么,相反,它是三个来自于贝尔实验室的发明人的名称:Alfred Aho, Peter Weinberger 和Brian Kernighan。

Groovy

编程语言十大特征(16种编程语言是如何命名的)(14)

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种编程语言是如何命名的)(15)


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


编译:洛逸

来源:21CTO社区

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页