slot deposit pulsa slot mahjong slot gacor slot gacor slot gacor resmi slot gacor 2025 slot gacor terpercaya slot gacor 2025 slot gacor hari ini slot gacor hari ini slot gacor hari ini
JavaScript 历史:从 Netscape 到框架之旅
17611538698
webmaster@21cto.com

JavaScript 历史:从 Netscape 到框架之旅

前端 0 2038 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 正式停服并终止技术支持


    编辑:洛逸

评论