17611538698
webmaster@21cto.com

JavaScript 历史:从 Netscape 到框架之旅

前端 0 847 2022-09-23 10:49:59

图片

导读:2022 年是 JavaScript 诞生 27 周年。让我们回顾一下塑造该语言的历史,还有它的一些主要里程碑,并期待它在未来有更好的发展。

JavaScript 在 2022年迎来 27 岁的生日,这个编程语言现在业已超过 1200 万+用户。

根据几家开发者平台年度调查报告,JavaScript 已经无处不在,且连续7年成为 Web 开发者最常用的工具之一。

图片

在这篇文章中,我将带大家在时间轴上回顾 JavaScript 的历史。我们将共同了解JavaScript 这么多年来是如何发展的,以及在此过程中添加了哪些新的功能。

JavaScript的起源

JavaScript 诞生于 1995 年,由 Netscape Communications Corporation (网景通信有限公司)的软件工程师 Brendan Eich 在 10 天内构思并开发而成。

JavaScript 的发布缘由Netscape与微软之间商业战争最冲突的市场,它乘上了由用户快速牵引的过山车,然后螺旋式下降,几乎差点从市场中退出。

然而,它又从战场的硝烟中重新出现,在大量用户发出了发展互联网的声音后,JavaScript 又得已重生。

JavaScript 由 Netscape 管理层授权紧急开发,主要原因是该公司正与微软进行激烈的浏览器之战。


当年的市场如战场,时间至关重要。根据Netscape 在 1998 年反垄断审判中的证词披露,如果它不同意根据Windows 的发布年份划浏览器市场,微软威胁将消灭Netscape。微软希望将 Internet Explorer 与 Windows 95 绑定,从而拥有互联网的全部,并采取排他技术措施。


Netscape 愤怒地决定通过在 Netscape Navigator 2.0 Beta 浏览器的发布中包含附加软件,以便进行反击。这个计划好的脚本语言,最终命名为 “JavaScript”,目标是让非程序员能够快速创建网站。


而 Brendan Eich 的工作任务有不可能完成的属性,临危受命的他需要在 10 天内完成开发,然后要将软件包含在 1995 年 9 月发布的 Netscape 浏览器中。

此项开发工作必须符合 Netscape 和 Sun Microsystems 签署的技术规范与产品分发协议。此外,Netscape 管理层还要求强调其外观的重要性,该语言需要类似于 Sun Microsystems 的 Java 来增加其流行度。为了尊重版权法,它不能叫 Java。它还应该让用户感觉丰富且功能强大,可以快速被市场所采用,但又不应被视为 Java 的竞争对手。

Eich 被Netscape管理层明令禁止使用 Java 的面向对象语法。在接近冲锋式的开发过程中,它的代号被命名为“Mocha”,被作为 Java 的配套语言宣传——"JavaScript 是一种轻量级、对非程序员友好的编程语言"。

Brendan Eich 在开发的过程几乎没有睡过觉,后来证明他成功了。他利用自己对 Scheme 语言的经验编写了这个脚本语言,添加了受 Self 原型启发的成分,创建了类似 Java 的语义。

“Mocha”这个名称只维持了很短的开发周期,在它发布的第一个正式版本中变成了“LiveScript”,但这个版本代码不支持例外处理。

此时开源社区的用户们挺身而出,帮助 Eich 调试 LiveScript 

Sun Microsystems 在 1995 年 12 月发布 Navigator 2.0 Beta 3 ,再次将产品名称更改为 JavaScript,“LiveWire” 成为 Netscape Enterprise Server 的服务器端 JavaScript 品牌。 

浏览器大战 (1995 – 2003) 


在 1994 年 Netscape 的 Navigator 浏览器发布之前,微软一直专注于用 Microsoft Network、ActiveX 和 VBScript 取代 AOL,并于 1995 年开发了一个新版本的 Microsoft SQL Server,专为互联网应用程序设计。

在 Windows 95 中发布 Internet Explorer 之后,它没过多久,微软就在 1996 年发布了逆向工程的 JScript,赶上了 Netscape。

Netscape 此时要求欧洲计算机制造商协会(ECMA)建立JavaScript的通用标准。

一个名为 TC39 的技术委员会于 1996 年承担了这项任务。在 TC39 的会议期间,相互竞争厂商的实现间展开了激烈的辩论。尽管在达成协议方面进展甚微,标准化组织还是在 1997 年 6 月发布了第一套规范,即 ECMA-262,将向后兼容作为规则,并收紧了其中运算符的定义。

国际标准组织 (ISO) 和国际电工委员会 (IEC) 于 1998 年 6 月正式制定了第二版 ISO/IEC 16262,第三版于 1999 年 12 月推出,其代表了现代 JavaScript 的版本,称为 ECMAScript 3。

微软通过捆绑策略将 Netscape Navigator 很快赶出了市场,并在 1997 年发布了 Internet Explorer 4,口号为 “The Web the Way You Want It”,涵盖所有 Windows 操作系统、Mac OS、HP-UX 系统和 Solaris 等平台。

AOL 于 1998 年底以 43 亿美元收购了 Netscape Communications Corporation。但是到 2000 年底,微软已经完全控制了浏览器市场。

处于垄断地位的微软不再关心标准化,TC39 组织被解散,ECMAScript 4 的工作被归档入库。AOL 在 2003 年彻底解散了 Netscape Navigator 的员工,最终它以 11 亿美元的现金向微软出售了 800 余项专利,其中包括 2011 年涉及 Netscape 的项目。

图片

重生 (2003 – 2005)

2003 年,从 Netscape 的战后灰烬中诞生了 Mozilla 基金会。这个非营利组织的使命是保护用户对互联网的访问,并使其成为全球范围内的公共资源,而非专有。2005 年,Brendan Eich 也加入了 Mozilla 基金会,看到 Firefox 浏览器的快速增长,该基金会努力地倡导恢复 TC39。Eich 和 Mozilla 与 ECMA 合作开发了标准 ECMA-357 的新版本,也称为 ECMAScript for XML 或 E4X。

Jesse James Garrett 在 2005 年发表了一篇描述 JavaScript 支持技术的论文,从而进一步推动了这场标准与宣传的胜利。

 Garrett 在为异步 JavaScript 和 XML 创造了术语 Ajax ,他描述了该技术,供开发人员异步更新 Web 内容,帮助管理动态网站内容,并指示独立于平台的网页显示等标准。

 2005 年jQuery推出了,这是一个只需一行代码即可调用的 JavaScript 函数库。同年创建了 Dojo 基金会,用以促进包括 JavaScript 工具包在内的 Web 开源项目,以加速跨平台应用程序的开发。

ECMAScript 5 到 2009 年正式发布,随后在 2011 年进行了一些更新以符合 ISO/IEC 16262。

图片

JavaScript 无处不在(2006-2020)

JavaScript 的重生,又相继产生了大量框架和函数库的生态系统,以简化客户端和服务器端开发。

2006 年,jQuery 库让创建复杂的交互型网站变得更加容易。

Node.js 于 2009 年作为一种客户端开发技术第一次出现,它用于编写可扩展的 JavaScript Web应用程序。

一年后,Backbone 引入了单页应用程序的概念。

AngularJS 随后进一步提升了 JavaScript 的流行度,为开发者提供了前端架构。

2013 年,Knockout.js 凭借用于动态用户界面的 JavaScript 库进入市场。

同年, Vue.js 测试版本由作者尤雨溪发布。2014年2月正式发布并开源。

在过去5年中,JavaScript 技术栈列表的数量和范围一直在扩大。开发者可以根据目标应用程序选择特定框架或函数库。

值得一提的是,保持稳定的是全球JavaScripit 社区对相关工具的承诺,并在ECMA-262 ECMAScript® 2019语言规范的标准指导下推进。

JavaScript与光明的未来

jQuery 和 Node.js 等项目在展示 JavaScript 在客户端和服务器端的开发方面发挥了重要作用。

随着 WebAssembly 成为与其他语言互操作性的有前途的标准,JavaScript 现在比以往任何时候都有成为现代应用程序开发的绝佳基础。

它已经证明了自己,并且保持了其最初的目标,即以一种优雅的方式结合入门简单和功能强大。

毫无疑问,未来仍将如此。

27 岁生日快乐!JavaScript,你已走出婴儿期了!

附录:JavaScript 之历史沿革

我们总结从JavaScript诞生到现在的简要历程,也算辉煌壮丽。

1994-1998:Netscape 时代

  • 1994 年 12 月 15 日,Netscape Communications Corporation 发布了 Netscape Navigator 1.0 浏览器。

  • Brendan Eich 创建了 JavaScript 的第一个版本,代号为“Mocha”,后来(仍在内部)重命名为 LiveScript;

  • “Netscape 和 Sun 宣布推出 JavaScript,一种用于企业和Web的开放、跨平台的对象脚本语言”;

  • 微软在 Internet Explorer 中引入了 JScript 与 Netscape 竞争。

  • Netscape 2 与 JavaScript 1.0 一起发布;

  • Netscape 将 JavaScript 提交给 Ecma International,作为标准规范的起点;

  • 第一个 ECMAScript 语言规范的正式发布。


1999-2007:Internet Explorer VS Mozilla Firefox 的对决

  • Microsoft 发布了 Internet Explorer 5,它使用了更多的专有技术。

  • ECMAScript 2:编辑更改以使 ECMA-262 与标准 ISO/IEC 16262 保持一致

  • ECMAScript 3:支持 do-while、正则表达式、新的字符串方法(concat、match、replace、slice、用正则表达式拆分等)、异常处理等

  • 2001 年 4 月:JSON规范定义。一种基于 JavaScript 子集的轻量级数据交换格式

  • Firefox 浏览器发布,为了与 Internet Explorer 相竞争。

  • Jesse James Garrett 发布了一份白皮书,最重要的是他创造了 Ajax 一词。


2008-2012:Netscape 消亡,Google Chrome 诞生

  • Netscape Navigator生命周期正式终结

  • ECMAScript 4 正式被放弃。

  • Google 发布了 Chrome 浏览器,这是当时最快的Web浏览器。

  • Node.js 由 Ryan Dahl 创建出来;该项目是 JavaScript 的服务器端运行时环境,后来成为开发可扩展和复杂的 Web 和云应用程序的最重要平台之一。

  • ECMAScript 5(以前的 ECMAScript 3.1),添加了严格模式、getter 和 setter、新的数组方法、对 JSON 的支持等特性。

  • TypeScript:一种用于应用程序级 JavaScript 开发的语言发布


2013-2014:从 ASM.js 到 WebAssembly

  • ASM.js 发布

  • React,一个用于构建用户界面的 JavaScript 库

  • Firefox 23 中删除了“禁用 Javascript”选项

  • Facebook 推出 Flow,JavaScript 的静态类型检查器

  • Vue.js 正式发布


2015-2020:Node.js 崛起

  • Node.js 基金会成立

  • ECMAScript 6 (ES2015) 发布。

  • WebAssembly 技术推出

  • Object.observe 退出 TC39

  • Microsoft Edge 的 JavaScript 引擎将开源

  • ECMAScript 2016 语言规范发布

  • ECMAScript 2017 语言规范发布

  • ECMA TC39:“SmooshGate”通过将 flatten 重命名为 flat 正式解决

  • ECMAScript 2018 语言规范发布

  • 需要启e和 JavaScript 才能登录 Google

  • Node.js 中包含 ECMAScript 模块

  • ECMAScript 2019 语言规范

  • QuickJS JavaScript 引擎发布


2020-2022:Deno创建,Internet Explorer 浏览器正式退役

  • Deno:初始版本发布

  • ECMAScript 2020 语言规范发布

  • ECMAScript 2021 语言规范发布

  • Deno 加入 TC39

  • Internet Explorer 11 正式停服并终止技术支持


    编辑:洛逸

评论