現在的Html5就像當年嶄露頭角時的AJax,有人在做,但不知道叫它什麼。最近,蘋果在Html5上大做文章,而著名的Web設計師Eric Meyer則提出了Web Stacks的概念。Alex Kessinger是Yahoo的一名前端工程師,本文是他對Html5應用現狀與前景的思考。
開源模式帶來轉變
O’Reilly創始人,TimO’Reilly,一位開源的支持者,曾在《Open Source Paradigm Shift》中如是說:
“IBM對個人電腦設計的商品化使利潤從硬件轉移到軟件這一層面,而開源將帶來新的財富”
價值在不同的層面轉移,Html5將成為新的層面,商品的價值在下降,現時的浏覽器已經成為商品,但這並沒有問題,只要它們都遵守標准。人們說,我們可以將操作系統置入浏覽器中,但這行不通,如果我們可以從過去的經歷中學到些什麼,那就是,不能簡單照抄過去的模式,好比廣播到電視的變遷,你不能簡單地在一個播音員面前放台攝像機完事,將操作系統置入浏覽器未必比Html5離線應用本身更有價值。
發布渠道的重要
諸如蘋果應用商店,android應用商店一類的渠道將成為主導,另外,一些新的,象Valve游戲渠道,Netflix電影渠道一類的東西將會出現,在”雲“時代,這些發布渠道將像桌面時代的操作系統一樣用來對用戶進行組織和歸類。
我們是如何到達現在這個階段的?
有兩個關鍵的因素。
感謝Web標准
盡管浏覽器市場並不統一,但至少他們都運行Html,JavaScript和CSS。當我們希望通過Web推出一些東西的時候,我們知道,無論如何,用戶都能看到,然而你能想象人們都自己定義Web時的情景嗎,假如有人不使用HTTP協議,或者不使用Html,那才是世界的末日。W3C一類的組織讓各個浏覽器廠家都保持同一個方向。
還好,我們並沒有很多渲染引擎
浏覽器並不好做,數十億的網頁,參差不齊的代碼,這些東西讓獨立開發者沒有機會單獨設計浏覽器,因此,有能力設計浏覽器的始終是那麼一小撮廠商,事實上,時至今日,我們只有四種主要的浏覽器渲染引擎,Trident(IE),Gecko(Mozilla,Firefox),WebKit(Chrome,Safari),以及Presto(Opera),而眾多浏覽器都是建立在這些渲染引擎之上的。這意味著,不管在什麼樣的設備上,我們不用太擔心它使用什麼樣的浏覽器,不管什麼設備,只要它有一個浏覽器,就有一個可以運行Html5的環境。
標准何日面世?
關於Html5成為標准的時間,IanHixIE的說法最受認可:
“根據估計,Html5直到2022年才會形成W3C推薦標准”
然而,雖然標准的形成尚待時日,但浏覽器廠商已經在實現各種Html5功能。
功能探測vs浏覽器探測
如果你是開發者,你可以使用那些高級功能,但需要進行功能探測並提供漸進式設計。坊間有大量的功能探測庫,如Modernizer,另外,Mark Pilgrim有一個清單,它可以讓你探測任何功能。
離線API
離線API是一切Html5應用的基礎,不單單是離線數據的事,對開發者來說,擁有本地存儲(local Storage)自然很好,但如何讓程序完全離線運行?Application Cache是答案。如果不能離線保存源文件和數據,我們就無法實現離線的Html5應用。
我們目前有幾種離線存儲機制,簡單的如localStorage和SQL存儲引擎,已經有一些浏覽器在支持了,而最新的明星是IndexedDatabase,它得到了所有主流浏覽器支持。這些離線保存應用和數據的能力,是Html5的基礎,目前,Webkit,Firefox已經可以實現,而IE9也即將實現。即時IE9的支持還需要等待,想一下,最需要離線應用的場合是哪裡,自然是智能手機和上網本,智能手機多數都是用Webkit。
W3C Web應用工作組:Html5應用的下一步
W3CWebAPPS標准已經做了大量工作,包括API及Html5 Web程序細則。
HTML5應用的打包部署Html5 aPPSCQuirksBlog博客文章中說,”對於本地/離線Html5應用,W3C Widget packaging and configuration是首選機制,並將成為事實標准,很多廠商已經開始對之進行實現。W3C Widgets支持任意平台的Vodafone S60和Samsung手機,Opera桌面與移動浏覽器,Bolt浏覽器以及Windows Mobile6.5。BlackBerry也支持,不過需要特殊的Java包。”這些都是標准,本質上講,如果你有一個Html5應用,它就會包含Html,CSS,以及JS,這些標准只不過偶是幫助開發者將他們的程序打包發行,如果你熟悉PEAR,它們是很相似的概念。你可能需要一些元數據,告訴系統你的程序是如何打包在一起的,在支持這些標准的平台上,你就可以保證你的用戶可以順利運行這些程序。
其它
Html5還有更多API可以幫助開發者創建應用,這些API可以讓你的程序訪問諸如本地文件,攝像頭,SOCKET通信服務,以及硬件動畫加速等。這些API僅僅是開端,這樣的API後期會越來越多。
Html5程序可以應用在哪裡?
當然是浏覽器,如果一個設備擁有一個浏覽器或渲染引擎,而且這個引擎是現代引擎,它就可以運行Html5程序。Html5程序會應用在以下幾種場合。
桌面
如果你擁有一個符合Web標准的浏覽器,就可以運行Html5應用。桌面仍然很重要。
指定站點浏覽器
諸如Gmail一類的站點可以看做一個應用,使用專門的浏覽器運行,這樣的浏覽器沒有地址欄,是專門用來運行指定站點應用的,甚至可以制作一個安裝包來分發。以下資源值得一看,Prism,Fluid/Fluidium以及NativeHost。
移動領域
這是HTML5最熱門的運行場所。iPhone可以和很多程序集成,將你的程序顯示在它的今日桌面(這裡有一個教程),android也支持需要的HTML5API,但集成不夠好。未來幾年,支持HTML5的移動浏覽器將如雨後春筍,將你的應用向Html5遷移是很明智的,因為Html5將很好地運行在這些設備上。
跨界領域
已經有公司即將發布電視平台,GoogleTV以及AppleTV,Google表示,他們的TV平台將支持HTML5,我們不知道蘋果的TV平台將支持什麼,鑒於他們最近對HTML5的一系列炒作,很有可能也支持。另外一些電視盒廠商,如Boxee業已開始支持Html5,如果你想為Boxee開發應用,與其專門為它開發,不如直接使用Html5。
跨界領域擁有大量的平台,那些可以連接電腦的電視的數量在不斷增長,我們已經可以在電視上全屏觀看YouTube,而備受歡迎的Wii則內置了Opera。所有這些,都將借助Html,CSS與JavaScript。
Html5應用商店
Eric Meyer講到了HTML5應用程序問題,他將HTML5應用成為Web Stack APPS,Html5要獲得更多關注,可以建立Html5應用商店。Chrome正在這樣做,而Palm已經有了一個這樣的東西。
應用商店是很好的東西,開發者可以直接得到報酬,而無需像現在這樣靠廣告維持,同時,用戶也將有一個地方去為他們的設備尋找程序。
Html5市場前景
HTML5在快速成長,值得所有人密切關注,最近的一兩年,會有很多公司進入這個領域,我們或許會在Chrome應用商店看到一些重量級廠商,我們也有希望在Google TV和Apple TV領域看到一些應用商店的出現。Html5會像傳統的Flash,Flex,Silverlight,Objective-C那樣,形成自己的生態系統。Html5將比Flash,Flex,Silverlight以及Objective-C更容易出現在任何設備。
對於年輕一代開發者,Html5應當是他們首選技能,Html5會形成很大的市場,很有很多公司需要這方面的人才。