近幾年來,HTML5的大潮似乎是勢不可擋。在桌面應用環境中,各大浏覽器陸續卷進了Chrome引發的跑分競賽,對HTML5的支持力度如同磕了藥般瘋狂;在移動平台上,Flash先後在iOS、Windows Phone和Android上吃癟,Android把Flash逐出家門後HTML5已經成為了移動互聯網的唯一選擇。放眼望去,仿佛四野皆充滿著HTML5千秋萬代一統江湖的高呼。
HTML5聲勢浩大
然而事實是,每當我用電腦打開國內的主流網站,Flash仍然在狠搧我的臉,讓我從HTML5的春秋大夢中醒過來,鋪滿整個屏幕的依舊是煎雞蛋專業戶Flash而非HTML5。這不得不讓人生疑,HTML5在業界風風火火了這麼多年,莫非到頭來只是一個空口號?Flash到底還會在互聯網上縱橫多久,再讓CPU煎熟多少個雞蛋?很明顯,HTML5的推廣,並沒有如同大多數人想象般那樣一帆風順。
那麼到底是什麼因素在阻攔著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的時代。