外敵重重自絆自腳?HTML5普及的血淚史
近幾年來,HTML5的大潮似乎是勢不可擋。在桌面應用環境中,各大瀏覽器陸續卷進了Chrome引發的跑分競賽,對HTML5的支持力度如同磕了藥般瘋狂;在移動平臺上,Flash先后在iOS、Windows Phone和Android上吃癟,Android把Flash逐出家門后HTML5已經成為了移動互聯網的唯一選擇。放眼望去,仿佛四野皆充滿著HTML5千秋萬代一統江湖的高呼。
HTML5聲勢浩大
然而事實是,每當我用電腦打開國內的主流網站,Flash仍然在狠搧我的臉讓我在HTML5的春秋大夢中醒過來,鋪滿整個屏幕的依舊是煎雞蛋專業戶Flash而非HTML5。這不得不讓人生疑,HTML5在業界風風火火了這么多年,莫非到頭來只是一個空口號?Flash到底還會在互聯網上縱橫多久,再讓CPU煎熟多少個雞蛋?很明顯,HTML5的推廣,并沒有如同大多數人想象般那樣一帆風順。
那么到底是什么因素在阻攔著HTML5的普及呢?讓我們一起來看看。
攔路虎:Flash
說起Flash,不少人對它的印象都是又蠢又慢,還經常會把瀏覽器崩潰得七零八落。不過你可能想不到的是,在1996年Flash誕生伊始,它可是互聯網上冉冉升起的超級新星——小巧、高效、跨平臺,無論是開發者還是用戶,看到Flash都會笑逐顏開。
Flash誕生之初是互聯網世界的超級英雄
隨著年歲的增長,在Adobe豐盈的奶水的滋潤下,Flash茁壯成長。Flash先后加入了對Javascrip、HTML、XML的支持,新增了濾鏡和層的模式,加持了Actionscript語言,并增強了影音方面的功能一舉把RM/RMVB趕到了線下。Flash甚至被人譽為是“最靈活的平臺”,易于開發且移植性強的特點讓它在互聯網上打出了一片天地。
然而,Flash的成長似乎茁壯得有點過了頭。Flash的功能越來越強大,開發人員使用Flash開發的產品也愈發繁多龐雜,Flash開始被用來干一些奇怪的事情,比如說賣賣小廣告啦,玩玩小游戲啦——這些應用多是粗制濫造,很難想象有人會為Flash廣告優化代碼,是吧。人們慢慢發現,當低劣的Flash充斥著網頁的時候,電腦開始不堪重負了,Flash落下了一個烤肉機驅動程序的稱號。
Adobe把Flash養得太肥了
但是實際上,Flash的效率并不低,只是 Flash的濫用和參差不齊的Web前端開發人員造成了一系列不良后果。畢竟Flash功能強大而且易上手,什么人都會用Flash進行開發,產出了各種奇葩東西也在情理之中,結果就是這些胡編亂造的Flash讓人們的電腦假死崩潰了一次又一次。
Flash的效率低下主要歸咎于開發者,但其安全性和穩定性欠佳就和Adobe不上心有關系了。君不見多少個0day漏洞由Flash而出,多少次要瀏覽器主動為更好的Flash穩定性而更新。安全性和穩定性,直到現在依然是Flash的軟肋。
Flash的崩潰讓多少人抓狂
總的來說,Flash的優點和缺點都很明顯,但是Flash的缺點無礙于它成為網絡上的霸主——并不是每個人都會關心什么病毒不病毒,瀏覽器崩潰了重新打開也能恢復標簽頁。和HTML5相比,Flash功能不輸,且易于開發,對瀏覽器的依賴十分小,人們只需要升級Flash插件就能享受到最新版本。相反,如果你沒有裝備一個先進的瀏覽器,HTML5根本不會出現在你面前。Flash,這個Adobe和開發者的寵兒,現在的HTML5仍未能撬動它的根基。
絆腳石:瀏覽器
前面提到,Flash能夠制霸網絡的很大一個原因就是對瀏覽器的依賴小,Adobe早已經在Flash中加入靜默升級機制,用戶不知不覺中即可享受到最新版本Flash帶來的特性,這一切都無需依賴瀏覽器。
HTML5則不然,如果HTML5想要部署于廣眾大羅的電腦上,這就得先把這些為數巨大的電腦通通安裝上能辨認HTML5的瀏覽器,只有當人們不再使用能把CSS3譜寫的哆啦A夢渲染成方框怪獸的瀏覽器時,HTML5才會展現它應有的魅力。然而,舊習慣的惰性力量驚人,這在中國又尤為明顯。IE6從21世紀初發布開始,十年如一日,至今仍在統治著人們瀏覽互聯網的窗口,新型瀏覽器在中國舉步維艱。下面是今年8月份中國瀏覽器的排行榜單,IE的強勢可見一斑。
今年8月份中國市場瀏覽器使用率情況
在榜單中,IE仍然以過半的使用率獨占鰲頭——這個還是保守情況,榜單中可沒有統計使用了IE內核的“第三方瀏覽器”。由于中國的特殊國情,大部分用戶在電腦買回來后就基本不會去動那些Ghost XP、Ghost Win7之流的系統,這些系統內置的IE6、IE8自然也成為了人們上網的標配——很遺憾,無論是IE6還是IE8,對HTML5的支持度都極差,HTML5眼看Flash在這些老舊的瀏覽器中風生水起,自己卻力所不及,只能45度仰望天空為的是不讓眼淚掉下來。
所幸這一切只發生在桌面應用環境中,在移動平臺,HTML5已經成為了新時代互聯網的象征。在這里,HTML5可得大大地感謝蘋果。蘋果在2007年發布iPhone時,并未提供對Flash的支持,當時蘋果的官方說法是,硬件效能不足以支撐Flash運行。當時Adobe還心存一絲僥幸,以為隨著硬件的發展,iOS支持Flash是遲早的事情。于是Adobe在Flash CS5上開始支持將Flash輸出成 iOS App,但始終無法在Safari上使用Flash。
蘋果將Flash逐出了iOS
Adobe和蘋果都倍受設計師的青睞,雙方之間也有過不少合作,Adobe萬萬沒有想過蘋果在移動平臺上對Flash居然會如此強硬。面對Adobe在iOS上運行Flash的滿懷希冀的眼神,蘋果不理不睬,轉身去和W3C、Mozilla和Opera合作,大力推廣HTML5。得益于蘋果在移動平臺上的強勢,HTML5在移動互聯網遍地開花。而Windows Phone和Android看到iOS和HTML5的合作竟隱隱有一統江湖之勢,于是紛紛表示Flash什么的弱爆了。在Android 4.1拋棄了尾大不掉的Flash后,HTML5成為了移動平臺唯一的選擇,也是面對Flash唯一取勝的戰場。
Android 4.1放棄Flash,HTML5得以制霸移動市場
移動平臺HTML5得以戰勝Flash,主要是因為蘋果等廠商對Flash的強硬態度,在移動平臺上用戶也沒有太多的選擇,廠商說什么就是什么——你總不能把iOS刷成Android吧。桌面平臺用戶的自由度就大多了,微軟可不敢把你的IE6強卸掉后強推IE9。HTML5想要全面取代Flash,任重道遠吶。
自作孽不可活:HTML5本身
雖然前文我們一直在說HTML5,但這實際上是一個泛指。前文所說的HTML5包括了HTML5、CSS3、JavaScript以及新的瀏覽器API所包含的整個Web前端技術,這一套技術并沒有一個嚴格的統一的標準——HTML5仍是一個草案,而各家瀏覽器的API的內容又不一樣,可以說HTML5本身就十分零散。
HTML5擁有眾多出彩的特性,可以讓人們在網上直接繪圖作畫、聽歌看片、吹水聊天以及將Web應用轉化稱本地程序等等(雖然這些Flash并非做不到,但是很少人用Flash用心做這些),HTML5成為了最新移動技術的代名詞。HTML5甚至可以構建一個移動操作系統——Firefox OS中就使用了HTML5編寫系統應用。
Firefox OS使用HTML5編寫應用
但是HTML5標準的分裂讓它很難將自己的光芒匯聚在天頂,成為互聯網世界獨一無二的太陽。在今年的7月份,當HTML5標準已經在超過90%的協議上達成共識之時,HTML5又迎來了一次聲勢浩大的窩里斗。WHATWG和W3C是HTML5標準的制定者,但偏偏把孩子生到一半這兩個家伙就要鬧離異了——WHATWG希望HTML5能制定成一個能跟隨市場和技術動態變化的標準,W3C卻希望HTML5成為一個“死標準”。于是WHATWG和W3C表示無法繼續合作,HTML5標準的正式確立遙遙無期。
WHATWG和W3C間產生了嚴重分歧
除此以外,WHATWG和W3C背后的業界真·大佬們也紛紛踏進這趟渾水——誰控制了互聯網標準,誰就控制了互聯網。放眼一看,WHATWG背后的靠山有蘋果、Mozilla和Opera,W3C所抱的大腿則是微軟。蘋果、Mozilla和Opera控制著Webkit、Firefox和Opera,微軟自不用說,一個IE足以讓對面仨抖上三抖。而隨著Google加入WHATWG陣營,蘋果和Google這兩個Webkit的主要使用者同時也是死對頭之間又燃起了紛飛戰火。
在HTML5的視頻格式標準這一最關鍵的一環時,Google和蘋果發生了激烈的爭執。Google說,蘋果所支持的MPEG視頻協議核心技術為蘋果一家所把持,這種商業化程度這么高的東西絕然不能加入HTML5的開放標準中。于是Google在Youtube中大力推廣WebM格式,下決心和蘋果戰個痛快。那么HTML5標準還要不要確立了呢?天知道,先和蘋果好好搞一仗再說。
現在HTML5標準制定者內部就是這種情況
我們再來數一下HTML5背后有多少股暗涌流動:兩大標準組織WHATWG和W3C;WHATWG背后的Google、蘋果、Mozilla和Opera;W3C背后的微軟,WHATWG內部的Google和蘋果,這妥妥的比七國還亂。若一盤散沙的HTML5都能打倒Adobe一手苦心經營的Flash,那古人也不用費心傷神讓兒子折什么一根筷子和三根筷子了。
后話
HTML5的確極具價值,若HTML5標準得以確立,對互聯網來說無疑是大大的福祉。然而,Flash、瀏覽器和各大巨頭之間的廝磨直接拖緩了HTML5部署的步伐。HTML5能夠統一網絡?也許在未來可以。但是,現在還真不是HTML5的時代。
原文鏈接:http://www.html5cn.org/article-3508-1.html
【編輯推薦】