13个不同寻常的编程语言名称背后的故事

软件开发中最难的一项任务可能就是“命名”了,给类,变量,函数命名。相比而言,当一个新的语言被创造出来,想一个好的名称更不容易。


有时候,语言的创造者们在选择名字的时候非常有创意,今天就来聊一聊13个不同寻常的编程语言名称背后的故事。


Python



这是荷兰人Guido van Rossum 于上世纪80年代末设计的一个语言,现在非常流行,Van Rossum 在起名的时候,想要一些“短的、独特的、有点神秘色彩的”东西,他是英国著名戏剧团体Monty Python超级粉丝, 就从中找到了灵感,用Python命名了这门新语言。


其实Monty Python剧团有个著名的戏剧叫做Dead Parrot, 似乎没有消息说他想用这个名字来命名新语言。


JAVA



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


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


Forth



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


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

Perl



Perl 被誉为瑞士军刀,功能强大而灵活,是由Larry Wall上世纪80年代发明的。Larry想要一个短的,有“内涵的”名称,他曾经考虑了妻子的名字Gloria, 后来还是选择了pearl(珍珠)。


悲催的是同名的语言已经存在了,于是他就把A去掉,最终变成了perl 。注意最初名称是全小写的,直到1993年 Perl4发布的时候,才变成首字母大写。


Lua



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


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


Smalltalk



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


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


Logo



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


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


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


Ruby



Ruby 由日本人Yukihiro Matsumoto(“Matz”)开发,这是个面向对象的脚本语言。


类似Perl,Matz想要一个宝石作为语言的名称,经过和同事讨论后,Coral和Ruby 被留在了最后的名单内。 Matz选择了Ruby , 这是大有深意的,根据欧美“诞生石(Birthstone)”的传统,每个星座都有诞生石。 其中7月的诞生石是ruby,6月的是pearl(对应的语言就是LarryWall发明的perl)。


Matz可不仅仅是想让Ruby成为Perl的后继,而是想替代它。

Scheme

上世纪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



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


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


Scratch



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


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


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


AWK



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


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


Groovy



2003年,一个叫James的Java程序员想要一个像Python 和Ruby 的脚本语言, 但是要运行在JVM中。


他的解决方案就是设计一个新的语言,能够动态地编译成Java 字节码。用他自己的话来说:“我更期待一种(仅仅)建立在那些精妙的Java代码和JVM之上的动态语言(精妙-Groovy)。”

关注智慧山微信公众号(zhihuishan2013)后,在公众号里回复以下关键字,即可得到相应资源!

公开课、作文、复习、试卷、知识点、活动、拼音、字母、钟表、看图写话、故事、双语故事、成语、常识、APP、语文、数学、英语、百家姓、三字经、唐诗三百首、自助查询、超级口算