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