Html5將重塑Web世界?
2010年上半年的一個焦點事件,引起了很多人的關注,其中有不少人因這一事件第一次了解到HTML5的存在。初次了解HTML5的人可能會非常驚訝,Html5規范早在6年前就開始制定了,如今盡管Html5規范草案已經非常好,但何時能真正成為標准卻仍然不確定。
的確,Html5規范制定委員會工作進展非常緩慢。因為關於如何改進浏覽器和改進Web世界,不管是浏覽器供應商還是其他人都有太多的想法,而這些都要匯聚到Html5規范中並達成一致,這需要時間。許多新的標簽和JavaScript函數盡管已經在一些浏覽器上進行了實驗,但互操作性和標准化問題還沒有解決。比如,Apple所做的Html5演示雖然令人印象深刻,但它們也只在Safari上運行良好。這就是為什麼Flash的支持者嘲笑Html5要把Web帶回到2000年浏覽器大戰時代的原因。
雖然這種嘲笑可能讓HTML5的支持者很傷心,而且漫長的等待的確很難熬,但如果就此忽略Html5卻是不對的。因為在Html5的背後不僅有行業巨頭的推動,更為重要的是,標准化是IT技術發展的必然趨勢。就軟件而言,不論是浏覽器還是相關的開發工具,都會不斷吸納周圍的各種技術,最後對其進行標准化,這是技術發展的必然規律。
可以肯定的是,HTML5將改變互聯網的方方面面,顯然它不會完全取代Flash,但Html5的確會重塑互聯網,使浏覽器無需借助插件就可以做更多的工作,從位置跟蹤到把數據保存到雲端。Html5的標簽將取代那些完成比較簡單任務的插件,至少在某些時候,它可以把一些高級的功能開發給更多的用戶。最終它可能使互聯網更安全、更高效、更靈活。
那麼,即將成為新標准的Html5到底會把我們帶向哪裡?下面收集了開發者、程序員以及設計師的一些看法,從中可以了解到Html5如何改變互聯網。
降低插件的重要性
從前,Web世界是非常歡迎浏覽器插件的,因為它鼓勵創新的想法和大膽實驗,而聲音、動畫及其他一些非常生動的網頁,通過Sun、Adobe、RealAudio、微軟以及其他的一些公司開發的插件第一次在網絡呈現時也的確讓人耳目一新。然而,問題很快就出現了,插件的接口是向所有人開放的,每個人都在嘗試給舊的、以文本為基礎的世界增加新的功能,混亂不可避免。其中最有名的插件就是Flash,其他類似的插件更是數不勝數。
出於多種原因,Apple禁止Adobe的Flash在自己的平台上運行,這使得廣大Apple迷們不能在Apple平台上看到Flash,而Html5的流行將讓這種沖突不再出現,它將逐步淘汰那些相對封閉的開發體系:JavaFX的功能可能真的很強大,但既然JavaScript和Canvas對象就能做同樣的工作,為什麼還要學習另一種語法?如果video標簽能將音視頻同步,誰需要Real的生態系統?
那麼,插件真的會全部消失嗎?也許吧,但這要取決於你想做的事情。如果你的目標只是繪制圖像,那麼Canvas對象可能就夠用了。但如果你想建立一個專業的3D世界,正如在復雜的Flash和Shockwave游戲中所看到的那樣,你可能還得依賴專有的插件技術,因為這些插件技術可以直接訪問視頻硬件,運行3D游戲。
支持動態生成圖像
過去,網頁中顯示的圖像來自於直接下載的GIF或JPG圖像,而在Html5中,圖像可能並不是直接來自圖像文件,而是由某個Canvas(畫布)對象臨時生成的。網絡上已經出現了大量的非常好的圖形庫,這些圖形庫的存在使得動態生成圖像更加容易。
如今,JavaScript層可以根據數據進行計算然後繪制出圖形。如果軟件開發商有足夠的時間和人才的話,完全可以讓網絡上的一切變得更加生動,而純文本內容越來越少。Flash只是一個開端,Html5環境讓Web開發人員更易於開發出復雜的圖像。市場已經出現了一些類似的工具,它們將進一步提高web開發人員駕馭圖像的能力,而且隨著工具的成熟,開發人員也將開發出更多更為專業的復雜圖形。
這裡可能存在的一個問題是,這種圖像的處理可能會給客戶端處理器帶來很大負擔,比如對客戶端的處理器處理能力有一定要求。在過去,一些開發人員根本不敢用Flash插件,因為渲染和展現Flash內容可能會給處理器帶來很大壓力,極大地影響用戶的最終體驗。未來這不應該成為問題,開發者不應該因擔心影響性能就不讓用戶體驗生動的圖像,只是開發者應該做出一個折中的選擇。每一個抱怨Flash影響性能的人都應該知道,這與技術本身沒有關系,問題來自設計師們為了吸引我們的注意力,他們過多地使用了這項技術。
允許Web程序利用本地存儲
Web程序員其實早就可以利用浏覽器端的本地存儲空間存儲很多信息,比如IE允許最多300個CookIE,最多存儲4096個字節的內容。不過,要開發真正實用的Web程序,可能需要比這更多的存儲空間。比如,以前的Dojo工具包使用Flash插件來分配用戶硬盤上的部分空間,把它留給浏覽器使用,而現在很簡單了,使用Html5就可以達到同樣的目的。
對於這部分存儲,程序員可以按照自己的需要任意使用,比如把雲服務的應用和數據保存在本地硬盤上。這也使得雲應用的交付、安裝和部署都非常像傳統的應用程序。比如,無論是否有互聯網連接,雲應用程序都可以照常運行,因為之前已經從服務器上下載了Html5應用的JavaScript代碼,這部分代碼就保存在本地。
當然,這種技術的應用並不會影響雲應用的普及,因為現在的運行模式與過去有很大不同,本地數據庫實際上扮演的是智能緩存的作用。另外,游戲開發人員可以在本地存儲一些情景信息和裝備信息,這樣可避免每次一連機就要下載這些信息,省了下載資料的時間。而不利的方面就是這些數據庫深埋在系統文件夾之中,這樣,進行數據備份時就變得非常復雜。用戶如果想把數據從一台機器遷移到另一台機器,數據遷移工作可能就會變得更為復雜。
或許混合雲的出現可能解決這一問題,混和雲允許雲端和本地都保存有數據,而本地計算機只是緩存數據,最終版本保存在雲中,這樣從任意一台計算機上就可以訪問到。
簡化web開發中的數據提取
曾從網頁中提取過數據的web開發人員都知道,現有的HTML結構除了告訴浏覽器這些信息在哪裡之外,幾乎不能再提供任何有意義的信息。而開發人員需要了解與數據本身有關的信息,這些信息能幫助程序員了解這些數據的真正含義。 Html5中所謂的微格式(Microformat)引入了一種新的機制,它在Html中新增了一些專門的標簽,可以幫助程序員分析標簽之中的數據的真實含義。
沒有人能夠預測微格式到底將帶給網絡多少改變,但很容易看出,這種新的機制將給程序員帶來很大方便,幫助程序員開發出更有效率的Web應用。比如,如果有一個好的、標准的方式來表示日期和時間,那麼程序員在為網站開發與時間有關的Web程序時,就無需另外編寫專門的代碼來分析或者猜測別人可能用的什麼時間格式。這樣,日歷、時間表、日程安排等需要從多個數據源收集時間信息的應用也就變成非常簡單的工作了。
支持位置服務
在Web世界裡,過去我們只知道其IP地址,那些數字對應著一個什麼樣的真實世界我們根本不知道。比如,某台電腦究竟在哪裡,過去幾乎不可能知道,而現在出現的位置服務可以解決這個問題。Html5標准中允許JavaScript詢問浏覽器用戶的地理位置,比如緯度和經度信息。通常桌面系統不支持這一功能(因為需要有GPS或Wi-Fi),但如果終端是手持智能手機,這個功能就可以發揮作用。
今天,沒有人能知道聰明的程序員會基於這些位置信息創建出什麼應用來,但有一點可以肯定,未來一定可能以一種變幻莫測和難以置信的方式將把虛擬世界與現實世界整合到一起。
讓Web視頻播放更流暢
Html5中的video標簽使Web開發人員很容易地把視頻內容與網頁中的其他內容整合起來,也讓那些從事jQuery和PHP開發的人員可以加入到Web開發隊伍中,使得web開發不再僅僅是Flash、Silverlight和JavaFX開發人員的專利。
盡管這一設想看起來很誘人,但面臨的困難依然不少,因為Html5標准中沒有指定任何編解碼器,而每個人都想發布自己的視頻和聲音編解碼器。這就意味著我們用一種混亂取代另一個混亂:只是過去我們把嵌入到浏覽器中的軟件稱為插件,而今天把它稱為編解碼器而已。因此,今天我們雖然有了一個標准的video標簽,但浏覽器可能知道也可能不知道到底如何解釋這些視頻內容。
在洛杉矶任教的Html5應用開發講師Erich Ocean認為編解碼器的戰爭仍在繼續。計算機開發人員和Mozilla組織如果認為他們能為視頻專業人士制定視頻標准,那就大錯特錯了。他說,我們看到谷歌的新視頻格式在一些地方得到了使用,比如在YouTube網站,但永遠不會像H.264那樣普及。
盡管視頻播放可能面臨比較混亂的局面,因為無法讓大家達成一致,但是新的video標簽肯定會讓互聯網視頻內容越來越豐富,網頁將成為視頻內容的主要發布源地,而同時單純的文字內容也會越來越少。只是這對孩子的教育未必是好事,因為現在的孩子們變得越來越習慣於看動畫,而很少花時間來閱讀,更別提書寫了。
Widget將更豐富
在iframe中運行的Widget讓網頁可以把其他網站的內容(比如天氣預報)嵌入進來,非常實用也非常受歡迎,但由於安全方面的原因,這些Widget一直運行在一個相對獨立的環境中,與網頁中的其他內容基本保持隔離狀態。
而Html5為這些Widget提供了一個相互通信的標准機制。盡管它們仍然不能夠相互進入對方的運行環境中,但它們已經可以相互發送信息來協同工作了。
廣告商對此早就期盼已久,它們非常希望能把分散到同一個網頁各個位置的旗幟廣告整合起來,而從開發的角度來說,開發人員也一定會找到其他實際用途。例如,在Web頁面上播放的網球比賽畫面可以和左右兩邊的球員信息同步起來,這在Html 1.0時代是難以想象的。
不過,可以發送信息、相互通信機制只是一個開始,下一個亟待解決的是通信協議的問題,因為至今還沒有這方面的一個標准。只有為傳遞信息設立一個標准後,兩個不同開發團隊開發出來的Widget之間才有可能相互通信。換句話說,通信雙方需要更多的標准詞匯。
提高浏覽器的安全性
每個浏覽器插件都是一個單獨的應用程序,不同的浏覽器插件是由不同的程序員按照不同的標准開發的,發布時間不同,安全模式也不同。很自然地,有些插件會比其他的更安全。隨著浏覽器中的插件越來越多,要跟蹤每個浏覽器插件中可能存在的安全漏洞越來越復雜。比如,你企業中去年年末某個時候的安全漏洞到底是出在插件還是浏覽器,最後是通過升級浏覽器而不是升級插件來解決的還是反過來,可能很難有人記得那麼清楚。
把很多功能內置到Html5而不是使用插件可以大大降低安全風險,避免與插件開發有關的多個環節出現問題,更可以防止有人故意利用插件中的API安裝惡意代碼。因為相對而言,Firefox、Chrome或IE浏覽器等的安全性通常會經過更多的人(包括安全小組)的審計,如果安全小組認為某個浏覽器安全,一般來說,其安全風險肯定要少得多。
不過,這裡所說的安全性有所改善帶有一定程度的主要臆測。這個世界總會有一些人把它們的聰明才智用到邪道上,他們完全可能利用Html5的某種特性來從事一些惡意行為。只是現在沒有人能夠預測Html5的新功能中到底可能隱藏著哪些危險。
簡化web開發
在一家Web軟件開發公司工作的開發人員的話很有代表性,它簡明扼要地闡述了Html5可能帶來的變化。他說:我更喜歡Html5,主要是因為它使我能夠在一個統一的開發環境下進行開發,這個環境就是浏覽器加JavaScript再加上DOM,而不必在Flash世界和Html5的世界之間來回切換。未來只要掌握一門開發語言和一個工具集,就可以開發任何插件。
他補充說,我認為,對於用戶而言好處也是很明顯的,而現在Flash仿佛在互聯網世界裡另外創立了一片天地。
的確,Html5采用了統一的語言(JavaScript)、統一的數據模型(XML和DOM)和統一的表現規則(CSS)來表現文本、音頻、視頻和圖形,對於開發者而言無疑的是非常理想的,基於一個統一的標准開發環境,工作肯定會簡單不少。但要讓一切都成為現實挑戰仍然是巨大的,一個突出問題是工具的缺乏,現在Html5的相關工具方面還很少。不可否認,Flash的流行與Adobe為Flash的開發提供了非常好用的工具密不可分。
鏈接:Html的演進歷程
Html全稱是超文本標示語言(Hypertext Markup Language),是用來描述網頁的一種規范。正是這些容納在尖括號裡的簡單標簽,構成了如今的 Web。
HTML的第一個官方版本是由IETF (互聯網工程任務組) 推出的 HTML 2.0。後來,W3C 取代 IETF 的角色,成為HTML標准制訂的組織,上個世紀90年代的後半葉,HTML 的版本被頻繁修改,直到1999年的HTML 4.01,至此,Html到達了它的第一個巅峰。
HTML在HTML 4.01 之後的第一個修訂版本就是 XHTML 1.0,其中X代表 eXtensible。 XHTML 1.0 是基於HTML 4.01 的,並沒有引入任何新標簽或屬性,唯一的區別是語法,HTML對語法比較隨便,而XHTML則要求XML般的嚴格語法。後來,W3C又推出了XHtml 1.1。
對 W3C 而言,到了 HTML 4已經是功德圓滿,他們的下一步工作是XHTML 2.0,希望將Web帶向XML的光明未來。然而,來自Opera、Apple以及 Mozilla 的代表不滿意W3C的工作,他們自發組織成立了超文本應用技術工作組,這就是WHATWG,他們致力於Html5 規范。
在WHATWG致力於Html5的同時,W3C繼續他們的XHTML 2.0。不過,W3C在XHTML 2.0方面的工作慢慢地陷入困境,後來終止了XHTML 2.0的工作,並於2007年組建了一個新的HTML工作組,他們非常明智地選擇了 WHATWG 的成果作為基礎,致力於制訂Html5規范。
經過多年的醞釀,HTML5的草案於2008年發布,目前W3C正在對它進行進一步完善。現在,關於HTML5何時會正式成為標准還沒有一個明確的說法。好消息是,2012年HTML5可能會被接納為候選標准。不過,可以預料的是,Html5無論何時能成為標准,Html5要被所有浏覽器提供商所接納肯定是一個比較長期的過程。