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