JavaScript/ECMAScript的起源与浏览器之战

606 阅读4分钟

➤ JavaScript起源

随着互联网的发展及Netscape浏览器市场份额的高占有率,Netscape(网景通信公司,Netscape Communications Corporation)发现,浏览器需要一种可以嵌入网页的脚本语言,来让浏览器控制网页的行为。

当时的网速很慢,而网页却变得更大、更复杂。在浏览器上如果没有嵌入脚本语言,仅是验证表单字段是否有效就要与服务器进行多次交互,如果在与服务器交互多次后,话很多时间等待缓慢的网络数据传输,结果被告知某个字段不正确,会让人很痛苦。诸如此类的情况,让客户端脚本语言成为了亟需。

当时就职于Netscape的Brendan Eich(布兰登·艾克)开始着手为即将在1995年发布的Netscape Navigator 2.0开发一款称为LiveScript的脚本语言。因为当时Netscape和Sun为合作关系,且Sun公司的java语言发布后推广非常成功,为了搭上被媒体炒得火热的Java的顺风车,在发布前改名为JavaScript。

1995年12月Netscape和Sun联合发布JavaScript语言,并在发布后得到了快速的发展,大大提高了上网体验,成为web中的必要组件。Brendan Eich被称为JavaScript之父。

➤ 浏览器之战

1996年3月发布的Netscape Navigator 正式内置了javascript。同年,微软在Internet Explorer 3.0 中加入名为JScript的JavaScript实现(命名为JScript是为了避开与Netscape注册的JavaScript的相关授权问题),由于微软在其windows系统中自带IE浏览器,且免费使用(当时网景浏览器是收费的),使得IE3.0很快被用户所接受。

Internet Explorer 4.0的发布,IE在稳定上超过了网景浏览器,网景与微软在浏览器的竞争中逐渐处于下风,1999年网景浏览器市场份额被微软IE赶超。

1998年1月,在浏览器市场失利的情况下,网景开始开展Mozilla开源项目(即现在的Mozilla),网景寄望透过开放 Netscape Communicator 4.0 的源代码,使其成为有成就的开源计划。后来发布了FireFox浏览器,与IE竞争,继续促进浏览器的发展,直到2008年谷歌发布Chrome浏览器

经过十来年的竞争,Chrome在浏览器全球市场上取得了绝对领先的地位,直至现在市场占有率为62%左右,远远的超过了Safari、Edge、IE、FireFox、Opera、UC、Brave等浏览器。

浏览器市场占有率查看:

➤ ECMAScript标准化

1996年,微软JScript的发布,便出现了3个不通同的JavaScript的实现:NetScape Navigator 的JavaScript、IE的JScript和ScriptEase中的CEnvi,由于没有统一标准规定JavaScript的语法和特性,三个不同版本并存,肯定会存在兼容性问题。随着脚本语言的发展及业界的日益关注和担心,JavaScript的标准化问题便提上了议程。(也有说法是网景为了避免与微软在浏览器脚本语言主导权竞争中失利,而受制于微软,1996年11将Javascript提交给ECMA)。

1996年11月,ECMA(European Computer Manufacturers Association,欧洲计算机制造商委员会)基于NetScape的JavaScript和JScript的实现开始这脚本语言规范的制定,成立(指定)39号技术委员会(TC39,Technical Committee 39)来制定和审核JavaScript的标准,成员由业内各大公司(NetScape、微软、Sun、Borland及及其他关注脚本语言发展的公司)派出的程序员组成。该委员会定期开会,所有的会议记录、邮件讨论都是公开的。

1997年6月,ECMA发布262号标准文件(ECMA-262)第一版,也是ECMAScript 1。至于为什么不叫JavaScript,一方面由于商标,Java是Sun公司的商标,根据一份授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且被Netscape公司注册为商标;另一方面也是想体现这门语言的制定者是ECMA,不是Netscape,这样有利于保证这门语言的开放性和中立性。而JavaScript和JScript一样是ECMAScript作为标准的脚本语言的一个实现(后来还有ActionScript),只是有了标准后JScript、JavaScript更趋一致,名称的差别也就渐渐变得没必要,所以JavaScript这个名字被广泛接受。


参考: