戏说编程语言之十三门编程语言名字背后的故事

2014_03_24_01

可能程序员们都认为编写代码时给变量取名是件烦人的事,不过他们还需要给另外一个东西取名, 那就是新的编程语言。编程语言命名通常有几个规律,如根据特性取缩写(如 BASIC,COBOL,TCL 和 LISP),以已有的语言为基础(如 C++,C#和 CoffeeScript),或直接是数学和计算机领域杰出人物的名字(如 Ada,Pascal 和 Turing)。有时,设计者取名时更充满想象力。下面是 13 个意味深长的名字,以及它们背后的故事。

Python

于 20 世纪 80 年代末,由 Guido van Rossum 发明,初衷据说是为了打发圣诞节的无趣,1991 年首次发布,是 ABC 语言的继承,同时也是一种脚本语言,目前已经很流行。取名时,Guido van Rossum 认为它应该“短小,独特,还有一点神秘感”,他是英国著名剧团 Monty Python 的忠实粉丝,所以就是 Python 了。

Java

于 20 世纪 90 年代初期诞生,源自 Sun 公司的智能家电程序开发,如互动电视。最初名为 Oak,不过 Sun 公司的律师发现这个名字已经被注册。通过一系列的会议,公司从一个包含有 Silk,DNA 和 Java 的名单中选择了它。是谁第一个建议使用 Java 这个名字的不得而知,不过普遍猜测是灵感来自 Peet 咖啡店,因为 Sun 公司的工程师们很喜欢到这里喝咖啡。

Forth

于 20 世纪 60 年代,由 Charles Moore 创造。1968 年 Charles Moore 在一家名为 Mohasco 的家装公司工作,只有一台最多 2250 图形显示点数的 IBM1130 微型计算机,不过却要用它来设计地毯,而 FORTRAN 却不能满足要求,所以他发明了 Forth。最初其名为 Fourth,不巧,IBM1130 最多支持 5 个字符的文件名,“u”去而“Forth”生。

Perl

被誉为“瑞士军刀”,以灵活性和高效性著称,于 20 世界 80 年代由 Larry Wall 发明。Larry Wall 的构思是这个名字应该短,并充满正面意味。想到 pearl 前,他还考虑过他妻子的名字 Gloria。不过已经有一种语言叫 PEARL,所以去掉了 pearl 中的"a"。值得一提的是,这个名字一直都是小写,受 Unix 文件系统都是区分大小写的影响,1991 年 Perl 4 发布时,Larry Wall 将首字母改为大写。

Lua

于 1993 年,由 TeCGraf 开发完成,是一种脚本语言。该语言由 DEL 和 SOL 开发而来,结合了两者的优点,并增加了了流控制等函数特性,可谓是它们的孩子。葡萄牙语中,sol 意为”太阳”,而 lua 意为“月亮”。

Smalltalk

于 20 世纪 70 年代早期,首次由 Xerox PARC 开发,是是面向对象类型语言的一员,后来的 Java, Python 和 Ruby 中都能见到其影子。优化后,参与开发者 Alan Kay 对其命名时表示应该遵从名字看起来好看的语言,如“Zus”和“Thor”都不长命,这种规律。所以,就取了“Smalltalk”这个平平的名字。

Logo

于 20 世纪 60 年代,是由 Daniel G. Bobrow, Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 设计的一种教学式语言,也是一种 Lisp 方言,为教学过程中介绍大量程序设计概念提供了便利,对后来的教学式编程语具有深厚的影响,如 Scratch。这种语言的一个重要特征就是 “海龟绘图”系统。其名源自“logos”,希腊语中意为“单词”或“思想”,以区别于传统的编程语言。

Ruby

于 1993 年,由 Yukihiro Matsu MOTO (“Matz”) 开发完成,是名副其实的面向对象的脚本语言,与 Perl 和 Python 比肩。Matz 希望同 Perl 一样,为它取一个宝石的名字。与同事 Keiju Iahitsuka 在许多名字中筛选后,剩下 Coral 和 Ruby。最终选择 Ruby 是因为,Perl 的发音与 6 月的诞生石 pearl (珍珠)相同,Ruby 选择以 7 月的诞生石 ruby (红宝石)命名,Matz 认为 Ruby 不只甘做 Perl (Matz 认为其是“玩具语言”)的后继者,而是要替代它。

Scheme

20 世纪 50 年代末,John McCarthy 在 MIT 开发了最早的高级编程语言,Lisp。它迅速成为了人工智能研究领域的首选。随后,许多 Lisp 方言相继诞生,如 Planner 和 Conniver。1975 年,Gerald Jay Sussman 同 MIT 的 Guy Steele 联合开发完成了另外一种 Lisp 方言,并根据 Planner 和 Conniver 的取名方式,命名为 Schemer。同是不巧,当在 MIT 开发的 ITS 操作系统上运行时,这种系统最多支持六个字符的文件名,所就改为了 Scheme。

Scala

于 2001 年,由 Martin Odersky 开发完成,既是一种函数式编程语言,也具有面向对象的特性,运行于 Java 平台(早期有 .NET 平台的实现)。其名 Scala 的得来有两个原因:SCAlable LAN 两个单词相结合;意大利语中 scala 意为“梯子”或“楼梯”,蕴含“更佳的编程语言”。

Scratch

第一版 Scratch 由麻省理工学院媒体实验室终身幼稚园组在 2006 年研发出来,是一种教学式语言。儿童可以通过拖拽电脑屏幕上的程序模块完成程序设计序。它可以用以创作小说,电影,游戏,音乐等等,几乎你能想到的它都能办到。其名源自打碟的声音。

AWK

如果使用过 Unix 系统,AWK 对你来说可能再熟悉不过了。它于 1997 年开发完成,是用以处理文本文件的解释性语言,同时也是 Linux 及 Unix 环境中现有的功能最强大的数据处理引擎之一。Larry Wall 开发 Perl 时深受其影响。AWK 这个名字同许多语言名字一样,也是缩写,不同的是,这三个字母是其发明这的名字首字母,贝尔实验室的 Alfred Aho,Peter Weinberger 和 Brian Kernighan (上图)。

Groovy

2003 年,Java 程序员 James Strachan 需要这样一种脚本语言:同 Python 和 Ruby 相似,但又却能在 Java 平台上运行。于是发明了 Groovy。它能动态编译为 Java 字节码。正如 James Strachen 所说的那样,“在绝妙的(groovy) Java 代码基础上编程”,这个名字就不言而喻了。

回到

顶部