隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,瀏覽器所擔(dān)任的角色在不斷改變。最初僅僅是作為人們?yōu)g覽網(wǎng)頁(yè)、在線交流的平臺(tái),現(xiàn)在隨著富互聯(lián)網(wǎng)應(yīng)用(Rich Internet Application,RIA)概念的提出,人們發(fā)現(xiàn)很多以前只有在本地應(yīng)用實(shí)現(xiàn)的效果現(xiàn)在也可以在瀏覽器中體驗(yàn)了。在這一方面微軟和Adobe公司都已經(jīng)先行一步,各自推出了下一代Web平臺(tái),而靠互聯(lián)網(wǎng)起家的谷歌自然不會(huì)任由他人在自己的地盤上“撒野”。
結(jié)盟MySpace暴露谷歌野心
一年前Google發(fā)布了Gears,在這一年中它一直被看作一個(gè)輔助性的小工具,可以被一些開(kāi)發(fā)者和用戶利用來(lái)實(shí)現(xiàn)離線訪問(wèn)Web應(yīng)用。但是我們可能經(jīng)常聽(tīng)到這種聲音:“誰(shuí)需要離線訪問(wèn)功能?現(xiàn)在人們已經(jīng)可以隨時(shí)隨地連接到互聯(lián)網(wǎng)上,所以沒(méi)有足夠的應(yīng)用來(lái)支持Gears”,諸如此類等等。
不過(guò)一年之后當(dāng)MySpace宣布將使用Gears來(lái)加速其消息系統(tǒng)的時(shí)候,我們不得不重新認(rèn)識(shí)以前被人們低估的Gears,原來(lái)它竟然是谷歌的一張王牌。在人們不注意間谷歌已經(jīng)花了一年的時(shí)間來(lái)悄然開(kāi)始為提供一個(gè)新的Web應(yīng)用程序編程接口(API)而加速。
MySpace集成Gears
未來(lái)的瀏覽器有可能變?yōu)橐粋€(gè)可以容納所有應(yīng)用程序的虛擬機(jī)之類的東西。在這種情況下,操作系統(tǒng)對(duì)用戶來(lái)說(shuō)將被透明化,因此微軟需要保護(hù)自己利益的這個(gè)源頭,Adobe公司也是如此,后者目前通過(guò)Flash為用戶提供最通用和穩(wěn)定的web虛擬機(jī)。關(guān)于與微軟之間的競(jìng)爭(zhēng),谷歌并不保密,而且它們也知道打擊微軟最好的辦法就是讓應(yīng)用程序不再受操作系統(tǒng)的束縛,方法之一就是把瀏覽器變?yōu)閼?yīng)用程序的一個(gè)標(biāo)準(zhǔn)、強(qiáng)大的虛擬機(jī)。
在一篇文章中我們很難說(shuō)清楚Gears如何改變和加速一個(gè)Web應(yīng)用程序的功能。MySpace中的一些功能使用基于瀏覽器的Javascript技術(shù)來(lái)實(shí)現(xiàn),諸如列舉和分類郵件,或者,過(guò)濾某些朋友的郵件,讓用戶感覺(jué)速度非常慢,當(dāng)你的瀏覽器同時(shí)作幾個(gè)類似的請(qǐng)求的時(shí)候,你可能會(huì)感覺(jué)任務(wù)加載條似乎停止了一樣。而通過(guò)快速安裝gears,當(dāng)你點(diǎn)擊了確認(rèn)按鈕后,只需要一兩秒的加載時(shí)間,此前幾乎讓用戶急瘋的功能現(xiàn)在讓人感覺(jué)它是瀏覽器本身的一部分。
通過(guò)Myspace對(duì)Gears的集成,谷歌向人們展示了Gears的真正意圖:它不再僅僅是用來(lái)離線瀏覽,而是直接指向Adobe和微軟的一個(gè)矛頭。
反擊微軟、Adobe 谷歌選擇智取
谷歌目前基于Web的應(yīng)用大約有28個(gè)左右,它們正在被全世界數(shù)百萬(wàn)人使用。在谷歌的這些Web應(yīng)用程序中所使用的技術(shù)一直是基于標(biāo)準(zhǔn)的HTML、CSS和Javascript,支持標(biāo)準(zhǔn)這一點(diǎn)也一直被谷歌用來(lái)攻擊微軟。選擇Ajax的原因是因?yàn)樗悄壳白詈玫慕鉀Q方案,同時(shí)不無(wú)關(guān)系的是,其它替代Web開(kāi)發(fā)技術(shù)組合都是競(jìng)爭(zhēng)對(duì)手開(kāi)發(fā)和控制的。谷歌選擇了大力支持開(kāi)源Firefox瀏覽器的開(kāi)發(fā),以及支持開(kāi)放Web標(biāo)準(zhǔn),以此作為它們的技術(shù)組合選擇。谷歌這么做的原因是因?yàn)樗鼈兊膚eb應(yīng)用還要依靠它,如果Firefox不夠強(qiáng)大的話,IE的復(fù)興就難以阻擋,Web的控制權(quán)勢(shì)必重新被微軟所掌握,這顯然是谷歌所不希望看到的。
在以前谷歌認(rèn)為使用基于瀏覽器的Javascript加速Web應(yīng)用應(yīng)該不存在什么問(wèn)題,但是現(xiàn)在競(jìng)爭(zhēng)對(duì)手已經(jīng)向前發(fā)展了一步,分別以Flex/AIR和Silverlight的形式發(fā)布了它們各自第二代web平臺(tái)。在利用基于Web的應(yīng)用方面,微軟和Adobe已經(jīng)比谷歌提前向未來(lái)邁進(jìn)了一大步,它們的Web應(yīng)用已經(jīng)具有了類似桌面應(yīng)用程序的界面和功能。用不了多長(zhǎng)時(shí)間,谷歌的競(jìng)爭(zhēng)對(duì)手和其它就會(huì)利用它們極具競(jìng)爭(zhēng)力的平臺(tái)創(chuàng)建出具有競(jìng)爭(zhēng)力的應(yīng)用軟件,很明顯和它們相比,谷歌的應(yīng)用軟件還停留在90年代。
Google面臨的選擇非常明確:要么放棄基于瀏覽器的Javascript和標(biāo)準(zhǔn)化開(kāi)發(fā),并開(kāi)始使用一種新技術(shù);要么堅(jiān)持不變,推動(dòng)核心Web技術(shù)向前發(fā)展到一個(gè)適合它們的環(huán)境。對(duì)于谷歌來(lái)說(shuō)一個(gè)問(wèn)題是,盡管有了新的標(biāo)準(zhǔn)和不久將引入富互聯(lián)網(wǎng)技術(shù)的新瀏覽器,但是開(kāi)發(fā)這些標(biāo)準(zhǔn)的進(jìn)度非常緩慢,要想看到它們被廣泛的采用可能還需要數(shù)年的時(shí)間,顯然谷歌等不及。新的HTML標(biāo)準(zhǔn)HTML5專門用來(lái)擴(kuò)展本地瀏覽器中的Web應(yīng)用的功能,而無(wú)需增加一個(gè)專有的runtime。這些相同的功能和其它插件組成新的Google Web API的基礎(chǔ)。
考慮到標(biāo)準(zhǔn)開(kāi)發(fā)的緩慢進(jìn)度會(huì)阻擋谷歌的發(fā)展之路,它決定通過(guò)Gears來(lái)自己實(shí)現(xiàn)這一點(diǎn)。其思路非常簡(jiǎn)單:把未來(lái)的web技術(shù)提前應(yīng)用到今天的瀏覽器中。它的細(xì)節(jié)功能多數(shù)來(lái)自于標(biāo)準(zhǔn)化組織已經(jīng)花費(fèi)了數(shù)年研究的新的HTML5規(guī)范。與其坐等這些新功能被標(biāo)準(zhǔn)化組織實(shí)現(xiàn),谷歌不如通過(guò)一個(gè)插件先來(lái)實(shí)現(xiàn)它們。為了對(duì)抗Flash和Silverlight,將自己的Web應(yīng)用升級(jí)到具有豐富用戶體驗(yàn)的下一代標(biāo)準(zhǔn),谷歌不惜在短期內(nèi)犧牲標(biāo)準(zhǔn)化。
Gears是由谷歌一個(gè)大約包含30人的團(tuán)隊(duì)開(kāi)發(fā)實(shí)現(xiàn)的。有意思的是這個(gè)團(tuán)隊(duì)的領(lǐng)導(dǎo)者是Vic Gundotra,他在來(lái)谷歌之前曾擔(dān)任微軟平臺(tái)開(kāi)發(fā)的負(fù)責(zé)人。這個(gè)開(kāi)發(fā)團(tuán)隊(duì)從一開(kāi)始保留了谷歌對(duì)Javascript和開(kāi)源瀏覽器虛擬機(jī)的興趣。從理論上來(lái)說(shuō),無(wú)論是在人員規(guī)模還是投資預(yù)算,這個(gè)小開(kāi)發(fā)團(tuán)隊(duì)都無(wú)法與微軟和Adobe在各自平臺(tái)上的投入相比。為了幫助推動(dòng)這個(gè)計(jì)劃,谷歌在開(kāi)源許可下公布了Gears代碼,以借助于開(kāi)源社區(qū)的廣泛支持。
它的第一版主要集中實(shí)現(xiàn)HTML5中提議的一些最重要的功能:基于客戶端的結(jié)構(gòu)化對(duì)象存儲(chǔ)。由于Gears首先選擇實(shí)現(xiàn)的是客戶端存儲(chǔ),Gears被認(rèn)為是一個(gè)離線應(yīng)用解決方案,不管谷歌這樣做是否是故意為之,最終的結(jié)果是其競(jìng)爭(zhēng)對(duì)手并沒(méi)有注意到它的更大的目標(biāo)。目前在很多博客上有這樣一個(gè)消息,谷歌可能已經(jīng)開(kāi)發(fā)和發(fā)布了它自己的瀏覽器。我想谷歌未必會(huì)選擇走這條路,因?yàn)闉g覽器市場(chǎng)的競(jìng)爭(zhēng)極大,除此之外,即使在它自己開(kāi)發(fā)出這樣一個(gè)瀏覽器后,它還將不得不等待市場(chǎng)主流全體來(lái)接受。而且還有一些人雖然不希望使用新瀏覽器但卻依然希望使用谷歌的應(yīng)用軟件。
谷歌選擇的捷徑是跳過(guò)瀏覽器,在其上增加了一個(gè)新層-谷歌Web層。所有常用瀏覽器都為開(kāi)發(fā)者提供了可以擴(kuò)展功能的接口,因此谷歌需要做的就是為每一個(gè)瀏覽器開(kāi)發(fā)一個(gè)插件。這樣谷歌就無(wú)需讓用戶更換瀏覽器就可以使其新的web API應(yīng)用中所有計(jì)算機(jī)上,這種方式比自己進(jìn)入瀏覽器市場(chǎng)要快的多,也更輕松。這樣瀏覽器將會(huì)來(lái)處理那些無(wú)聊的事情:展現(xiàn)HTML、顯示用戶界面、設(shè)置用戶選項(xiàng)等等,而谷歌則可以專注于向前發(fā)展更高級(jí)的功能。
成敗需要時(shí)間證明
現(xiàn)在Gears已經(jīng)支持很多新的功能,其中有些與來(lái)自微軟和Adobe的下一代Web API是類似的,而有些則是谷歌自己創(chuàng)新的成果。開(kāi)發(fā)者可以調(diào)用的功能包括后臺(tái)進(jìn)程、客戶端圖像處理、場(chǎng)所感知、更好的文件上傳功能和瀏覽器內(nèi)的本地?cái)?shù)據(jù)庫(kù)支持等。
一個(gè)新的API和開(kāi)發(fā)平臺(tái)要想被接納需要進(jìn)行兩方面的努力:一方面是用戶支持,在此要求用戶安裝一個(gè)插件;另一方面是開(kāi)發(fā)者的支持,開(kāi)發(fā)者會(huì)認(rèn)為Gears使用起來(lái)非常簡(jiǎn)單,因?yàn)檫@與使用其它基于瀏覽器的Javascript沒(méi)有什么區(qū)別,它只是讓開(kāi)發(fā)者可以在瀏覽器中實(shí)現(xiàn)更多的功能。Javascript和Web開(kāi)發(fā)者不需要學(xué)習(xí)新的東西,而用戶只需要安裝一個(gè)插件。Adobe的Flash花了5、6年的時(shí)間才變得非常通用,才讓開(kāi)發(fā)者對(duì)其非常信任。而Gears在谷歌的支持下或許只需花費(fèi)少于Flash一半的時(shí)間就能被認(rèn)可。
在這次平臺(tái)之爭(zhēng)中谷歌不會(huì)失去什么,相反會(huì)收獲不少,通過(guò)簡(jiǎn)單的方式就具有了一個(gè)基于標(biāo)準(zhǔn)的開(kāi)源替代Web API。和其它競(jìng)爭(zhēng)對(duì)手不同的是,谷歌沒(méi)有興趣控制這個(gè)平臺(tái),也不希望從這個(gè)平臺(tái)中直接獲得收益。他們只是希望能維持現(xiàn)在的格局:大部分程序使用瀏覽器里的Javascript開(kāi)發(fā),如果有更多需求才會(huì)去考慮Flash或者其它替代技術(shù)。
自從上次平臺(tái)之爭(zhēng)后已經(jīng)過(guò)去了很長(zhǎng)時(shí)間,不過(guò)每次經(jīng)歷過(guò)這樣一次技術(shù)之爭(zhēng)后,我們都會(huì)看到一些大公司的衰落和小公司的崛起。再聯(lián)系到開(kāi)源的發(fā)展,我們可以發(fā)現(xiàn)沒(méi)有一家公司能獨(dú)霸天下。對(duì)于這次新的平臺(tái)之爭(zhēng),我們可以肯定的是它是一場(chǎng)持久戰(zhàn)。或許只有時(shí)間會(huì)證明谷歌這次推動(dòng)Web向前發(fā)展的方法是否會(huì)成功。