揭秘谷歌Chrome浏览器诞生历程:碾碎IE重塑网络的秘密项目
QQ反馈群:1065433015
图:Chrome开发团队成员,从左到右依次为马克·拉森(Mark Larson)、布莱恩·拉克乌斯基(Brian Rakowski)、达林·费舍尔(Darin Fisher)以及本·古杰( Ben Goodger)
布莱恩·拉克乌斯基(Brian Rakowski)是个瘦高而喜爱交际的人,20多岁的他是谷歌某个绝密计划的产品经理。这个计划已经进行了2年多。
拉克乌斯基在黑板上写了12个条目,并用记号笔标记。第一个条目是“发布状态”。8月下旬,发布的产品被称为Chrome,它是谷歌的首个网页浏览器。由于浏览器是网络活动的关键,我们的搜索、阅读、购买、银行、Facebook、聊天、视频观看、音乐欣赏等都离不开它。对于谷歌来说,这是个大动作,需要等到产品基本上已经开发成熟的时候才会公布。
这是一种明确的尝试,旨在加速计算机从桌面向云端转移,而谷歌在这方面占据优势。而这也是一项激进的举措,注定会让谷歌更直接地进入与微软竞争的十字路口,而微软早就把最具传奇色彩的Netscape Navigator浏览器碾为碎粉。
有关谷歌正开发浏览器的传闻早已有之,大多数人甚至已经不再谈论它了。但在座的各位都知道,相关谈论很快就重新出现。Chrome浏览器将在此次会议后的16天内发布,将“撼动”网络浏览器领域。事实证明,“发布状态”并不那么糟糕。在Release Build Minus One中,最理想的情况是,在公开测试之前的最后版本中,只有5个“阻塞”的漏洞,而所有这些都是拉克乌斯基及其团队认为可以解决的。
马克·拉森(Mark Larson)回忆说:“情况看起来不错!”“我们错过了什么?”时任谷歌产品管理副总裁的桑达尔·皮查伊(Sundar Pichai)问道:“我们错过了什么?”什么事让你夜不能寐?”帮助开发Chrome浏览器原型的工程师达林·费舍尔(Darin Fisher)说:“它不是Chrome。” 这让人感到很好笑,因为每个人都知道他在家里有个为期长达10周的假期。拉克乌斯基拿了一个红色的记号笔,并在“发布状态”下画了一个X。谷歌浏览器距离现实又近了一步。
为什么谷歌要开发浏览器?一个更好的问题是,为什么谷歌花了这么长时间才推出浏览器?毕竟,正如皮查伊所说:“我们的整个业务是人们使用浏览器来访问我们和网络。”谷歌前首席执行官埃里克·施密特(Eric Schmidt)曾说过:“浏览器很重要!” 他应该知道,因为在20世纪90年代的浏览器大战期间,他是Sun Microsystems公司的首席技术官。
谷歌联合创始人拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)也知道这一点。施密特曾说:“当我2001年加入谷歌时,拉里和谢尔盖立即说‘我们应该开发自己的浏览器。’但我否决了。”施密特对他们说,现在不是合适的时机。他说:“我不认为这家公司有足够的实力来进行一场浏览器战争。 更重要的是,我们的战略抱负相对不受关注。”
尽管如此,这个想法还是存在的,谣言也在蔓延。2004年,《纽约时报》的一篇文章引用了“一位对谷歌公司业务有详细了解的人”的说法,称谷歌浏览器正在开发中,施密特不得不公开否认这一说法。但在幕后,施密特与两位创始人之间一直存在着争论。
作为一种妥协,谷歌组建了一个团队,承担开源浏览器火狐的改进工作。这支团队曾分别由浏览器奇才本·古杰(Ben Goodger)和费舍尔领导。此外,谷歌团队还招募了37岁的工程师莱纳斯·厄普森(Linus Upson),他曾在NeXT工作过,后来成为工程总监。施密特说:“对于拉里和谢尔盖来说,这是非常聪明的举措。因为这些从事火狐浏览器扩展的人,当然也有能力开发出一款伟大的浏览器。”
果不其然,在2006年春天,火狐团队开始讨论设计一款新应用的问题。他们喜欢火狐,但他们发现当前所有浏览器都存在缺陷。当微软的IE浏览器和火狐浏览器核心代码库最初开始构想时,浏览就变得不那么复杂了。然而现在,以前只能在桌面端执行的功能,比如电子邮件、电子表格、数据库管理,现在在网络上也能处理了。
在即将到来的云计算时代,网络将不仅仅是一种提供内容的方式,它将是一个独立的平台。改造现有浏览器以适应这一概念的问题在于,它们已经开发出了一种附加扩展(工具栏、RSS阅读器等)的生态系统,这种生态系统将被激进的升级所破坏。费舍尔说:“作为火狐浏览器的开发者,你喜欢创新,但你总是担心它意味着下个版本的所有扩展都将被打破。的确,这就是事实。”
结论是显而易见的:只有通过构建自己的软件,谷歌才能将浏览器带入云计算时代,并可能引发一场自微软和Netscape以来几乎每个月一次升级的创新革命。
Chrome的亮点
谷歌想要一款针对云计算优化的浏览器,其设计强调的是简洁和速度。主要特点是:
速度 超快的JavaScript引擎为开发更先进的网络应用打开了大门。
导航 “omnibox”结合了搜索和地址栏,弹出的缩略图显示了你最常访问的目的地。
可用性 开源软件发布语言超过40种的只有Windows,而Mac和Linux版本都在努力中。
可靠性 标签在隔离状态下运行,因此如果一个系统崩溃,其他的不会受到影响。同样,你也可以通过拖拽标签来创建新的窗口。
隐私 浏览历史现在可以被搜索和编辑,隐身模式提供了私人上网服务。
他们脑海中有一个关键的东西变化,那就是所谓的多进程架构,当应用程序崩溃或冻结时,这一系统能帮助计算机继续运行。为什么不把这个想法扩展到浏览器,那样的话,如果有什么东西在标签中崩溃,其他的标签就不会被干扰了?同样,为什么不设置一些东西,这样你就可以拖动一个现有的标签来创建一个新窗口?
从零开始也有天然优势,你可以重新设计它,让它看起来更干净,运行得更快,这是谷歌公司的双重信条。2006年6月左右,古杰、费舍尔以及和另一位Mozillan前员工布莱恩·莱纳(Brian Ryner)开发出原型。他们的第一个重大决定是选择一个渲染引擎,一个将网页HTML代码处理成屏幕上出现的内容的软件。两个主要的开源选项是Gecko(火狐浏览器使用)和WebKit(苹果Safari浏览器使用)。
WebKit(已经被谷歌开发的Android移动操作系统所采用)速度更快,它的速度是Gecko的三倍。几周后,他们就有了一个简单的应用程序,可在Windows上运行着WebKit,即使网页崩溃了,它也会继续运行。古杰回忆说:“早些时候,我们的原型有一张小标签图,如果一个标签崩溃,你就会看到它。这是该产品的第一个特点。”
没过多久,布林和佩奇就偷偷摸摸的开始检查他们的浏览器。谷歌浏览器团队工程师帕姆·格林(Pam Greene)说:“我记得自己当时正坐在办公桌前,当时有一条填充蛇沿着它的后面跑着。谢尔盖正在练球,一边看着达林进行演示,一边抚摸蛇。”
没有人能确切地说出浏览器项目何时得到正式批准。皮查伊回忆说,在一次高管会议上,施密特似乎不再像他以前那样坚决反对。这位首席执行官表示,如果谷歌真的去做,那团队就必须开发出与IE和火狐截然不同的产品。此外,谷歌浏览器必须要快,而且必须是开源的。当然,这正是该团队的想法。
无论如何,到2006年秋天,非正式概念和正式项目之间的界限已经被打破。工程师布雷特·威尔逊(Brett Wilson)说:“某个周五开会时,就像宣布长达一个小时的通知那样。我们被告知‘管理层正在考虑开发我们自己的浏览器,你怎么看?’每个人都感到兴奋,同时也有些担忧。”令人担心是因为,他们清楚地知道,打造一款具有竞争力的浏览器是一项巨大的工程。
此外,由于该团队对火狐浏览器的依赖,这个群体也产生复杂的感受。火狐是源代码开放的象征,也是对微软统治地位的一种挑战。2006年10月加入该团队的工程师埃里克·凯(Erik Kay)表示:“令人担忧的是,人们会把此举解读为破坏火狐。”谷歌的浏览器会是100%开源,这一事实让谷歌员工们感到非常满足,谷歌的创新可能会进入到Mozilla代码库中。厄普森说:“我们真的希望让火狐以及其他开源浏览器取得成功。”
作为谷歌火狐浏览器努力的一部分,皮查伊始终与Mozilla的负责人米歇尔·贝克(Mitchell Baker)保持联系,在某个时候,他告诉了她谷歌的项目。贝克现在表示,对于Mozilla和火狐来说,谷歌浏览器让它们感到喜忧参半。她认为,这个努力证明了Mozilla的信念,即浏览器的选择是至关重要的。她说:“如果谷歌提出了一些好的新想法,那对用户来说真的很好。竞争刺激我们去开发最好的东西。”但她也明白,她的许多用户将会下载谷歌的应用程序。她表示:“我们希望人们会尝试,然后坚持使用。“Mozilla之所以存在,是因为独立性非常重要。”
图:为了介绍Chrome及其开发团队,谷歌请知名艺术家斯科特·麦克劳德(Scott McCloud)创作了一本32页的漫画(在线版),描述了浏览器开发两年的历程及其特殊功能。
还有一个问题是如何为该产品命名。在考虑了一些荒谬的代号,这个项目借用了一个名字,即用来描述框架、工具栏和浏览器窗口菜单的词汇:chrome。
招聘再一次成了关键。由于Chrome的优化是为了运行Web应用程序,因此,一个关键的元素将是JavaScript引擎,即运行Web应用程序代码的“虚拟机”。开发这个程序的理想人才是一位名叫拉尔斯·巴克(Lars Bak)的丹麦计算机科学家。2006年9月,在经历了20多年不间断的人工虚拟机设计后,巴克计划前往农场休息一段时间。然后谷歌打来电话。巴克成立了一个小团队,最初是在农场工作的,后来搬到了当地大学的办公室中。
他明白,他的任务是提供比以往任何一款浏览器都快的引擎。他称自己的团队为谷歌浏览器项目的“v8”部分。巴克说:“我们决定要把JavaScript的速度提高10倍,我们给自己4个月的时间来完成它。”丹麦团队的典型工作日是从早上7点到8点开始上班,他们的编程会持续到晚上6点或7点。唯一的休息时间是午餐,他们会在五分钟内狼吞虎咽地吃下食物,然后在游戏机上玩20分钟。
巴克说:“我们在Wii Tennis上的表现很好。”他们也很擅长编写一个JavaScript引擎。在发布会前几周,巴克说:“我们今天只是做了一些基准测试。” 实际上,V8的JavaScript处理速度比Firefox或Safari快10倍。在同样的基准测试中,微软的IE 7表现如何?速度快了56倍。巴克说:“我们有点低估了我们可以做的事情。”
速度可能是Chrome最重要的优势。当你以数量级的方法来改进事物时,即使你并没有做得更好,但你已经创造了一些新的东西。巴克说:“一旦开发者们对这种速度有了兴趣,他们就会开始开发更多令人惊叹的新网络应用,并在开发过程中发现更多创意。”谷歌希望开启新一代基于网络的应用程序,这将真正使微软的噩梦变成现实:浏览器将成为类似操作系统的应用。
谷歌还引入了增援来实施多流程架构,允许每个打开的标签都能像独立的程序那样运行。2007年5月,谷歌收购了GreenBorder Technologies,这家软件安全公司的技术旨在将IE和火狐浏览器的活动隔离到虚拟会话中,或“沙盒”中,那样恶意软件入侵就不会干扰你电脑上的其他活动或数据。当交易被公开宣布时,科技专家们想知道,这是否意味着谷歌要进军杀毒业务领域。只有在收购完成后,GreenBorder Technologies的工程师们才知道,他们的工作是为新浏览器标签构建沙盒。
GreenBorder Technologies雇员卡洛斯·皮扎诺(Carlos Pizano)表示:“这令人感到困惑,他们没说自己想要什么样的沙盒。”这个团队不断发展壮大,但在这个过程中,从未陷入官僚主义的泥潭。在这个项目的早期阶段,团队成员都在谷歌咖啡馆里一起吃午饭。但是很快,就连最大的桌子也容纳不了他们。在开源精神的支持下,每一位工程师都可以自由地查看任何代码,并对其进行调整或改进。拉克乌斯基总是试图让事情保持在明处,有时候甚至会给最好的“捕虫者(找到漏洞的人)”颁奖。
随着产品的管道系统就位,开发团队开始专注于用户界面。从一开始,Chrome团队就希望其视觉效果保持低调,人们甚至不会认为自己在使用浏览器。这个咒语变成了“内容,而不是Chrome”,鉴于浏览器的名字,这显得有点儿奇怪。(马克·拉尔森说:“我们学会了在讽刺中生活。”)
最清晰的表达方式是,当你把包含类似Gmail的网页应用程序拖到它自己的单独的窗口,并指定你想要一个“应用程序快捷方式”的时候,标签、按钮和地址栏就会消失,而网页应用看起来就像是一个桌面应用程序。欢迎来到云时代。Chrome的任何标签页都可以被拖出来,以开启一个新的窗口。
在决定要包括哪些按钮和功能时,团队首先要做的是消除一切,然后找出恢复的方法。后退按钮?毫无疑问。前进按钮?虽然不那么重要,但它还是留了下来。但如果你是浏览器状态栏(告诉你加载内容百分比)的超级粉丝,你就不太走运了。然后是书签栏。起初,工程师们认为他们可以杀死它。
Chrome引入了几种新的导航方法,其中一种是浏览器在不需要打字的情况下显示出你想要去的地方。当你输入某些东西时,你就会使用“omnibox”,即地址栏和搜索框的组合:只要告诉它你在想什么,它就会提供一个网址、搜索结果或者是符合你查询的热门目的地。这是“我觉得很幸运”的膨体版。不过,用户测试显示,有些人喜欢通过点击书签栏来导航。妥协:如果用户之前在IE或火狐浏览器中设置了这个栏,Chrome就会导入设置。否则,用户就不会有书签栏了,除非他们选择。
令人难以置信的是,像谷歌浏览器这样具有颠覆性的东西,在过去的两年里一直处于保密状态。直到2007年中期,这个项目进行了一年左右时间时,团队才让外部员工看到他们在做什么。在一系列以当前原型为主题的Tech Talks中(在某种程度上,这是为不断增长的团队进行内部招募的一种方式),人们的反应就像火山爆发。当演示各种功能,比如把一个标签拖到一个新窗口,谷歌的员工们自发地热烈鼓掌。
随着越来越多的人知道Chrome浏览器,不可避免的事情发生了——消息被泄露到博客上,但这些都是零散的东西。没有记者把这一切组合起来。厄普森说:“我认为这是因为关于谷歌浏览器的传言已经存在了很长时间了,这就像看到了大脚怪或尼斯湖水怪。”在发布前夕,皮查伊分享了他对Chrome的一些雄心。有多少人会使用它?他说:“数以亿计的人。我想让我妈妈来使用它,我想让我爸爸用它。”
谷歌的认可并不能保证成功,但皮查伊相信,即使Chrome没有在市场上占有巨大的份额,它的创新也会改善环境。他说:“如果网络变得更好,我们会直接受益。”随着发布的临近,该团队刚刚搬进了谷歌园区新装修的大楼,在最大的会议室里,又有了一场全体会议。所有人都站在房间里,可以喝牛奶、吃饼干。在经过初步介绍后,拉克乌斯基将话语权交给古杰。
这位邋遢的工程师谈到了让Chrome成为开源产品的好处——代码将被公开发布,一个社区将会出现以决定浏览器的演变。他说:“我们将能够扩大我们的测试工作,它能让人们做一些我们从未想过的事情。它会让我们相信,我们不会做邪恶的事情。”随着会议的结束,能量水平已经超过了巅峰,而这不仅仅是因为加入了大量的糖。Chrome团队即将推出谷歌注定要创造的产品。不过,首先,有5个漏洞需要解决。
(英文来源/wired,编译/机器小易,校对/小小)