「javascript」出生就遇浏览器大战,亲爹还不爱,命运坎坷的JavaScript终于苦尽甘来( 五 )


在Mozilla 基金会的手中 , Netscape Navigator开放了源代码 , 分两个分支:

  • 一个是Netscape Navigator , 相继推出了Netscape Navigator6、7、8;
  • 另一个便是Firefox , 一直维护至今;
无论是开源后的Netscape Navigator , 还是Firefox , 都是基于Gecko渲染引擎来构建的 。 关于这段故事 , 还有一部纪录片 , 叫《奔腾的代码》 , 主要讲述的就是Netscape Navigator的开源和Firefox(火狐浏览器)的诞生的故事 , 想要详细了解的同好可以去搜来看看 。
开源后的Firefox(火狐浏览器)重新开发了渲染引擎Gecko , 并且积极拥抱JavaScript标准 , 无论是在性能 , 还是用户体验上 , 都有了极大的提升;不仅是在Windows系统 , 在Linux系统、Mac系统 , 也都有着不俗的表现 , 甚至在Linux系统中 , 比Chrome浏览器的表现都要好 。
优异的性能 , 再加上在Mozilla 基金会的良好运作下 , 火狐浏览器逐渐了获得用户认可 , 原本被IE 浏览器占据的市场逐渐被火狐浏览器夺回 。
火狐浏览器
反观IE浏览器 , 并没有积极适配EcmaScript , 始终沉浸在自己的世界中 , 玩着只有自己的游戏 , 跟标准越走越远 , 渐渐被用户抛弃 , 原本的用户市场也被逐渐被涅槃后的火狐浏览器所取代 。
纵观浏览器发展历史 , 不得不说 , 历史总是惊人的相似 。
WebKit
得益于 KDE 的 KHTML 和 KJS , 苹果公司也开发了自家的JavaScript 引擎:Webkit渲染引擎 , 苹果公司不仅将Webkit渲染引擎开源免费, 而且还基于Webkit渲染引擎开发了 Safari 浏览器 。
Safari 浏览器
V8
谷歌于2008年12月发布了 Chrome 浏览器 ,与Safari 浏览器使用相同的 WebKit 渲染引擎和一个名为 V8引擎 。 V8使用C++开发 , 相比其它的JavaScript引擎转换成字节码或解释执行 , V8引擎会将JavaScript程序其编译成原生机器码 , 所以JavaScript程序在V8引擎下的运行速度足以媲美二进制程序 。
Chrome 浏览器
不久之后 , 谷歌便以 Chromium项目开放了Chrome浏览器的源码;新功能会率先在Chromium上实现 , 稳定后才会应用在Chrome上 。
JavaScript 标准化三个巨头三足鼎立
在微软进入浏览器市场 , 发布了JScript之后 , 有 3 种不同的 JavaScript 实现同时存在 , 分别是:
  1. Netscape Navigator 3中的 JavaScript;
  2. IE 中的 JScript ;
  3. CEnvi 中的 ScriptEase;
三个巨头三足鼎立 , 形成了三分天下之势 , 网景公司也面临丧失浏览器脚本语言的主导权的局面;而由此导致的版本不兼容问题日益加剧 , 当时的一个网页程序往往要对三个平台提供不同的实现 , 开发和维护的成本都越来越高;
ECMA出手拯救JavaScript
1996年11月 , 网景公司面对着逐渐被微软蚕食的浏览器市场 , 于是决定将 JavaScript 提交给国际标准化组织 ECMA(European Computer Manufacturers Association) , 希望 JavaScript 能够成为国际标准 , 以此抵抗微软 。
ECMA接受了这个请求 , 并决定由39号技术委员会(Technical Committee 39)负责制定和审核这个标准 , 委员会成员由业内各大公司派出的工程师组成 , 该委员会定期开会 , 所有的邮件讨论和会议记录 , 都是公开的 。
1997年7月 , ECMA 组织发布262号标准文件(即:ECMA-262)的第一版 , 规定了浏览器脚本语言JavaScript的标准 , 并该语言标准取名为 ECMAScript 。
之所以不叫 JavaScript , 一方面是由于商标的关系 , 因为Java 是 Sun 公司的商标 , 根据一份授权协议 , 只有 网景公司可以合法地使用 JavaScript 这个名字 , 且 JavaScript 已经被 网景公司注册为商标;另一方面是ECMA也想体现ECMAScript并不同于曾经的JavaScript , ECMA组织也不同于网景 , 这样就有利于保证这门语言的开放性和中立性 。