關於HTML5應用現狀前景的思考

才智咖 人氣:2.85W

現在的 HTML5 就像當年嶄露頭角時的 Ajax,有人在做,但不知道叫它什麼。最近,蘋果在 HTML5 上大做文章,而著名的 Web 設計師 Eric Meyer 則提出了 Web Stacks 的概念。Alex Kessinger 是 Yahoo 的一名前端工程師,本文是他對 HTML5 應用現狀與前景的思考。

關於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 等專用平臺的部分工作。或者說,多年來,你用來建立 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 前端工程師,他的部落格地址是, 他還是的合夥創始人,現居舊金山灣區。

TAGS:前景 HTML5