我脑子里经常会萦绕一些很无聊的小问题,其中一个就是,这么多的编程语言的名字都是怎么出来的?让我们来给它们归归类。
来自无聊的首字母缩略/简写
这一类别中包括BASIC语言,它来自精心设计的“Beginner’s All-purpose Symbolic Instruction Code”。Fortran语言来自 Formula Translation —— 一种糟糕透顶的语言命名方式,但我可以原谅它,因为它可能是最古老的一种高级计算机编程语言。LISP语言也类似,只有搞技术的人才想得出的命名方法,取自 List Processing。
Perl语言这几个字母字面上是意思是 Practical Extraction and Report Language。这是一种在互联网早期盛极一时的编程语言。Perl语言中方便的字符串操作使得它很适合处理URL相关、处理HTML的程序。
为创造市场宣传效果而命名
我 最喜欢的通用语言,Java,最初叫做Oak,然后改成Green。Java这个名字是最终的选择,之后又由此产生了一系列跟咖啡豆相关的产品名称。我 想,从Green改名为Java是一个很有必要的市场策略。JavaScript的名字也从Java天花乱坠的广告宣传中沾光,尽管它跟Java实际上没 有多大关系。
Ruby,Smalltalk,和Python的取名全都属于这一类。Python尤其明显:
Python的名字来自于BBC的70年代的一个动漫剧《Monty Python’s Flying Circus》。语言设计者想给这个语言取一个短的、独特的、有点神秘的名字。因为他对这个动漫剧很着迷,他认为这个名字非常棒。
只有程序员才能理解的名字
很 久很久以前,有一种语言叫做BCPL(Basic Combined Programming Language)。这种语言一个轻量级的版本叫做B语言。当Dennis Ritchie基于B语言设计出了一种新语言后,他把它称作C语言。这是因为它很像B,但比B好。在C语言中,两个加号放到一起(++)意思是把一个值加 一。于是,C语言的后继者就成了C++(很像C,但更好)。C++的修订版变成了D语言。C语言的另外一个修订版叫C#(这种语言更应该感谢的是Java)——在音乐符中比C要高半个音程。
以数学家名称命名的语言
Pascal的名字来源于17世纪法国著名的数学家Blaise Pascal。
查 尔斯-巴贝奇,一个18世纪数学家,他设计(但从未实现)了一个简单的可编程计算机,叫做“the Difference Engine”,因此以他的名称命名了一种编程语言叫做Babbage。拜伦勋爵的女儿Ada Lovelace跟巴贝奇一起共事,她为“the Difference Engine”计算机设计了一套程序。这被认为是历史上第一计算机程序——尽管她从来没有运行过它,debug过它,或给它设计一个漂亮的用户界面。美国 国防部提议以她的名字命名了一种编程语言,这就是Ada语言。
Haskell语言和Curry语言的名字都来自于20世纪美国数学家 Haskell Curry。他的姓氏还被采用为’currying’编程技术——把有两个参数的函数转变成一个只有一个参数的函数,第二个参数变成固定值。只有 Haskell Curry自己经常用这个概念。这个概念实际上是来源于Moses Schönfinkel,但事实上,如果说’currying’听起来有点傻,那’Schönfinkelisation’就有点荒唐了。
以色情明星名字命名的编程语言
现在我要说的就是有史以来最出色的编程语言名字。这也是这篇文章真正的目的。我在大学里学了一点Linda语言,这是一种通常被当作一种“语言里的语言”,用来做并行处理。很多年后我才知道Linda这个名字来自于色情明星Linda Lovelace。我想可能是语言设计者搞出的一个小笑话,或是对Ada的某种隐喻。我花了整堂计算机课琢磨这个问题。
据我所知,Linda是唯一一个以色情明星命名的计算机语言。