随着网络技术的发展,浏览器所担任的角色在不断改变。最初仅仅是作为人们浏览网页、在线交流的平台,现在随着富互联网应用(Rich Internet Application,RIA)概念的提出,人们发现很多以前只有在本地应用实现的效果现在也可以在浏览器中体验了。在这一方面微软和Adobe公司都已经先行一步,各自推出了下一代Web平台,而靠互联网起家的谷歌自然不会任由他人在自己的地盘上“撒野”。
结盟MySpace暴露谷歌野心
一年前Google发布了Gears,在这一年中它一直被看作一个辅助性的小工具,可以被一些开发者和用户利用来实现离线访问Web应用。但是我们可能经常听到这种声音:“谁需要离线访问功能?现在人们已经可以随时随地连接到互联网上,所以没有足够的应用来支持Gears”,诸如此类等等。
不过一年之后当MySpace宣布将使用Gears来加速其消息系统的时候,我们不得不重新认识以前被人们低估的Gears,原来它竟然是谷歌的一张王牌。在人们不注意间谷歌已经花了一年的时间来悄然开始为提供一个新的Web应用程序编程接口(API)而加速。
MySpace集成Gears
未来的浏览器有可能变为一个可以容纳所有应用程序的虚拟机之类的东西。在这种情况下,操作系统对用户来说将被透明化,因此微软需要保护自己利益的这个源头,Adobe公司也是如此,后者目前通过Flash为用户提供最通用和稳定的web虚拟机。关于与微软之间的竞争,谷歌并不保密,而且它们也知道打击微软最好的办法就是让应用程序不再受操作系统的束缚,方法之一就是把浏览器变为应用程序的一个标准、强大的虚拟机。
在一篇文章中我们很难说清楚Gears如何改变和加速一个Web应用程序的功能。MySpace中的一些功能使用基于浏览器的Javascript技术来实现,诸如列举和分类邮件,或者,过滤某些朋友的邮件,让用户感觉速度非常慢,当你的浏览器同时作几个类似的请求的时候,你可能会感觉任务加载条似乎停止了一样。而通过快速安装gears,当你点击了确认按钮后,只需要一两秒的加载时间,此前几乎让用户急疯的功能现在让人感觉它是浏览器本身的一部分。
通过Myspace对Gears的集成,谷歌向人们展示了Gears的真正意图:它不再仅仅是用来离线浏览,而是直接指向Adobe和微软的一个矛头。
反击微软、Adobe 谷歌选择智取
谷歌目前基于Web的应用大约有28个左右,它们正在被全世界数百万人使用。在谷歌的这些Web应用程序中所使用的技术一直是基于标准的HTML、CSS和Javascript,支持标准这一点也一直被谷歌用来攻击微软。选择Ajax的原因是因为它是目前最好的解决方案,同时不无关系的是,其它替代Web开发技术组合都是竞争对手开发和控制的。谷歌选择了大力支持开源Firefox浏览器的开发,以及支持开放Web标准,以此作为它们的技术组合选择。谷歌这么做的原因是因为它们的web应用还要依靠它,如果Firefox不够强大的话,IE的复兴就难以阻挡,Web的控制权势必重新被微软所掌握,这显然是谷歌所不希望看到的。
在以前谷歌认为使用基于浏览器的Javascript加速Web应用应该不存在什么问题,但是现在竞争对手已经向前发展了一步,分别以Flex/AIR和Silverlight的形式发布了它们各自第二代web平台。在利用基于Web的应用方面,微软和Adobe已经比谷歌提前向未来迈进了一大步,它们的Web应用已经具有了类似桌面应用程序的界面和功能。用不了多长时间,谷歌的竞争对手和其它就会利用它们极具竞争力的平台创建出具有竞争力的应用软件,很明显和它们相比,谷歌的应用软件还停留在90年代。
Google面临的选择非常明确:要么放弃基于浏览器的Javascript和标准化开发,并开始使用一种新技术;要么坚持不变,推动核心Web技术向前发展到一个适合它们的环境。对于谷歌来说一个问题是,尽管有了新的标准和不久将引入富互联网技术的新浏览器,但是开发这些标准的进度非常缓慢,要想看到它们被广泛的采用可能还需要数年的时间,显然谷歌等不及。新的HTML标准HTML5专门用来扩展本地浏览器中的Web应用的功能,而无需增加一个专有的runtime。这些相同的功能和其它插件组成新的Google Web API的基础。
考虑到标准开发的缓慢进度会阻挡谷歌的发展之路,它决定通过Gears来自己实现这一点。其思路非常简单:把未来的web技术提前应用到今天的浏览器中。它的细节功能多数来自于标准化组织已经花费了数年研究的新的HTML5规范。与其坐等这些新功能被标准化组织实现,谷歌不如通过一个插件先来实现它们。为了对抗Flash和Silverlight,将自己的Web应用升级到具有丰富用户体验的下一代标准,谷歌不惜在短期内牺牲标准化。
Gears是由谷歌一个大约包含30人的团队开发实现的。有意思的是这个团队的领导者是Vic Gundotra,他在来谷歌之前曾担任微软平台开发的负责人。这个开发团队从一开始保留了谷歌对Javascript和开源浏览器虚拟机的兴趣。从理论上来说,无论是在人员规模还是投资预算,这个小开发团队都无法与微软和Adobe在各自平台上的投入相比。为了帮助推动这个计划,谷歌在开源许可下公布了Gears代码,以借助于开源社区的广泛支持。
它的第一版主要集中实现HTML5中提议的一些最重要的功能:基于客户端的结构化对象存储。由于Gears首先选择实现的是客户端存储,Gears被认为是一个离线应用解决方案,不管谷歌这样做是否是故意为之,最终的结果是其竞争对手并没有注意到它的更大的目标。目前在很多博客上有这样一个消息,谷歌可能已经开发和发布了它自己的浏览器。我想谷歌未必会选择走这条路,因为浏览器市场的竞争极大,除此之外,即使在它自己开发出这样一个浏览器后,它还将不得不等待市场主流全体来接受。而且还有一些人虽然不希望使用新浏览器但却依然希望使用谷歌的应用软件。
谷歌选择的捷径是跳过浏览器,在其上增加了一个新层-谷歌Web层。所有常用浏览器都为开发者提供了可以扩展功能的接口,因此谷歌需要做的就是为每一个浏览器开发一个插件。这样谷歌就无需让用户更换浏览器就可以使其新的web API应用中所有计算机上,这种方式比自己进入浏览器市场要快的多,也更轻松。这样浏览器将会来处理那些无聊的事情:展现HTML、显示用户界面、设置用户选项等等,而谷歌则可以专注于向前发展更高级的功能。
成败需要时间证明
现在Gears已经支持很多新的功能,其中有些与来自微软和Adobe的下一代Web API是类似的,而有些则是谷歌自己创新的成果。开发者可以调用的功能包括后台进程、客户端图像处理、场所感知、更好的文件上传功能和浏览器内的本地数据库支持等。
一个新的API和开发平台要想被接纳需要进行两方面的努力:一方面是用户支持,在此要求用户安装一个插件;另一方面是开发者的支持,开发者会认为Gears使用起来非常简单,因为这与使用其它基于浏览器的Javascript没有什么区别,它只是让开发者可以在浏览器中实现更多的功能。Javascript和Web开发者不需要学习新的东西,而用户只需要安装一个插件。Adobe的Flash花了5、6年的时间才变得非常通用,才让开发者对其非常信任。而Gears在谷歌的支持下或许只需花费少于Flash一半的时间就能被认可。
在这次平台之争中谷歌不会失去什么,相反会收获不少,通过简单的方式就具有了一个基于标准的开源替代Web API。和其它竞争对手不同的是,谷歌没有兴趣控制这个平台,也不希望从这个平台中直接获得收益。他们只是希望能维持现在的格局:大部分程序使用浏览器里的Javascript开发,如果有更多需求才会去考虑Flash或者其它替代技术。
自从上次平台之争后已经过去了很长时间,不过每次经历过这样一次技术之争后,我们都会看到一些大公司的衰落和小公司的崛起。再联系到开源的发展,我们可以发现没有一家公司能独霸天下。对于这次新的平台之争,我们可以肯定的是它是一场持久战。或许只有时间会证明谷歌这次推动Web向前发展的方法是否会成功。