关于编程语言的命名方式,这里有几个瞎胡闹的例子
打开 TIOBE Index 世界编程语言排行榜,出现在榜单上的程序语言名称多半都让人一头雾水。一些程序语言的作者会以「这种语言是什么」来命名语言,比如 BASIC、COBOL、TCL、LISP;另一些语言则是由它从哪些现有语言派生而来命名,像是 C++,C#;当然还有一些来源于数学家或计算机科学家的名字,其中的代表则是 Ada,Pascal,Turing。
但也有很多程序语言的名称是编写者随便拍脑门和大腿瞎想出来的,这篇文章里要讲的这几个就是如此。
Python:不是大蟒蛇,是个 BBC 电视剧
Python 的创始人吉多 · 范罗苏姆1982 年从阿姆斯特丹大学取得数学和计算机科学硕士学位后,他曾在多家科研机构工作,2005 至 2012 年他在 Google 工作了 7 年,之后又离职加入 Dropbox。
这位现年 60 岁的荷兰程序员在他 34 岁(1989 年)的圣诞节假期中设计出了风靡世界的程序语言 Python。虽然 Python 的原意是大蟒蛇,但创始人显然不是想表明这种语言可以变成白娘子跟你在西湖相遇,关于 Python 的命名,吉多自己(在 1996 年时)的说法是这样的:
「六年前的 1989 年 12 月,我在寻找一门『课余』编程项目来打发圣诞节前后的假期时光。假期里我的办公室关门,但我有一台家用电脑。我决定为当时我正构思的一个新的脚本语言写一个解释器,它是 ABC 语言的继承,对 UNIX / C 程序员会有吸引力。作为一个略微有些奇怪想法的人和《蒙提 · 派森的飞行马戏团》的狂热爱好者,我选择了 Python 作为项目的标题。」
《蒙提 · 派森的飞行马戏团》(Monty Python's Flying Circus)是英国的喜剧团体蒙提 · 派森创作的系列超现实主义电视喜剧,1969 年首次以电视短剧的形式在 BBC 电视频道播出,共推出了 4 季共 45 集节目。随后喜剧团体蒙提 · 派森的影响力从电视扩展到舞台剧、电影、音乐专辑、音乐剧等,被外国媒体认为「在喜剧上的影响力相当于披头士在音乐方面的影响」。
除去 Python,以流行文化命名的程序语言还有不少,比如 Frink Language 来自《辛普森一家》中的 Frink 教授。
说回到 Python 这门语言,虽然名称来源和本意都不是大蟒蛇,但公司还是采用了两条盘在一起的蛇作为 logo。
Java:咖啡屋的小甜心
Java 在英语中直译是著名咖啡产地「爪哇岛」,程序语言 Java 的命名也与此有关。
1990 年代初期,Sun Microsystems 公司正努力开发一种应用于电视机顶盒、闹钟、面包机和微波炉的程序语言。这一项目在 Sun 公司内部被称为 Green 项目,但公司创始人和前 CEO 詹姆斯 · 高斯林(James Gosling)一直认为应该为这种新语言取个名字。
直到有一天,詹姆斯看到办公室门口的一株橡树(Oak),这种充满生命力的绿色植物在硅谷随处可见,詹姆斯决定将新语言命名为 Oak。由于当时智能家电的市场需求并不太高,Sun 公司不久后就放弃了这项计划。
1994 年,网络的发展让 Sun 公司认为万维网未来大有可为,决定将 Oak 应用于应用于万维网。但那时 Oak 已经被一家显卡制造商注册了,詹姆斯只好要求公司市场部召开命名征集会来命名这个新语言,将征集来的名称按照评选次序列成表提交给商标律师。
关于取名的过程,詹姆斯曾经这样告诉 Sun 公司现任总裁乔纳森 · 施瓦兹(Jonathan Schwartz):
「那天下午,我们大约十二人将自己锁在房间中,命名顾问充当会议主持人让我们写出一些名字来挑选。我们最终写出了大约十二个名称,律师团选定了能排除其他名称的候选项。
Java 是列表中的第四个名称,我最喜欢的是第三个名称『Lyric』(抒情诗)。」会上排在第一位的名字是 Silk(丝绸),但这个名字遭到了詹姆斯的坚决反对。排名第二第三的名称没有通过律师的筛选,排在第四位的 Java 最终当选。
据詹姆斯回忆,最先提出这个名字的人是马克 · 奥普曼(Mark Opperman),灵感来源是在一家咖啡店与同事品尝的爪哇岛咖啡。爪哇岛出产的阿拉比卡种咖啡香味清淡又没有酸味,很多国外咖啡馆都以 Java 来命名或宣传以彰显品质。Java 语言同样看中了这种品质,以一杯飘着香气的咖啡作为 Logo,还将 Java 语言中的很多库类名称以咖啡相关词语命名,比如 NetBeans、JavaBeans、ObjectBeans 等等。
另外,当使用十六进制编辑器打开由 Java 源代码编译出的二进制文件(.class 文件)的时候,最前面的 32 位显示为 CA FE BA BE,即为词组「CAFE BABE」(咖啡屋宝贝)。
除了 Java Language,名称同样属于食物类的语言还有 Pizza Language 等等。
Lovelace:是情色女星,也是女程序员
洛夫莱斯(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)的名字命名。
与艺术相关的命名也不少,比如 Oberon Language 的名字源于莎士比亚《仲夏夜之梦》中的国王,Miranda Language 则是莎士比亚《暴风雨》中的一个角色。Oz Language 的 Oz 来自《绿野仙踪》(The Wizard of Oz),Malbolge Language 的 Malbolge 则是但丁《神曲》中地狱的第八层。
十几年后,有好事记者采访格林特询问他为什么用 Linda 来命名程序,格林特只是淡淡地怂了怂肩膀:「哈哈哈哈哈哈当时我只是个研究生啊。」