计算机编程语言有python、java、logo等,不同语言应用的环境各有各的不同,有时候,语言的创造者们在选择名字的时候非常有创意,今天就来聊一聊13个不同寻常的编程语言名称背后的故事。

Python

Python是创造人吉多·范罗苏姆Guido van Rossum 在圣诞节期间为了打发圣诞节的无趣,开发的一种脚本解释程序语言,作为ABC语言的一种继承。现在非常流行,VanRossum 在起名的时候,从英国著名戏剧团体Monty Python中找到了灵感,用Python命名了这门新语言。Python已经成为最受欢迎的程序设计语言之一,是一种高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Java

上世纪90年代初, Sun公司预感到即将掀起智能家居设备(如互动TV)的浪潮,他们开发了一个叫Oak的语言——一种精简的语言,程序非常小,适合在网络上传输,但是这个名字的商标已经被人注册了,他们只好选个新名字,再绞尽脑汁想了一系列名字之后,最终,有名提议者在喝一杯Java咖啡时无意提到的Java词语,Java最被被采用。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,具有功能强大和简单易用两大特征。

Forth

Forth 是CharlesMoore在20世纪60年代设计的一种语言。当时他在一个家装公司工作,公司想让他用电脑来设计地毯,给他提供了一台带有一个2250显示卡的IBM 1130 微型计算机。开始,Moore想使用FORTRAN语言,但这个语言不适用于2250 显卡。他只好发明了一种新语言,叫做Fourth ,意思是第四代编程语言。由于当时文件名不能超过5个字符, 他只好把u去掉,变成了现在的Forth。由于其结构精简、执行快速、操作方便,广为当代天文学界使用。

Perl

Perl 功能强大而灵活,是由Larry Wall于20世纪80年代研发的。Larry想要一个短的,有“内涵的”名称,他曾经考虑了妻子的名字Gloria,但他很快就发现这样会产生家庭混乱,给生活带来不便, 后来他选择了pearl(珍珠)为这个语言命名。悲催的是,这个词已经被使用了,他只好把A去掉,最终变成了perl !(注意,这里有以前的缩写:“PracticalExtraction And Report Language”。)注意最初名称是全小写的,直到1993年 Perl4发布的时候,才变成首字母大写。

Lua

Lua由三个巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)学生Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所于1993年开发的,目的在于为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。它基于两个语言:DEL(Date Entry Language)和SOL(Simple Object Language)。新语言把两个语言的优点都结合了起来。Sol在葡萄牙语中的意思是太阳, 那新的语言就叫做月亮:Lua。

Smalltalk

Smalltalk是一个面向对象的语言,于20世纪70年代初由艾伦.凯Alan Kay提出来的,这门语言给Java,Python,Ruby等很多后来者带来了巨大影响。该语言系统完全基于Simula的类和消息的概念。语言没有固定的语法,语法分析由类本身完成。Smalltalk这一名字的选取是针锋相对于“印欧神灵理论”的,该理论中任何系统都会被赋予一个它们永远无法企及的、类似于神灵的名字,例如宙斯(与天神同名)和索尔(与雷神同名)。相反地,他选择了一个超级平淡无奇的名字,Smalltalk,以杜绝招致任何过高的期望值。

Logo

Logo源于希腊文,有“文字”、“思想”“思考”之意,这是MIT开发的一个用于教育的一门语言。美国麻省理工学院(MIT)佩帕特(Seymour Papert)教授指导下的一个研究小组于1967年,专门为儿童研制开发。作为LISP的一个方言,可以用来教授很多的编程概念,它也影响了很多后来的致力于教育的编程语言,例如Scratch。它虽然语言结构简单、却有丰富的表达方式。

Ruby

Ruby由日本人松本行弘Yukihiro Matsumoto(“Matz”)与20世纪90年代开发的,这是一种面向对象的脚本语言。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言,经过和同事讨论后,Coral和Ruby 被留在了最后的名单内。Matz选择了Ruby,这是大有深意的,根据欧美“诞生石(Birthstone)”的传统,每个星座都有诞生石。其中7月的诞生石是ruby,6月的是pearl(对应的语言就是LarryWall发明的perl)。Matz可不仅仅是想让Ruby成为Perl的后继,而是想替代它。它语法简单,是一种通用的、解释的编程语言。

Scheme

Scheme诞生于1975年,由MIT的Gerald J.Sussman 和 Guy L. Steele Jr. 完成,这是最早的高级编程语言之一,他们把它称为Schemer,这个Schemer 使用了Planner和Conniver的命名规范。Scheme很快变成了人工智能研究者的最爱。然而,这个语言跑在一个MIT开发的叫做ITS的操作系统上,它的文件名支持两个部分,每个部分都只能有6个字符,于是Schemer只好缩水,变成Scheme。很快Scheme变成了人工智能研究者的最爱。

Scala

Scala是个年轻的语言,2001年由联邦理工学院洛桑(EPFL)的Martin Odersky创建,这是一个既支持函数式编程又支持面向对象编程的语言。被编译以后,它成为了Java字节码,在JVM中运行(之前,Scala可以被编译成.NET的中间代码来执行)。选择Scala作为名称有两个原因:首先它表示SCAlable LAN这两个词的组合,其次在意大利语中表示楼梯或者梯子,这就暗含着Scala要帮助你不断上升,成为更好的编程语言。设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

Scratch

又是一个MIT开发的面向孩子的编程语言!是麻省理工学院开发的一款简易图形化编程工具孩子们可以通过可视化的形式来操作屏幕上的“精灵”,从而创造一些故事,小电影,游戏,音乐以及他们梦想创造的任何东西。这个语言的名字来源于嘻哈音乐DJ,他们会通过手动旋转和刮擦(scratching)唱机上的黑胶唱盘来创造新的声音和音乐。

AWK

使用过Unix都会对AWK很熟悉,这是一个脚本语言用来处理文本文件,1977当它被开发出来的时候主要是想做一个grep工具的一个更加通用的版本。AWK对Larry Wall设计Perl产生了重要的影响。和很多编程语言的名称类似,AWK也是一种缩写,但是这个缩写不是表示语言能做什么,相反,它是三个来自于贝尔实验室的发明人的名称:AlfredAho,PeterWeinbergerBrianKernighan。

Groovy

2003年,一个叫James的Java程序员想要一个像Python 和Ruby的脚本语言,但是要运行在JVM中。他的解决方案就是设计一个新的语言,能够动态地编译成Java 字节码。用他自己的话来说:“我更期待一种(仅仅)建立在那些精妙的Java代码和JVM之上的动态语言(精妙-Groovy)。”