2

前天,也就是 12 月 4 日,是编程语言 JavaScript 面世 26 年的纪念日。

当天,Node.js 官方推特还专门发文庆祝:“Happy 26th Birthday,JavaScript”。

这是个充满欢乐的日子,原因除了 JavaScript 和《蜘蛛侠:离家日》中性感梅婶 Marisa Tomei 、说唱歌手 Jay Z 同一天过生日之外,更多的是在 1995 年那一年里,JavaScript 诞生所带来的传奇意义。

因为在 1995 年,Java、JavaScript、PHP 这三种编程语言可谓“扎堆”问世,但其中最被人津津乐道的,就要数 JavaScript 了。

接下来,就让我们一起回顾一下, 26 年前 JavaScript 首次亮相时,科技界人士对其激动人心的看法吧:

1995 年 12 月 4 日,为了纪念 JavaScript 的发布,Netscape 和 Sun Microsystems 公司联合发布了一份新闻稿。

该稿件版本声称,JavaScript 将是一种“易于使用”的脚本语言,旨在“创建实时在线应用程序”。

这则新闻一经发布,便收到了来自当时行业巨头的一片赞誉。

附上 1995 年科技行业(28家行业领先公司之一)成员对“初出茅庐”的 JavaScript的看法(注:职位名称取自当时的报道):

“JavaScript 是一项激动人心的技术,因为它代表了专为互联网设计的下一代软件。惠普致力于开放标准,并且是 JavaScript 的支持者,因为它补充了惠普的开放系统体系结构。”——惠普部门经理 Jan Silverman

“JavaScript 是一种可以跨平台编写脚本访问数据库的好方法,并将生成的数据移动到 Macromedia Shockwave 中,在那里可以对其进行渲染、设置动画并制作成用于 Internet 的实时交互式多媒体。JavaScript 也是 Macromedia 正在构建的新多媒体发布工具的一项很有前途的核心技术。”——Macromedia 总裁兼 CEO Bud Colligan

“JavaScript 带来了快速多媒体应用程序开发的强大功能,在操作系统和体系结构层面实现了跨平台移动。我们很高兴将这种强大的语言集成到我们的开发人员程序中。”——America Online Technologies 总裁 Mike Connors

“JavaScript 与 Silicon Graphics suite 的内容创建和应用程序开发工具完全匹配。这种组合将通过开发更丰富的交互式应用程序而使业界受益。”——Silicon Graphics 总裁兼 CEO Tom Jermoluk

“AT&T 对 JavaScript 的支持不仅仅是对酷技术的支持,而是对开放标准流程的支持。开放标准对互联网的成功与开放连接同样重要。”——美国电话电报公司网关服务部副总裁 Tom Evslin

“JavaScript 将允许我们轻松为 Excite 服务创建个性化的小程序。这些小程序与 Excite 服务的丰富功能相结合,将在用户探索和浏览互联网时更充分地融入用户体验。”——Architext软件首席技术官Graham Spencer

“JavaScript 和 Java 代表了 Internet 和企业计算内部网发展的重要步骤。JavaScript 允许 Internet 应用程序轻松连接到生产数据库,如 CA OpenIngres..”——Computer Associates执行副总裁兼首席技术官 Nancy Li

“像 JavaScript 这样的工具将释放出新一波的创造力,并以无人能预测的方式改变互联网。JavaScript和其他开发将要求提高系统性能…”——美国数字设备公司互联网商业集团副总裁 Rose Ann Giordano

“通过启用实时在线应用程序,JavaScript 将使用户受益。这些应用程序需要一个强大的数据库引擎来进行内容管理...通过与Netscape合作,我们将为 web 用户带来最好的在线数据库和实时交互技术。”Informix软件董事长兼CEO Phil White

“SCO 期待在我们的 OpenServer 和 UnixWare 产品线上支持 JavaScript 语言。JavaScript 将使开发人员能够创建比以往任何时候都更具刺激性和交互性的基于 Web 的应用程序,使他们能够在日益复杂的网络用户群中竞争所需的优势互联网用户。”——SCO 分层产品副总裁 Richard Treadway

“我们计划利用 JavaScript 的强大功能集成我们自己的自动文档索引和摘要技术。我们技术的强大功能和使用大大增强了服务器及其为web客户端提供及时而有价值的文档。”——Iconovex Corporation 销售和营销副总裁 Robert Griggs

“为 Java 开发创建通用、标准的脚本语言将加速采用这项新的激动人心的技术,为消费者提供动态、实时的内容。Metrowerks 将支持 JavaScript,作为我们努力的一部分,将 Java 工具作为新 Internet 开发的首选编程平台。”——Metrowerks公司总裁兼 CEO Greg Galanos

“JavaScript使开发人员能够在独立于平台的开发环境中创建功能强大的新型多媒体丰富应用程序。”——Illustra信息技术创始人兼首席技术官 Michael Stonebraker 博士

“Verity 对 Java 非常感兴趣,因为它是一个强大的工具,可以提供动态显示功能和客户端对搜索和代理平台结果的操作。可配置性是Verity服务器的关键优势,JavaScript的可用性为非程序员利用Java对象的能力提供了一个理想的工具定制Verity应用程序的外观和感觉。”——Verity 互联网营销总监 Steve Zocchi

“Paper软件计划使用JavaScript作为粘合剂,让我们的开发合作伙伴将Java、插件和Paper的多维VRML用户界面结合在一个分布式在线应用程序中。”——Paper软件 CEO Mike McCue
......
当然,以上所有这些对于 JavaScript 早期的评论观点,放到 26 年后的今天来看,当然会显得有些“历史”了。但无论如何,那就是当时那个时代最前沿的观点。

JavaScript 的“戏剧性”诞生记

作为世界上最流行的编程语言之一,JavaScript 自 1995 年首次亮相以来,已经受到了众多程序员们喜爱,不管你同意与否。

但其实,JavaScript 的诞生过程,也颇具戏剧性。

时间拨回到 1994 年,那一年正好美国 Netscape(网景公司)发布了 Navigator 浏览器 0.9 版,但由于该版本的浏览器只能用来浏览,不具备与访问者互动的能力。因此 ,Netscape 急需一种网页脚本语言,使得浏览器可以与网页互动。

恰好,当时 Netscape 看到了 Sun 公司正式推出了 Java(原名 Oak 语言),因此有点心动,随后便与 Sun 公司结联。

1995 年 4 月,34 岁的系统程序员 Brendan Eich 被 Netscape 录用。

据了解,当时 Brendan Eich 的主要方向和兴趣是函数式编程,但 Netscape 招聘他的目的,是研究将 Scheme 语言作为网页脚本语言的可能性。

一个月之后,也就是 1995 年 5 月,Netscape 指定了 Brendan Eich 作为新"简化版 Java 语言"的设计师。

为了应付公司安排的任务,Brendan Eich 只花了 10 天时间就给出了一个设计版本——Javascript。

他的设计思路大概是这样的:

  • 借鉴C语言的基本语法;
  • 借鉴Java语言的数据类型和内存管理;
  • 借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;
  • 借鉴Self语言,使用基于原型(prototype)的继承机制。

由于时间太短,该语言的一些细节考虑得不够严谨,导致后来很长一段时间,用Javascript 写出来的程序混乱不堪。

所以,Javascript 语言实际上是两种语言风格的混合产物,即(简化的)函数式编程+(简化的)面向对象编程。

据说,如果不是公司的决策,Brendan Eich 绝对不会把 Java 作为 Javascript 设计的原型。

作为设计者,Brendan Eich 一点也不喜欢自己的这个作品:

现在看来,尽管 JavaScript 的诞生初衷很简单,但却有了后来意想不到的火热发展,如今更是成为程序员广泛使用和学习的一门编程语言。

关于 JavaScript

JavaScript 通常缩写为 JS,是一种符合 ECMAScript 规范的高级编程语言。

JavaScript 通常是实时编译的和多范式的,具有动态类型、基于原型的面向对象和一流的功能。

除 HTML 和 CSS 外,JavaScript 也是万维网的核心技术之一。有数据显示,有超过 97% 的网站使用该语言进行网页客户端操作,且经常合并第三方库。所有主要的 Web 浏览器都有一个专用的 JavaScript 引擎来在用户设备上执行代码。

作为一种多范式语言,JavaScript 支持事件驱动、函数式和命令式编程风格。它具有用于处理文本、日期、正则表达式、标准数据结构和文档对象模型(DOM)的应用程序编程接口(API)。

JavaScript 引擎最初只用于web浏览器,但现在它们是一些服务器和各种应用程序的核心组件。这种用法最流行的运行时系统是 Node.js。

千万不要把 JavaScript 和 Java 混淆,尽管 JavaScript 和 Java 两者之间有相似之处,包括语言名称、语法和各自的标准库,但这两种语言是不同的,在设计上有很大的不同。


思否编辑部
4.3k 声望116.9k 粉丝

思否编辑部官方账号,欢迎私信投稿、提供线索、沟通反馈。