BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google Chrome:展望与分析

| 作者 Geoffrey Wiseman 关注 0 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年10月6日. 估计阅读时间: 23 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

2008年9月1日Google发布了其新一代的开源浏览器——Google Chrome。所有人都认为Google发布的这个新一代的web浏览器将成为web角斗场上的一个主要竞争者,估计在一段时间内它都将成为大家关注、分析和预言的焦点。

早在官方宣布之前,网上就已经出现了不少小道消息,因为由Google创建的用来介绍Chrome的漫画早在官方发布前就透漏了关于Chrome的消息,同时它也早于美国太平洋时区9月2日发布Chrome的Windows beta版的时间。

InfoQ随即从社区、新闻媒体及博客中摘选出对它的展望与分析以便对Google Chrome的发布和影响进行全面的报道。

Chrome简介

Google通过一个漫画来介绍其浏览器,该漫画由Scott McCloud(著名的Making Comics的作者)绘制,这个漫画站点主要面向新闻记者和博主。该手稿由McCloud和开发者们自己(McCloud曾采访过他们)协作完成。该漫画说明了Google令Chrome区别于其竞争者的地方:集中于服务应用而不是内容、使用面向进程的方式以隔离独立的沙箱进程、使用简单的标签式界面、快速渲染以及javascript引擎和一个内建的私有浏览模式。

 

Chrome使用了标签、地址/导航栏和一个可选的工具条来简化界面。尽管在现代的web浏览器中简化的界面是很常见的一个特性,但Google相比于其竞争者来说却更进一步。正如Ars Technica所述

Google对Chrome的处理方式与众不同。他并没有移除现有web浏览器的特性,而是重新洗牌。忘记菜单分隔符吧;为什么还需要书签菜单呢?该死,为什么还有菜单条?开始时一无所有。什么都不用想。只添加需要的特性,并且只应用定义良好的概念。并不是说Chrome的所有特性都是好的,或者说这些特性加一起就将Safari打得体无完肤了。我们只是说现在除了Apple以外还有其他人能在该领域取得领导地位。Google Chrome使得Safari的用户界面看起来很保守了;这会让Apple感到无地自容。当谈到革新时,从长远来看全面大胆的改革要优于个别地方的修修补补。

Chrome简化的界面意味着无需从原来的内容中转移太多东西,这里的内容指的是与用户交互的web站点或者web应用。尤其对于web应用来说,Chrome的界面甚至没有导航栏和专用链接,这样窗口看起来就更像是一个应用程序而不是web浏览器。Chrome还带有Google Gears,其主要目的就是扩充web应用的能力,使其更像是桌面应用,比如说当用户与internet的连接断掉时它还能工作。

Google将标签放到了浏览器的最上面以示强调,并使得用户不仅可以在框架内拖动标签,还可以将其拖到外面以创建新窗口或者将标签从一个窗口移到另一个窗口上。这些标签彼此间是独立的,这样它们就更像是独立的应用,一个标签的崩溃不会影响到整个web浏览器。尽管对Chrome的漫画介绍谈到了独立进程,Chromium站点还是详细介绍了Chromium支持的4种进程模型及其优缺点:

对于该beta版,Chromium支持4种不同的进程模型用来实验和度量,这将帮助我们从中选择一个最适合大多数用户的默认模型。

默认情况下,Chromium对用户所访问的每个web站点实例都使用了一个独立的OS进程。然而当启动Chromium时用户可以通过命令行选项来选择其他的模型:Chromium可以对每个web站点使用一个进程、可以隔离每个连接标签组、还可以将所有东西都放到一个单独的进程中。这些模型的区别在于它们是否反映了内容的来源、浏览器的用户界面,或两者兼而有之。

关于进程和线程的话题每次都会引起争论,这次也不例外

Chrome还具有一个叫做Incognito的私有浏览模式,它可以使用户以只读会话方式浏览,这种模式下浏览历史不会被记录,同时当窗口关闭时还会将cookie删除。

技术与内核

Chrome浏览器是Chromium项目的成果,该项目将WebKit web浏览器引擎与新一代的Google V8 JavaScript引擎Skia矢量图引擎Google Gears结合在一起。

WebKit浏览器引擎起始于Apple的KDE项目的KHTML与KJS引擎,后来成为Safari浏览器的基础。WebKit随后被KDE重新采用。Google已经在其Android移动电话平台中使用了WebKit,并且它已经成为该平台事实上的解决方案。正如对Chrome的漫画介绍中所述:

它有效地使用内存,很容易被嵌入式设备所采用,并且新的浏览器开发者也很容易学习其代码。浏览器是复杂的。WebKit做得很好的一点就是它保持了简单的方式。

最初的Windows beta版所用的WebKit版本似乎是WebKit 525.13,这并不是其最新版本并且有一些安全问题(请看下面有关安全的内容)。一些用户发现Safari的WebKit渲染与Chrome的不同,包括反锯齿和阴影。这可能是由于使用了Skia图形引擎的原因。

关于与WebKit的集成问题,Chromium FAQ上说到:

Chromium源代码包含了WebKit源码的一份拷贝。根据发布的需要,我们常常会将快照映射到WebKit的树或者特定的分支上。

我们的目标是降低所维护的各个拷贝之间的差别以便更有效地参与WebKit社区同时平滑地进行定期更新。

V8 JavaScript引擎是开源的,位于Google Code上,它是为Chrome编写的,而并没有采用现有的JavaScript引擎。V8是用C++编写的,代码行数超过了100,000行,它可以独立运行,也可以嵌入到C++应用中。

创建V8最重要的原因就是为了性能。V8设计文档中说:“V8是...为快速执行大容量的JavaScript应用而设计的。”Chromium博客中有一篇关于V8的博文——“需要速度”中说:

Google Chrome的一个重要特性就是重新设计的全新JavaScript引擎——V8,其目的就是为了解决性能问题。特别是在我们想去掉一些Web应用使用JavaScript代码的数量和复杂度限制时,这种性能问题尤为重要。

V8声称进行了大量的性能改进和创新:使用隐藏类快速访问属性,动态机器码生成和高效的垃圾收集(标记—收集、分代收集、精确收集、压缩收集),小对象读取,彻底地多线程。V8团队是由Lars Bak领导的,Avi Bryant说Lars Bak是“Strongtalk和HotSpot Java VM的技术领导者,同时也是最初的Self VM的积极贡献者”,在其名下有大量VM相关的专利。

正如Matthieu Riou所指出的那样,在传统意义上V8并不是虚拟机,它并没有中间表示或者字节码。结果就是尽管你可以交叉编译为JavaScript,但你不能将你自己的语言编译为“V8字节码”。虽然有上述缺陷,Dave Griswold依旧相信V8可以作为其他动态语言的引擎:

我相信这些特性会令V8很快成为动态语言的主要虚拟机。它应该为Smalltalk建立一个平台。

FAQ指出Google Gears也迁移到了Chromimum项目中:

随着Gears成为Chromium的一个插件,我们拥有两份sqlite拷贝、两份V8拷贝。这也太蠢了吧。我们正在集成代码以便Gears可以在Chromium下顺利运行。我们打算在同一份代码外继续为其他浏览器构建Gears。

尽管Google Chrome支持如Flash和PDF这样的内容处理插件,但它现在并不支持浏览器扩展,不过该功能已在计划中了。

历史

Niall Kennedy记录了Google Chrome的历史。他首先讲述了Google对浏览器增强所起的推动作用:Google大量使用了Ajax并与Ian Hickson一起为HTML5及浏览器“acid”兼容性做出了巨大贡献,并进行了很多浏览器扩展如Google Gears、浏览器同步及安全浏览。接下来他还谈到了Google的Android项目及WebKit浏览器,Android上需要无线的、具有Skia矢量图库及GreenBorder安全沙箱的WebKit浏览器。最后他还提及了由Ben Goodger率领的Chrome团队及由Lars Bak率领的V8团队。

《连线》杂志的Steven Levy还在其文章“探秘Chrome:挑战IE并重建Web的秘密项目”中谈到了Chrome开发背后的故事,一直追溯到2001年:

“浏览器很重要”,CEO Eric Schmidt说到。他应该知道,因为他是90年代浏览器大战时期Sun的CTO。Google共同创始者Larry Page和Sergey Brin也很清楚这一点。Schmidt说,“当我在2001年加入Google时,Larry和Sergey就说我们应该创建我们自己的浏览器,但我拒绝了。”

Levy创建了最初的原型——V8团队,尽管有一些问题,但还是令人感到惊讶:

太难以置信了,Google浏览器竟然已经悄悄开发2年了。直到2007年中期(也就是该项目开发1年后),该团队才让Google其他组的成员看到他们所做的成果。在针对当前原型的特性的一系列技术讨论后(目的是为了在Google内部找到适合该团队的新人),人们的反应很强烈。在展示完各种特性如将一个标签拖到新窗口中后,人们不由自主地报以热烈的掌声。随着知道Chrome的人越来越多,其信息就流传到一些blog上了,但也只是一些零散信息而已。并没有人将它们整合到一起。Upson说,“我想这是因为关于Google浏览器的流传到处都是,它就像大脚的眼神或者尼斯湖海怪一样”。

开始:只限Windows、地毯式轰炸、私密性及最终用户许可协议

当漫画发布一天后,Google也就真的开始了,在其beta版发布前网上曾有一篇博文专门对其进行了描述。同时漫画本身也引起了人们的广泛关注。Josh Evnin不禁为漫画中对“实际的Google员工”的使用拍案叫绝,同时也很喜欢这种讲解技术主题的方式:

另外一个Google处理的比较好的地方就是在讲解技术时没有过于工程化。他们将内容简化为几个核心点,在读完该文档后我受到了启发。大多数技术文档都假定读者已经具备了基本的技能。Google通过一种几乎人人都能理解的方式来讲解其新技术,这样就扫平了障碍。而这正是其他开源项目欠缺的地方。技术文档并不是简单的文档,而是让阅读的人能身处其中。

该文档的质量给我留下了深深的印象。我将全部文档都读完了,这比我用过的任何软件的文档写的都好。谁能知道我竟然觉得多线程和多进程的区别很有意思?

Google Chrome目前只有Windows Beta版,不过其他平台版本也快了。Google提到了Mac与Linux版,但其发布日期尚未确定。人们都期盼着Chromium的Mac版,当Sergey Brin说缺少Mac版将是“尴尬的”时,新闻中就报道了该版本。Chrome的Mac版得益Mike Pinkerton的努力,他是该项目的领导者,Camino的主力开发者,同时也是从事于Google的Mac桌面产品开发的Google员工。

Amanda Walker注意到尽管Chrome团队拥有多名在特定操作系统上具有丰富经验的开发者,但他们仍然是同一个团队,每个人都向所有平台贡献代码。在当前的状态和过程下,Walker说:

现在,状态和过程都在“分块构建并通过了测试,但尚未生成Chromium应用。”当我们努力工作并追赶Windows版时,我们并没有为其何时完成设定日期——我们无法做出估计,同时我们也期望能从Windows beta版中学到一些东西。此外,既然项目已经发布,你每周都可以看到(或许还可以对其作出贡献)进度。当这些版本稳定后,我们就要发布官方beta版了,就像我们对Windows版所做的一样。我们尚不能给出一个明确的日期,不过一旦我们完成了就会通知大家。

如果你对接下来的LinuxMac OS X版的Chromium开发感兴趣,你可以登录Chromium开发站点来获取资源。

要不是提前泄漏了消息Chrome现在是不会发布的。Chrome很容易遭受到carpet-bombin缺陷攻击,该缺陷已在WebKit的后续版本中得到了修正,然后Google并没有集成该已修正版本。尽管Chrome还仅仅是beta版,但对其的漫画介绍依然鼓吹它设计上的安全性。

类似的,一些人认为Chrome在用户隐私上做的有些过分。当你输入地址时,omnibox(就是人们常说的地址栏)会给你提示,这样做的目的通常是将数据发送到已选的搜索引擎中,而该引擎默认就是Google。这使得一些人认为Chrome对隐私的保护比你想的还要差,尽管Google已经就获取的这些数据对人们的担忧做出了回应。

Matt Cutts采访了Google Chrome团队以了解Chrome何时会“向Google发送信息”,并总结到:

我知道当Google Chrome刚一发布一些读者就问了一些棘手的问题,这些问题是关于隐私及Google Chrome如何/何时会与google.com通信。因此我决定首先解决这些问题。我采访了Chrome团队以了解我们是否有必要担心。答案很简单——不需要。

尽管有这些保证,德国联邦信息安全局还是警告用户不要使用Chrome

Chrome的服务条款也引发了口水战,因为它暗示Google对通过Chrome浏览的所有内容拥有保留权。Google Chrome的高级产品律师Matt Cutts和Rebecca Ward认为该条款是个错误;9月3日周三已经对其进行了修正,争论终于平息了。

浏览器大战与其它动机

很多人都认为Chrome的发布标志着曾经在微软和Netscape/Mozilla(这些是主要竞争者,尽管每款浏览器都有其拥护者)之间爆发的浏览器大战又上演了。一些人已经不看好Chrome了,而另一些人则采取了观望的姿态。

很多人说Google并不想与其他浏览器竞争,而仅仅是想促进网络交付应用的发展,使其看起来与桌面应用差不多,这样一来就使操作系统隐居到了后台

特别地,喜欢这么说的人热衷于把微软放到对立面,这样人们就能看到两大巨人之间的争斗了。

其他浏览器:比较和影响

有些人认为Chrome仅仅是重新发明轮子。Georgios Kasselakis在OSNews上说Chrome的进程模型与IE8的没什么太大区别,它的标签与Opera的差不多,这是来自Opera用户的情感呼唤。

尽管V8声称根据基准它有非常快的速度,但其他浏览器制造商也做了类似的声明说改进了其产品的速度。

Mozilla的Firefox 3.1有TraceMonkey,它提供了速度改进,同时Brendan Eich也对其进行了一些测试

他认为在某些情况下及其它情况的“游戏”中TraceMonkey的速度已经超越了V8,但他说到:

V8很棒并且工程化良好,其速度还有提升的空间。(Chrome看起来很棒——其多进程架构很好,但你依然想从像我这样的老牌Unix黑客中得到赞扬)

大家需要认清的一点就是这场竞赛并不是最后的决赛,参加角逐的VM并不会遭到淘汰。我们认为Franz与Galstyle的追踪要比缺少攻势的投机方法具有更广阔的“空间”,这是由于其专注于代码的能力决定的,它可以在运行时让变量保持常量性,消除不会执行到的代码和条件,这基于大多数JavaScript程序中都会存在的隐式类型继承。如果我们说对了,我们就会在几周或者几个月后看到这一点,当然了你们也会看到的。

WebKit团队已经在开发名为Squirrelfish的新的JavaScript解释器了,此前InfoQ曾对其进行了报道。John Resig有一个详细的性能分析表,在该表中SquirrelFish似乎处于领先地位,至少有几处是领先的。

大家都认为关注JavaScript性能对最终用户来说是件好事,不管是谁构建的,只要用户能使用上更快的JavaScript引擎就好。很多人想知道新出现的另一个web浏览器会对市场上已有的浏览器产生何种影响。有些人觉得微软已经失利了,因为Internet Explorer的市场份额正不断减少。其他人则对Firefox表示出了担心,因为Internet Explorer和Safari已经预装在Windows和Mac OS X中了,很多用户就会一直使用他们而不会更换了,而Firefox和Chrome则要为更小的市场份额拼个你死我活。之前的一些数据有力地证实了这一点。Google说不断增加的关注会提醒人们可以对其使用的浏览器进行选择。就连Marc Andressen都觉得Chrome会让竞争愈演愈烈。

补充分析

尽管本篇新闻报道了关于Google Chrome的最常见的展望与分析,但还有一些关于Chrome及其影响的讨论值得我们关注:

我们在这方面进行的太早了,导致无法形成一个工具集。大多数定制绘图都是通过Skia库完成的,该库与Cairo不相上下,因为它画的是线和矩形而不是按钮和复选框。

很多人对工具集都有强烈的看法,导致分裂的部分原因在于这两个库都满足Chromium的需要。事实上,由于大部分Chromium仅仅是为显示web页面而进行的客户化渲染——就连HTML select控件的弹出都是由WebKit绘制的——我们希望工具集只出现在一些form控件的展示及各种对话框中如首选项及“另存为”对话框。

综上所述,我们打算使用GTK。这并不代表我们不喜欢Qt,仅仅是因为团队具有更多的GTK使用经验,并且它与Linux上现有的Firefox依赖相匹配。请保持冷静:-)

资源

由于上面已经列出了全部的链接、分析和展望,我将为那些对Google Chrome感兴趣并想进一步了解它的人提供一些常用资源:

查看英文原文:Google Chrome: Perspectives and Analysis

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

我看chrome by Zhang Xu

用了一阵子
感觉最明显的是速度快 清爽 简洁
但同时也有很多问题显的不是那么完美..
当chrome无响应的时候 重新启动的时候
之前正在下载的东西不会断点续传(也不知道是我还没发现...)
奥 顺便补充哦
在chrome中貌似不允许使用下载工具来独立下载(影响不大)

不过这一切似乎都毫不影响chrome的性能和强烈使用它的欲望

正在完美体验中... ...

我看好chrome

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT