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