你可能听过这样一种说法:在计算机科学领域,只有两件困难的事情,其中一件是给事物命名。有些编程语言的名字很有意义,比如谷歌(Google)将它的编程语言命名为 Go(lang),而其他的名字——比如 Python 和 Java——为什么要这么命名就不那么明显了。
在这篇文章里,让我们来一起探索一下最具标志性的编程语言的历史,以及它们的名字是如何得来的。
Python
Python 起初是 Guido van Rossum 的一个“业余”编程项目,目的是让他在圣诞节期间有事可做。van Rossum 希望这门语言有一个简短、独特且神秘的名字。如果你看到 Python 的“两条蛇”标志,可能会认为 Python 是以一种巨大的蟒蛇来命名的(它能把整条鳄鱼吞下)。
实际上,Guido 是以 70 年代英国喜剧团体 Monty Python’s Flying Circus 的名字给它命名的。原来他是这个喜剧团体的超级粉丝,刚好那个时候他在看这个团体的剧本。
Python 的“两条蛇”标志与它的名字的起源没有任何关系
Java
Java 是 20 世纪 90 年代初 Sun 微系统公司作为 Green 项目的一部分而开发的。为这个项目开发一门新语言并不是他们的重点:开发 Java 是因为他们需要一种可以独立于处理器的语言,能够提供 C++的大部分功能,同时更容易使用。成立这个绝密的 Green 团队是为了打造超越个人电脑的“下一波计算浪潮”,他们认为个人电脑应该是具有互动性的数字控制的消费电子产品(也就是“智能设备”的前身)。
Green 团队的杰作:一个无线、全彩、触摸屏控制器,名字叫作 Star7
Java 最初以开发者窗户外面的一棵橡树来命名,叫作 Oak。但是,Sun 的律师说 Oak 已经被注册为商标,于是 Green 团队召开了一次头脑风暴会议,并想出了 Java 这个名字。他们希望这个名字可以反映这门语言的本质:“活力、革命性、活泼和有趣”。经过这场“持续疯狂”的头脑风暴,Java 显然是一个完美的选择。
虽然 Star7 有点超前于时代,从未真正起飞,但它的编程语言却成功了——剩下的就是我们已经知道的历史了。
JavaScript
JavaScript 是 Brendan Eich 于 1995 年在网景公司 (Navigator 背后的公司,当时最流行的 Web 浏览器)开发出来的。那时,网页完全是静态的,但网景公司设想的是今天这种交互式的动态网页。由于来自微软 IE 浏览器的压力,他们聘请 Eich 将脚本语言集成到浏览器中。
网景公司希望创造一种简单易用的语言。借着 Java 蓬勃发展的势头,他们希望这门语言成为“Java 的脚本伴侣”,就像 Visual Basic 是 C/C++的伴侣一样。Eich 强调开发速度和易用性,继承了 Java 的大部分语法,只用了 10 天就写出了 JavaScript 的第一个版本,名字叫作 Mocha。
“我的任务是让它看起来像Java,但又不能太臃肿……它应该是一种小弟语言,对吧?Java的小伙伴”。——Brendan Eich
当这门语言第一次被集成到 Netscape 中时,它被叫作 LiveScript。不久之后,网景公司就全身心投入到“Java 伴侣”的开发当中。他们与 Sun 公司合作,将这门语言重命名为 JavaScript,并与 Java 一起宣传 JavaScript:JavaScript 是一种脚本语言,用于在浏览器中执行小型的客户端任务,而 Java 则是一种更大、更专业的工具,用于开发丰富的 Web 组件。事实上,JavaScript 这个名字的起源是网景公司试图与微软抗衡的一种营销策略。
C 家族语言(C\C++\Objective-C\C#)
世界上第一门编程语言是 Ada,这要归功于 Ada Lovelace。不久之后就有了 B 语言,C 语言的名字就是从 B 语言衍生而来的。C 语言是由贝尔实验室的 Dennis Ritchie 开发的,被很多人认为是第一种高级编程语言。
C 语言有很多扩展,包括 C++、Objective-C 和 C#。C++和 Objective-C 的名字不言自明,而 C#则不那么明显。C#的部分灵感来自音乐:一个尖锐的(#)音符意思是它应该在音调上提升半个音高。更有趣的是,#包含了 4 个+符号,2x2 的正方形,完美地诠释了 C#是 C++的“增量”!
Swift
苹果公司从 2010 年开始开发 Swift,并在四年后首次发布。因为 Objective-C 的影响力巨大,苹果公司便将 Swift 标榜为一种快速、易用和安全的设计。一开始,Swift 的名字叫“Shiny”,就好像你正在构建一个“闪亮的东西”。实际上,它还用.shiny 做过文件扩展名。
他们最终选用 Swift 这个名字来反映它的速度——在性能和开发速度方面。Swift 的标志是一只与之同名的鸟:Swift 是一种以速度和空中驻留能力著称的鸟类。
Swift 的标志是一只同名的飞鸟
Haskell
Haskell 是以逻辑学家 Haskell Brooks Curry 的名字命名的,他在组合逻辑方面的工作广为人知。事实上,有几种编程语言分别是以他全名当中的各个部分命名的:Haskell、Brook 和 Curry!柯里化(Currying)的概念也是以他的名字命名的。
Haskell 的一个很少被讨论的地方是它的标志。你可能会注意到 Haskell 标志当中有个λ符号,这是对λ演算(lambda calculus)的一种赞颂。如果你更仔细看,会发现λ夹在“>”和“=”之间。这个来自 Monads 绑定操作符>>=。Haskell 的标志是一个交织了λ的绑定操作符。
Haskell 的标志是绑定操作符和 lambda 符号的组合
希望你喜欢了解编程语言的历史。我在研究这个故事的过程中获得了很多乐趣,因为我认为这些故事的起源非常有意思。
原文链接:
评论