Google 发布基于全新 JavaScript 引擎的开源浏览器

  • 霍泰稳

2008 年 9 月 3 日

话题:JavaSOA敏捷.NETRubyGoogle架构ChromeDevOps语言 & 开发文化 & 方法

最终,Google 还是进军了浏览器领域。9 月 3 日,Google 面向全球用户发布了其历经三年时间研发的浏览器——Google Chrome。此前,Google 一直对外否认其有开发浏览器的计划,而且就在不久前 Google 和 Mozilla 就对 Firefox 的支持签署了一份三年的合作协议。对于 Google 这一产品的推出,浏览器市场的格局将有什么样的变化,业界也是众说纷纭。有媒体表示,Chrome 的推出,受到威胁的其实不是一直视 Google 为最大竞争对手的微软所推出的 IE8,而是和 Google 一直良好合作关系的 Firefox

最担心 Google Chrome 的不会是微软。尽管多年来广受诟病,但微软在浏览器市场上的份额仍然超过了 70%。与 Windows 捆绑仍然是微软的最大优势。最担心 Google Chrome 的应当是 Mozilla。

Chrome 并非基于 Firefox,而是基于苹果的 WebKit 引擎。尽管 Safari 并没有获得巨大成功,但 WebKit 却向它提供了一大优势:速度。WebKit 和谷歌开发的 V8 java 脚本渲染引擎联手,理论上将使 Chrome 在速度上“百尺竿头,更进一步”。即使 Chrome 的功能达不到出色的水平,也将成为 Firefox 的强大竞争对手。

那么 Google 是如何考虑的,InfoQ 中文站编辑在今天早些时候采访了 Google 总部产品管理副总裁 Sundar Pichai,他首先介绍了 Google 推出 Chrome 浏览器的目的:

我们已经在这个项目上努力了三年,其中我们了解到,随着互联网的普及,越来越多的人将应用部署在网络上。而目前的浏览器因为各种原因,易用性和速度都不能满足我们的要求。Chrome 的推出就是为了解决这些不足之处,以更好地支持 Web 应用。

除此之外,对于更多人关注的相比于 IE 和 Firefox,Google Chrome 有哪些让人耳目一新的特点问题,Sundar 也从用户界面和技术内核等两个方面进行了分析:

开发团队一开始将主要精力放在内容而不是易用性方面,但是很快发现这违背了 Google 一贯的风格,于是我们及时调整了方向。在使用 Chrome 时,你可以发现许多细节上的改进,比如在地址栏里面就可以针对某个网站做搜索,通过视觉和文字两种不同形式提供的标签页等,也就是说你现在可以用更少的文字和点击来完成从前相同的工作。

但是这些简洁的背后是复杂的技术内核,我可以从速度、稳定性和安全性等三个方面来解释一下。在速度方面,Chrome 选择了 WebKit 渲染引擎来处理静态页面,而用全新的 JavaScript 引擎 V8 来处理动态页面;稳定性方面,Google 采用的是一个多进程的架构,这样每个进程就可以单独完成一个任务,互不影响,避免了从前支持多标签的浏览器“一个页面崩溃全部页面遭殃”的情况;对于大家都非常关心的安全性,Google 提供了一种称为“沙盒(Sandbox)”的机制,从前黑客破坏网站时只需攻击渲染引擎,而现在他还要有能力攻破沙盒,难度提高了一倍,另外 Google 还通过自动化的测试及时发现恶意软件和应用,防止“网络钓鱼”这样的破坏性网络行为。

正如 Sundar 所言,对于 Chrome 来说支撑其速度的一个重要技术就是 Google 自己设计的全新 JavaScript 引擎——V8。从 Google 中国研发团队成员现场所做的演示可以发现,同一个 3D 动画,基于 Chrome 要比基于 Firefox 运行流畅的多。目前 Google 已经将 V8 开源,开发人员可以从Google V8 JavaScript Engine页面浏览详情和下载源代码。

其实 Google Chrome 也是开源的,根据 Sundar 的解释,Chrome 开发团队在设计 Chrome 时就从 Firefox、Safari 等开源浏览器产品借鉴了许多,其中所用的渲染引擎 WebKit 此前就已经被用在 Safari 上。这次将 Chrome 开源,也是 Google 对开源社区的一次回报,也是希望能推动开源社区的健康发展。

在简洁性和安全性方面,Chrome 要较 IE 和 Firefox 有更为先进的设计,不过让更多使用者感到遗憾地方在于目前 Chrome 还没有提供很好的插件机制。Sundar 对这一问题没有给予正面回答,只是告诉 InfoQ 中文站编辑,对于常用的插件,Google 会尽可能自己提供类似的产品,以满足用户的需要。考虑到直到目前为止,很多银行系统对 Firefox 都没有给予很好的支持,Chrome 在对类似应用的支持上依然还有很长的路要走。另据 Google Chrome 中国研发团队透露,未来一段时间,谷歌会在 Chrome 的本地化方面加大投入。

JavaSOA敏捷.NETRubyGoogle架构ChromeDevOps语言 & 开发