關于HTML5應用現狀前景的思考
現在的 HTML5 就像當年嶄露頭角時的 Ajax,有人在做,但不知道叫它什么。最近,蘋果在 HTML5 上大做文章,而著名的 Web 設計師 Eric Meyer 則提出了 Web Stacks 的概念。Alex Kessinger 是 Yahoo 的一名前端工程師,本文是他對 HTML5 應用現狀與前景的思考。
術語
首先說說 HTML5 應用中的幾個定義。
HTML5
HTML5 最好的定義來自 Mark Pilgrim 的 Dive Into HTML5:
"HTML5 是繼 HTML4.01,XHTML 1.0/1.1 之后的下一代 HTML"
值得一提的是,我們或許能看到 HTML6,然而按 Pilgrim 在 WHATWG 博客中的說法,下一代 HTML 很可能去掉版本號這一概念。
應用
來自 Wikipedia 的解釋:
"應用程序是計算機用來執行特定任務的軟件"
HTML5 應用
從用戶的角度,HTML5 應用和其它的計算機應用程序還不完全一樣,但已經很接近。從開發者的角度,HTML5 應用是一些基于 HTML,JavaScript,CSS 的程序,它們使用開放技術,可以離線使用,可以取代諸如 Silverlight 及 Flash 等專用平臺的部分工作;蛘哒f,多年來,你用來創建 Web 頁面的東西,現在可以用來創建類似桌面和智能手機程序的應用。
開源模式帶來轉變
O’Reilly 創始人,Tim O’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 成為標準的時間,Ian Hixie 的說法最受認可:
"根據估計,HTML5 直到 2022 年才會形成 W3C 推薦標準"
然而,雖然標準的形成尚待時日,但瀏覽器廠商已經在實現各種 HTML5 功能。
功能探測VS瀏覽器探測
如果你是開發者,你可以使用那些高級功能,但需要進行功能探測并提供漸進式設計。坊間有大量的功能探測庫,如 Modernizer ,另外,Mark Pilgrim 有一個清單,它可以讓你探測任何功能。
離線API
離線 API 是一切 HTML5 應用的基礎,不單單是離線數據的事,對開發者來說,擁有本地存儲(localStorage) 自然很好,但如何讓程序完全離線運行?Application Cache 是答案。如果不能離線保存源文件和數據,我們就無法實現離線的 HTML5 應用。
我們目前有幾種離線存儲機制,簡單的如 localStorage 和 SQL 存儲引擎,已經有一些瀏覽器在支持了,而最新的明星是 Indexed Database,它得到了所有主 流瀏覽器支持。這些離線保存應用和數據的能力,是 HTML5 的基礎,目前,Webkit,Firefox 已經可以實現,而 IE9 也即將實現。即時 IE9 的支持還需要等待,想一下,最需要離線應用的場合是哪里,自然是智能手機和上網本,智能手機多數都是用 Webkit。
W3C Web 應用工作組:HTML5 應用的下一步
W3C WebApps 標準已經做了大量工作,包括 API 及 HTML5 Web 程序細則。
HTML5 應用的打包部署
HTML5 apps – QuirksBlog 博客文章中說,"對于本地/離線 HTML5 應用,W3C Widget packaging and configuration 是首選機制,并將成為事實標準,很多廠商已經開始對之進行實現。W3C Widgets 支持任意平臺的 Vodafone S60 和 Samsung 手機, Opera 桌面與移動瀏覽器,Bolt 瀏覽器 以及 Windows Mobile 6.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 也支持需要的 HTML5 API,但集成不夠好。未來幾年,支持 HTML5 的移動瀏覽器將如雨后春筍,將你的應用向 HTML5 遷移是很明智的,因為 HTML5 將很好地運行在這些設備上。
跨界領域
已經有公司即將發布電視平臺,Google TV 以及 Apple TV,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 會形成很大的市場,很有很多公司需要這方面的人才。
原文作者
Alex Kessinger 是一名 Yahoo 前端工程師,他的博客地址是alexkessinger.net, 他還是tastestalkr.com的合伙創始人,現居舊金山灣區。
【關于HTML5應用現狀前景的思考】相關文章: