技术开发 频道

十三种编程语言和它们名称背后的故事

  Smalltalk

  Smalltalk是一个包含多种面向对象编程语言的家族,最初由Xerox公司的帕洛阿尔托研究中心(简称PARC)于上世纪七十年代所创建。它的出现给众多后续出现的编程语言带来了重大影响,其中包括Java、Python以及Ruby等等。

  Alan Kay的学习研究小组一手建立起了Smalltalk,而根据Kay的回忆,当时选择这个名称是为了迎合“印欧神话体系”中的设定。在这套理论系统中,像宙斯以及托尔这类名号霸气侧漏的神往往历尽坎坷、饱经磨难。因此他反其道而行之,选择了Smalltalk这样一个听起来就人畜无害的字眼,平和舒缓的风格也让人们不至于对这种语言抱有不切实际的期望。

  Logo

  Logo是一款由麻省理工学院人工智能实验室的多位计算机科学家于上世纪六十年代中期开发完成的编程语言,当时主要是为了满足教学需要。它属于Lisp语言的一类分支,能够被用于实现多种编程概念的教学、同时也给Scratch等后续教学型语言带来了深远影响。

  它的一大主要特点在于利用海龟图形生成源自命令的输出结果。Logo这一名称明显源自希腊语的“logos”,原意为“字”或者“思想”,开发者希望借此对其与传统中面向数字的编程语言加以区分。

  Ruby

  Ruby由松本行弘于1993年所创建,这款真正面向对象的脚本化语言被作为Perl以及Python的替代方案。与Perl类似,松本希望选择一个与珠宝相关的词汇为其命名。在与同事石冢圭树进行讨论之后,最终名称选项被锁定在Coral(珊瑚)与Ruby(红宝石)二者之间。

  Ruby最终当选,这一方面是由于松本更喜爱这个名称、另一方面它同时也是石冢的生日石。松本还明确指出,虽然Perl所代表的珍珠象征着六月、而Ruby所代表的红宝石则象征着七月,但Ruby并非Perl的继承者(松本一直认为Perl只是一种‘玩具性质的语言’);相反,Ruby将彻底取代Perl。

  Scheme

  在上世纪五十年代末,麻省理工学院的John McCarthy创造出了Lisp。作为历史最为悠久的早期高级编程语言之一,Lisp很快成为人工智能研究者们最为青睐的编程方案。随着时间的推移,Lisp的一系列不同分支也争相涌现,其中就包括Planner与Conniver。

  1975年,麻省理工学院的Gerald Jay Sussman与Guy Steele开发出了Lisp的又一款衍生方案,并按照Planner与Conniver的命名惯例为其选择了Schemer作为名称。不过这种语言当时运行在由麻省理工学院自主开发的ITS(即非兼容分时系统)系统之上,该系统强制要求文件名由两部分组成、且每一部分最多只能包含六个字符。有鉴于此,Schemer最终被缩减成了Scheme。

  Scala

  Scala语言由Martin Odersky于2001年创建,它身兼函数与面向对象两种特性。它在编写时充分考虑到了将开发成果编译为Java字节码的需求(在此之前,它也能够被编译为.NET代码)。

  Scala这一名称的确定基于两个不同理由:第一,由于结合了可扩展LAN、因此它具备很好的扩展(scale)能力;第二,“scala”在意大利语中代表着楼梯或者阶梯,这为该语言赋予了美好的双重含义——帮助使用者通往目标的卓越编程语言。

  Scratch

  Scratch是一款教学性编程语言,由麻省理工学院媒体实验室于2003年开发完成。孩子们可以利用它将屏幕上的各个积木状模块(被称为sprite,即精灵)连接起来,并借此完成程序创建。在它的帮助下,年轻的开发者们能够创造出属于自己的故事、电影、游戏、音乐以及一切曾经出现在他们梦中的事物。

  这款语言的名称来自嘻哈电台主持人通过旋转并刮擦(scratch)塑胶唱片来创造全新音效与音乐作品的表演方式。

  AWK

  任何一位曾经与Unix系统打过交道的朋友肯定也对AWK相当熟悉,这是一种用于处理文本文件的解释型语言。它最初诞生于1977年,当时被作为Unix grep工具的通用版本使用,随后于1979年首次成为Unix版本7中的内置方案。

  在开发Perl时,Larry Wall受到了来自AWK的诸多影响。与其它大部分编程语言的名称一样,AWK同样是个缩写词;但与常见情况不同的是,这一缩写代表的并非语言本身的作用、而是来自贝尔实验室的三位开发者的姓氏首字母:Alfred Aho、Peter Weingerber以及Brian Kernighan。

  Groovy(精妙,亦有时髦之意)

  时间转回2003年,当时Java程序员James Strachan希望能用上一款像Python或者Ruby那样的脚本化语言——但却要能够运行在Java平台之上。这可怎么办?

  答案是自己动手。他设计出的这款新语言能够将开发成果动态编译为Java字节码,用他自己的话说,这是一款“站在全部精妙(groovy)Java代码的肩膀上而被创造出来的语言”。接下来的工作就简单了,没费什么脑子、Groovy这个名称已然被敲定。

0
相关文章