Google工程師談Web的未來(lái)
這是 Ars Technica 的記者 Jon Stokes 與 Ryan Paul 對(duì) Google Chrome 操作系統(tǒng)的項(xiàng)目工程師 Matthew Papakipos, 公共關(guān)系部的 Eitan Bencuya 做的一次訪(fǎng)談,談到了 Google Chrome 操作系統(tǒng)的孕育,現(xiàn)狀與技術(shù),談到了 HTML 5 以及未來(lái)的 Web。這是第二部分,***部分請(qǐng)參閱Google Chrome 操作系統(tǒng)開(kāi)發(fā)內(nèi)幕。
訪(fǎng)談?wù)吲c被訪(fǎng)談?wù)呙旨昂?jiǎn)稱(chēng):
JS - Jon Stokes
RP - Ryan Paul
MP - Matthew Papakipos
EB - Eitan Bencuya
Web 應(yīng)用 vs 文檔,以及 Web 的天性
JS:Web 存在這樣兩種模式,一種是文檔,一種是應(yīng)用,Google Maps 是應(yīng)用,Ars Technica 是文檔,但你們將文檔和應(yīng)用同時(shí)放到一個(gè)瀏覽器窗口中。
我知道你們?nèi)栽诟倪M(jìn)用戶(hù)體驗(yàn),我想知道的是,你們會(huì)停留在文檔模式,還是向應(yīng)用模式轉(zhuǎn)換,這樣,你們的應(yīng)用將擁有類(lèi)似 OS X 般的窗口,而不是現(xiàn)在網(wǎng)頁(yè)的模樣。
MP:你的問(wèn)題很到位,現(xiàn)在的 Web 人有些古怪,它們中的大多數(shù)還是靜態(tài)的內(nèi)容,看上去更像文檔,甚至CNN,The New York Times, Wall Street Journal 這樣的站點(diǎn)仍是一些靜態(tài)網(wǎng)頁(yè),雖然他們的內(nèi)容是動(dòng)態(tài)輸出的,還包含廣告,這本質(zhì)上,是你從頁(yè)面上閱讀,而不像 Gmail, Picasa, Netflix 一類(lèi)的站點(diǎn),它們更像應(yīng)用,你可以把一些東西拖來(lái)拖去,改變次序。
目前,在Chrome中,我們沒(méi)有對(duì)二者作出太多區(qū)分,因?yàn)閃eb也不是按二者嚴(yán)格區(qū)分的,但我們開(kāi)始在 Chrome OS 中做很多事,增加一些特殊功能,這些功能是真正的應(yīng)用。比如,Chrome OS 中的 mailto 鏈接,通常,這類(lèi)鏈接是打開(kāi)瀏覽器外部的一個(gè) Windows 郵件程序,但如果你使用 Gmail 這就羅嗦了。所以,我們?cè)谘芯浚绾文軓漠?dāng)前的 Tab 直接跳到運(yùn)行 Gmail 的 Tab 或窗口,或者,直接彈出一個(gè)寫(xiě)字板,這樣,你就不會(huì)打斷當(dāng)前你正在瀏覽的東西。
所以,我們開(kāi)始在這方面做研究,如何將不同的鏈接方式定位到不同的 Web 引用上。比如,如果我有一個(gè) Web 版的 JPEG 圖片查看器,如果有人在 Chrome 或 Chrome OS 設(shè)備中想打開(kāi)一個(gè)JPEG 圖片該怎么讓它們關(guān)聯(lián)起來(lái)?
還有一個(gè)例子,.doc 文件。如果我點(diǎn)擊了一個(gè) doc 文件,我是想在 Office Live 中打開(kāi),還是希望用 Gview 查看,抑或是把它存儲(chǔ)到 U 盤(pán)?用戶(hù)該如何告訴 Chrome 他想怎么處理?
JS:這似乎是 Windows 早期遇到過(guò)的問(wèn)題,諸如 OLE,注冊(cè)表之類(lèi),然而在 Web 上,這將是同樣重要的問(wèn)題,只不過(guò)環(huán)境不同。
MP:我希望用一種簡(jiǎn)單但靈活的方式解決這些問(wèn)題,在 Windows 中,那是非常復(fù)雜的,不同的程序都想爭(zhēng)奪某些文檔的處理權(quán),Quicktime 和 Windows Media Player 爭(zhēng)斗,后者又同 Chrome 爭(zhēng)斗,對(duì)用戶(hù)來(lái)說(shuō),這很難處理,而現(xiàn)在的 Web 已經(jīng)開(kāi)始具備這種能力,你可以注冊(cè)文件格式,我們?cè)谶@方面是領(lǐng)先的。
你另一個(gè)問(wèn)題是,我們是否將讓這些應(yīng)用看上去像 Tab 還是別的?目前,我們只是想讓他們像 Tab 以及一些看上去不太一樣的窗口,讓它們?nèi)?tab 似乎更好。
我一天當(dāng)中絕大多數(shù)時(shí)間是活在瀏覽器中,每次當(dāng)我不得不運(yùn)行一些瀏覽器之外的應(yīng)用時(shí),都感到麻煩,所以我們希望讓它們都保留在 Tab 中。但這都屬于 UI 的層面,以后還會(huì)改變,我們面向消費(fèi)的發(fā)布還在一年以后,很多東西都會(huì)改變,但那是我們目前的想法。
JS:Mailplane 在我們 Ars Technicia 非常受歡迎,你用過(guò)嗎,或看到過(guò)別人在用嗎?
MP:沒(méi)有。
JS:那時(shí)一個(gè)對(duì) Gmail 的包裝應(yīng)用,包含一些 mail 相關(guān)的飾件。
MP:在 Chrome 中有類(lèi)似的東西,讓 Gmail 使用特別的界面運(yùn)行,在你的桌面上安裝一個(gè) Gmail 圖標(biāo),就像傳統(tǒng)桌面程序那樣。
EB:任何網(wǎng)站都能使用傳統(tǒng)桌面圖標(biāo)打開(kāi)。
MP:Google Gears 能讓你為一些應(yīng)用創(chuàng)建桌面圖標(biāo)并讓 Web 程序看上去像桌面程序。
EB:它是內(nèi)置在 Chrome 中的,現(xiàn)在你可以直接用這些快捷方式打開(kāi) Gmail 或任何站點(diǎn)。
MP:...不使用那些 Tab 或按鈕...
JS:對(duì),有一個(gè) Fluid 程序,可以將給定的 URL 轉(zhuǎn)換為一個(gè)桌面程序,你見(jiàn)過(guò)沒(méi)有?
MP:是,這就是他所描述的 Chrome 中已經(jīng)擁有的一些東西,我想這些東西在傳統(tǒng)操作系統(tǒng)中更適合。
JS:我想我這樣說(shuō)的意思是,我們已經(jīng)有一些方法,讓 Web 應(yīng)用更像應(yīng)用,這樣,從用戶(hù)體驗(yàn)的角度,他們?cè)诮缑嫔虾推胀ǖ膽?yīng)用一致,而 不是硬塞進(jìn)一個(gè) Web 文檔,對(duì)我來(lái)說(shuō),這是好事,好過(guò)將所有東西都塞進(jìn)瀏覽器窗口。
但這是一個(gè)很大的哲學(xué)話(huà)題。
MP:我想我們?cè)?Chrome OS 中有辦法把這兩種概念融在一起。現(xiàn)在我們感覺(jué)有點(diǎn)古怪,因?yàn)槲覀冞@些瀏覽 Tab 是由瀏覽器管理的,而我們的操作系統(tǒng)管理不同的應(yīng)用。在 Chrome OS 中,所有東西都是 Tab,我們可以讓窗口管理器管理這些 Tab。
所以,從某種方式,事情應(yīng)該變得更清楚,用戶(hù)模式也變得更清楚。因?yàn)椴辉儆袃煞N不同的應(yīng)用(桌面應(yīng)用和 Web 應(yīng)用 - 譯者注),只有一種應(yīng)用,如何展示這些將因時(shí)而異,要看哪種對(duì)用戶(hù)更適合。
目前,我們?cè)?Chrome OS 中有兩種方法來(lái)處理,一種是,應(yīng)用和頁(yè)面作為 Tab,另一種是使用預(yù)覽模式,可以看到多個(gè) Chrome 窗口,你可以在不同窗口間挪動(dòng) Tab 和應(yīng)用。
但我們正在研究,是否將這些東西稱(chēng)作 Web 應(yīng)用,它們是否可以擁有更廣的能力,比如處理文件類(lèi)型和 mailto 鏈接。
程序細(xì)節(jié)
RP:從程序員的角度,我關(guān)心這樣幾件事,特別是,是否有辦法使用諸如 NACL 的東西編寫(xiě)本地代碼,實(shí)現(xiàn)瀏覽器和應(yīng)用之間的接口?Google 是否考慮將 NACL 一類(lèi)的東西納入 Chrome OS?
MP:是,確切無(wú)疑,我們計(jì)劃這樣做。
RP:是否已經(jīng)有了一些原型?
MP:Chrome 本身就是。你現(xiàn)在使用某些特殊參數(shù)運(yùn)行 Chrome,可以調(diào)用一些實(shí)驗(yàn)性的本地客戶(hù)內(nèi)容。
不過(guò)在具體發(fā)布之前,這些還會(huì)有變動(dòng),在穩(wěn)定發(fā)布版的 Chrome 中還沒(méi)有,還存在一些安全問(wèn)題,在解決這些問(wèn)題之前,我們還不想默認(rèn)打開(kāi)這些功能。但這些都確切無(wú)疑在進(jìn)展中,還且肯定會(huì)包含在 Chrome OS 中。
RP:是否有計(jì)劃將硬件訪(fǎng)問(wèn)通過(guò) JavaScript 暴露給諸如 NACL 一類(lèi)的東西。
MP:你說(shuō)的硬件訪(fǎng)問(wèn)是什么意思?
RP:比如,如果有人想訪(fǎng)問(wèn)攝像頭或 GPS,我知道現(xiàn)在已經(jīng)有一些像 geolocation 之類(lèi)的 API,但其它那些還沒(méi)有被 Web 標(biāo)準(zhǔn)所支持的外設(shè)呢?
MP:這個(gè)問(wèn)題很好。我們正尋求將那些設(shè)備加入到 HTML***PI 中,以便可以通過(guò) JavaScript 訪(fǎng)問(wèn),或者通過(guò) C++ 在本地客戶(hù)中訪(fǎng)問(wèn)。
你是對(duì)的,我們?nèi)杂写罅康墓ぷ饕觯绻屛野涯切┰O(shè)備清單列出來(lái),那我們現(xiàn)在需要做的有聲音設(shè)備,攝像頭,麥克風(fēng),線(xiàn)路輸入等,另外,我們還沒(méi)有 像杜比5.1聲道那樣的東西,P2P網(wǎng)絡(luò),甚至連客戶(hù)端-服務(wù)器這樣的 API 都少得可憐,這些東西,我們都在做。
這是很龐大的工作量,讓 JavaScript 和本地客戶(hù)訪(fǎng)問(wèn)這些 API 還有待時(shí)日,但我們盡可能加快速度。
RP:那你們是否有計(jì)劃在 Chrome OS 中加入 Dalvik 運(yùn)行時(shí),這樣人們可以運(yùn)行 Android 程序?
MP:還沒(méi)有。我們主要將精力放在 Web 應(yīng)用層面。不過(guò),我們的本地客戶(hù)是一個(gè)很好的東西,我個(gè)人為之振奮,但我們對(duì)用戶(hù)的期待也要抱務(wù)實(shí)態(tài)度,那還有待時(shí)日。
JavaScript API 也是一樣,我們希望有 JavaScript API 可以訪(fǎng)問(wèn)攝像頭或麥克風(fēng),但必須考慮安全問(wèn)題,用戶(hù)是否接受?如何防止某些網(wǎng)頁(yè) Tab 在你穿著泳衣的時(shí)候通過(guò)攝像頭偷窺你?這些問(wèn)題很棘手。
EB:當(dāng)然,我們將以一種開(kāi)放的方式來(lái)做,但這需要時(shí)間。HTML5 也需要時(shí)間。
Web 應(yīng)用的優(yōu)先級(jí)和權(quán)限
RP:我還想問(wèn),有沒(méi)有辦法讓某些 Web 應(yīng)用獲得高優(yōu)先級(jí)?
MP:這頗不容易。現(xiàn)在的操作系統(tǒng)是這樣做的,有明確的 ECLs 和權(quán)限分配,我們從傳統(tǒng)操作系統(tǒng)中學(xué)到的教訓(xùn)是,用戶(hù)很難對(duì)它們進(jìn)行管理。
如果和 Web 模式比較,Web 的觀(guān)念是,你不應(yīng)該在 Web 應(yīng)用中做任何不好的事,這個(gè)觀(guān)念讓 Web 運(yùn)行得很不錯(cuò),你瀏覽 Web 的時(shí)候,一般不需要擔(dān)心會(huì)出現(xiàn)不良的東西(譯者注:作者這里是從應(yīng)用的角度講),盡管有瀏覽器漏洞和惡意軟件,但總體是不用太擔(dān)心的。
我們盡量避免傳統(tǒng)操作系統(tǒng)中的 ECL 及許可列表的問(wèn)題,所以我們很謹(jǐn)慎,但我們確實(shí)在努力實(shí)現(xiàn)。geolocation UI 是我們目前做過(guò)的最難的東西,這個(gè) UI 很棘手,需要非常謹(jǐn)慎,因?yàn)槟悴荒苄孤队脩?hù)的地理位置,雖然你可以讓用戶(hù)選擇是否向網(wǎng)站暴露自己的地理位置,但必須做得讓人愉快一些。
現(xiàn)在的一些手機(jī),如果你訪(fǎng)問(wèn)一些使用了 HTML5 Geolocation API 的站點(diǎn),會(huì)不斷彈出窗口,問(wèn)你是否愿意提交自己的地理位置,這很煩人,有時(shí)候,人們習(xí)慣了一率點(diǎn)是,這回很危險(xiǎn)。我們必須研究出怎么做,要做得簡(jiǎn)單,不那 么煩人,但目前還沒(méi)有答案。
一般來(lái)說(shuō),瀏覽器處理這種事情是通過(guò)信息條或?qū)υ?huà)框,但我們更趨向于使用信息條,因?yàn)閷?duì)話(huà)框會(huì)鎖住瀏覽器,直到你作出反應(yīng),這會(huì)降低用戶(hù)體驗(yàn)。因 此,很多瀏覽器,包括 Firefox 趨向于使用信息條顯示提示消息,你可以做出反應(yīng),也可以不理會(huì)繼續(xù)瀏覽。
比如,Chrome 在提示你記住用戶(hù)名和密碼的時(shí)候,會(huì)將消息顯示在消息條上,我們?cè)谠S可配置這些 UI 問(wèn)題上,趨向于這種模式。
對(duì) Chrome OS UI 進(jìn)行擴(kuò)展
RP:在對(duì) UI 和 操作系統(tǒng)進(jìn)行擴(kuò)展方面,似乎 Chrome 擴(kuò)展是主要的方式,是嗎?
MP:對(duì) Chrome 瀏覽器來(lái)說(shuō),是這樣。
RP:對(duì) Chrome OS 來(lái)說(shuō),是否有計(jì)劃增加其它擴(kuò)展方式?比如,針對(duì)不同平臺(tái)定制功能?
MP:我們還沒(méi)想到,不過(guò)這是個(gè)有趣的想法,你是否有具體的想法?
RP:我不知道,我只是在想菜單問(wèn)題,在寬屏幕上網(wǎng)本上,增加側(cè)邊欄,雖然在常規(guī)的瀏覽器上,這沒(méi)什么用,但在一個(gè)以瀏覽器為主題的操作系統(tǒng)中,這或許有 用。
MP:這個(gè)想法很好,確實(shí),當(dāng)我們?yōu)g覽網(wǎng)站的時(shí)候,屏幕兩邊都有很多空白空間,我們可以在這些地方放置側(cè)邊欄,我們已經(jīng)在 Chrome OS 中考慮側(cè)邊欄 UI 問(wèn)題,做一些試驗(yàn),側(cè)邊欄放在什么位置,我們不斷調(diào)整,我們有200 多 Google 試驗(yàn)者每周都使用 Chrome OS設(shè)備,我們經(jīng)常在里面加一些新東西,看看他們是否經(jīng)常使用,通過(guò)這些試驗(yàn),我們不斷迭代。
本地應(yīng)用 vs Web 應(yīng)用問(wèn)題
MP:Ryan,我想聽(tīng)聽(tīng)你對(duì) Chrome OS 的看法,是否有一些東西在你看來(lái)是古怪的?
RP:我抱一種走著瞧的態(tài)度,我覺(jué)得有很多變數(shù),主要的問(wèn)題我覺(jué)得是,相對(duì)于那些基于常規(guī)操作系統(tǒng)的 Chrome 瀏覽器而言,Chrome OS 能給用戶(hù)帶來(lái)什么價(jià)值?
在將所有東西都納入瀏覽器這件事上我仍然有點(diǎn)疑慮,我們看看現(xiàn)在的一些 Web 應(yīng)用,他們相反正將在提供一些桌面版,如 Twitter。
我在想,如何只靠瀏覽器實(shí)現(xiàn)全部這些需求。
MP:嗯,是,如果有一些東西瀏覽器不能實(shí)現(xiàn),我們會(huì)對(duì)瀏覽器進(jìn)行擴(kuò)展。
JS:那就是前面談?wù)撐覀冋務(wù)摰?Fluid 和 Mailplane 應(yīng)用。
MP:我仍然認(rèn)為,我們應(yīng)當(dāng)看著這些應(yīng)用,并想到,為什么它們必須是本地程序,我們可以增加一些功能來(lái)實(shí)現(xiàn)。一個(gè)很好的例子是,很多本地程序可以在后臺(tái)運(yùn) 行,于是人們希望在 Web 程序中實(shí)現(xiàn)后臺(tái)進(jìn)程,比如,在 HTML5 中實(shí)現(xiàn)后臺(tái)上傳文件,這樣就不必浪費(fèi)一個(gè) Tab 并讓瀏覽器開(kāi)著。
EB:還有提示消息,在 Twitter 的桌面程序中,每當(dāng)你收到一個(gè)新 Tweet,就會(huì)給你一個(gè)提示消息,在瀏覽器中,也有 notifications API 實(shí)現(xiàn)類(lèi)似的功能。
MP:我們還在研究上傳問(wèn)題,因?yàn)樯蟼魇呛艹S玫挠美?dāng)我向 Picasa 上傳照片的時(shí)候,我們必須開(kāi)著一個(gè) Tab 或者安裝一些復(fù)制程序,我們需要研究出一些方法讓這些功能內(nèi)置在 Web 中。
內(nèi)置的媒體播放器
MP:還有媒體播放器問(wèn)題。我們將一個(gè)完整的媒體播放器集成到 Chrome 瀏覽器和 Chrome OS 中,人們常常為此困惑,這很微妙,但非常重要,因?yàn)閺哪撤N意義上說(shuō),我們是在將一個(gè)相當(dāng)于 Windows 媒體播放器的東西集成到 Chrome 中。
在普通電腦中,我們需要一定的方法來(lái)離線(xiàn)播放 JPEG, MP3 和 PDF 文件,比如,如果你有一個(gè) U盤(pán),上面有 MP3 文件,你可以插上去,聽(tīng)那些音樂(lè),并沒(méi)有對(duì)應(yīng)的網(wǎng)頁(yè)來(lái)控制這些,我們做了很多工作,在 Chrome 和 Chrome OS 中處理這些用例。
RP:你們的方法是標(biāo)準(zhǔn)的,基于 HTML5 的視頻和音頻嗎?
MP:是的,絕對(duì)的。
RP:你們會(huì)讓 Video 標(biāo)簽支持更多編碼嗎?
MP:我們并不是單單增加一些編碼那么簡(jiǎn)單,而是為整個(gè) video/audio 標(biāo)簽提供方案,因?yàn)?video/audio 標(biāo)簽的設(shè)計(jì)是針對(duì)網(wǎng)頁(yè)的,比如像播放網(wǎng)頁(yè)上的某個(gè)媒體,但如果你有一張 U盤(pán),想播放上面的 MP3 文件怎么辦?你如果瀏覽到那些文件并對(duì)它們進(jìn)行播放。
再比如,如果在 Gmail 中收到郵件,上面有 MP3 文件,你不應(yīng)當(dāng)退出 Gmail 在外面播放那個(gè)文件,我們希望直接在 Chrome 里面播放,而且整個(gè)過(guò)程要十分清晰。
這就是我們?cè)?UI 層面的重要事情,將整個(gè)媒體播放器集框架集成到瀏覽器,這并不稀奇,因?yàn)閯e的瀏覽器也在這樣做過(guò),但 Chrome 之前沒(méi)有。
【編輯推薦】