HTML5定稿了,為什么原生App世界將被顛覆

2015-01-31 15:26:15來源:CSDN作者:王安,數(shù)字天堂公司董事長

2014年10月底,HTML5規(guī)范正式定稿,結(jié)束了長達(dá)8年的長跑。數(shù)字天堂董事長,DCloud CEO王安梳理了HTML5誕生至今的演變過程,并從開發(fā)者和用戶兩個角度分析了HTML對兩個人群的優(yōu)勢。

2007年W3C(萬維網(wǎng)聯(lián)盟)立項HTML5,直至2014年10月底,這個長達(dá)八年的規(guī)范終于正式封稿。

過去這些年,HTML5顛覆了PC互聯(lián)網(wǎng)的格局,優(yōu)化了移動互聯(lián)網(wǎng)的體驗,接下來,HTML5將顛覆原生App世界。這聽起來有點危言聳聽,但若認(rèn)真分析HTML5的發(fā)展史,你會發(fā)現(xiàn),這個世界的發(fā)展趨勢確實就是這樣。

熟知歷史才能預(yù)知未來,先讓我們來看看HTML5為什么誕生、這8年是怎么過來的。

\

HTML5的誕生

自W3C于1999年發(fā)布HTML4后,Web世界快速發(fā)展,一片繁榮。人們一度認(rèn)為HTML標(biāo)準(zhǔn)不需要升級了。一些致力于發(fā)展Web App的公司另行成立了WHATWG組織,直到2007年,W3C從WHATWG接手相關(guān)工作,重新開始發(fā)展HTML5。

HTML5的發(fā)展史,有用戶的需求在推動,有技術(shù)開發(fā)者的需求在推動,更有巨大的商業(yè)利益在推動。

在互聯(lián)網(wǎng)的早期,對用戶而言,能打開瀏覽器接入到互聯(lián)網(wǎng)世界就是一個神奇的事情,但互聯(lián)網(wǎng)發(fā)展到2005年前后,開始出現(xiàn)下一個變化,就是寬帶互聯(lián)。

隨著寬帶的普及和電腦性能的增強(qiáng),人們不再滿足于單純的通過互聯(lián)網(wǎng)看新聞、收發(fā)郵件,消耗更高帶寬的娛樂產(chǎn)品開始出現(xiàn),就是流視頻和網(wǎng)頁游戲。其實視頻和游戲是古老的需求,在互聯(lián)網(wǎng)不普及的時候,需求的滿足方式是離線傳輸?shù)腣CD和游戲光盤;后來互聯(lián)網(wǎng)逐漸普及,人們更改了使用方式,通過下載軟件+本地媒體播放器來看視頻,下載體積較大的端游玩游戲。

但是對消費者體驗更好的新方式還是出現(xiàn)并顛覆了以前的一切,那就是流媒體和網(wǎng)頁游戲。YouTube等公司把握住潮流飛速崛起,各種頁游公司也如雨后春筍。

但是HTML標(biāo)準(zhǔn)沒有把握住產(chǎn)業(yè)的變化及時演進(jìn),瀏覽器產(chǎn)品也未升級,這塊新需求被瀏覽器插件滿足了,那就是Flash。這個部署在億萬瀏覽器里的商業(yè)插件儼然成為事實標(biāo)準(zhǔn)。2005年Adobe巨資收購Macromedia,把Flash收歸旗下,緊接著大幅推廣FLV流媒體和action script語言,很明顯這樁收購可以列為IT并購的經(jīng)典案例,F(xiàn)LV流媒體和Flash游戲風(fēng)靡互聯(lián)網(wǎng),Adobe在新的產(chǎn)業(yè)升級中攫取了大量的利潤。

除了Flash這個商業(yè)產(chǎn)品成為了事實標(biāo)準(zhǔn),W3C還面臨一個尷尬,就是另一個私有擴(kuò)展協(xié)議的制造者—IE。IE當(dāng)時在桌面瀏覽器占有壟斷地位,并且擴(kuò)展了大量的IE Only語法,開發(fā)者完全不知道這些語言是誰定義的。整個Web世界,就被兩家公司微軟+Adobe綁架了。

很多IT巨頭都坐不住了,尤其是蘋果和Google。PC操作系統(tǒng)的世界難有突破,Web瀏覽器被蘋果寄予厚望,而且第一代iPhone只支持網(wǎng)頁,那時還沒有Appstore,Safari是喬布斯非常看重的產(chǎn)品;新貴Google雖然大量贊助Mozilla,但并未對IE的地位產(chǎn)生實質(zhì)影響,收購了YouTube后發(fā)現(xiàn)底層被Adobe控制,也是非常難過,而且Google每年給IE的搜索框和Adoble FLV繳納的費用真不是小數(shù)目。

既然大家都是W3C的主席單位,好吧,我們重新開始做HTML5吧。

是的,HTML5其實就是這么誕生的。那是2007年,IE和Flash由盛轉(zhuǎn)衰的轉(zhuǎn)折點。

HTML5第一階段:Web增強(qiáng)與破壟斷

自HTML5誕生以來,一共經(jīng)歷了兩個階段,分別是Web增強(qiáng)和移動互聯(lián)網(wǎng)。我們先從Web 增強(qiáng)說起。

Web體驗的豐富增強(qiáng)主要表現(xiàn)在:1. WebApp,比如Gmail;2. 流媒體;3. 游戲。我們就這3個方面來講HTML5做了什么。

  1. WebApp:HTML5新增了離線存儲、更豐富的表單(比如Input type=date)、JS線程、socket網(wǎng)絡(luò)、標(biāo)準(zhǔn)擴(kuò)展embed、以及很多CSS3新語法…
  2. 流媒體:HTML5新增了Audio、Video
  3. 游戲:HTML5新增了Canvas、WebGL

當(dāng)然還有Google努力在HTML5中推進(jìn)Header和Section等標(biāo)簽,以利于搜索引擎分析,這些不多述。

HTML5補(bǔ)充流媒體和游戲能力后,加上蘋果強(qiáng)勢拒絕在iOS上引入Flash,成功的遏制了Flash的發(fā)展,然后就該遏制IE私有語法了。

在HTML5標(biāo)準(zhǔn)的升級過程中,蘋果和Google同時也看到了瀏覽器市場重新洗牌的機(jī)會,他們一方面參與HTML5的規(guī)范,一邊在瀏覽器產(chǎn)品上發(fā)力。Apple首先開始大力發(fā)展Safari,建立WebKit開源項目,Mac、iOS、Windows多平臺齊發(fā)力;Google起初是贊助Mozilla開發(fā)Firefox,后來自己開發(fā)了v8引擎,合并WebKit,于2008年正式推出Chrome。“IE的私有規(guī)范+Flash不是標(biāo)準(zhǔn),我們才是標(biāo)準(zhǔn)”這樣的口號在新一代瀏覽器大戰(zhàn)中打響,IE瞬間成為千夫所指的壟斷代表,甚至成了阻礙Web發(fā)展的罪人(當(dāng)時IE6已數(shù)年未更新,并且絲毫不懼Firefox的發(fā)展)。

偏偏微軟此時也出了暈招,推出了一系列即不完整支持規(guī)范又互相不兼容的IE7、8、9、10,徹底失去了開發(fā)者的心。

Adobe的Flash被遏制,與Web霸主的位子擦肩而過;IE的私有標(biāo)準(zhǔn)被遏制,并且造成IE市場份額不停下滑,直到IE最新的移動版本反過來開始支持WebKit私有語法,真是令人唏噓。不知道HTML6是不是該打倒WebKit壟斷了。

HTML5第二階段:移動互聯(lián)網(wǎng)

隨著Chrome和Safari的高歌猛進(jìn),以及IE+Flash的衰落,HTML5告一段落,進(jìn)入了下一個時代——移動互聯(lián)網(wǎng)。HTML5的跨平臺優(yōu)勢在移動互聯(lián)網(wǎng)時代被進(jìn)一步凸顯。HTML5是唯一一個通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平臺的跨平臺語言。Java和Flash都曾夢想這個位置,但夢斷于iOS。此時人們紛紛開始研究基于HTML5開發(fā)跨平臺手機(jī)應(yīng)用。很多人當(dāng)時認(rèn)為,原生應(yīng)用只是過渡,就像當(dāng)年從C/S結(jié)構(gòu)轉(zhuǎn)變?yōu)锽/S結(jié)構(gòu)一樣。而且學(xué)習(xí)Objective-C和Java很費勁,我既然會網(wǎng)頁開發(fā),為何不試試HTML5。

W3C此時成立了Device API工作組,為HTML5擴(kuò)展了Camera、GPS等手機(jī)特有的API,然而麻煩的是,移動互聯(lián)網(wǎng)初期的迭代太快了,手機(jī)OS在不停的擴(kuò)展硬件API,陀螺儀、距離感應(yīng)器、氣壓計。。。每年手機(jī)OS都有大版本更新。而W3C作為一個數(shù)百家會員單位共同決策的組織,從標(biāo)準(zhǔn)草案的提出到達(dá)成一致是非常復(fù)雜的過程,跟不上移動互聯(lián)網(wǎng)初期的快速迭代。

PhoneGap的出現(xiàn),給開發(fā)者打開了一扇窗。很多人期待PhoneGap不停擴(kuò)展API,來補(bǔ)充瀏覽器的不足。Adobe看到PhoneGap仿佛看到了重振江湖地位的希望,但在Adobe收購PhoneGap后,又發(fā)現(xiàn)這個東西可商用性不足,而且開源使得Adobe無法像Flash那樣獲取商業(yè)利益,于是就把PhoneGap捐給了Apache,改名為Cordova。

因為各種原因,Cordova的定位最終沒有成為瀏覽器的強(qiáng)化,而走向了混合式開發(fā)。基于當(dāng)時的背景,他們認(rèn)為原生是不可替代的,“原生+HTML5”的混合模式更有意義。所以現(xiàn)在Cordova的使用模型是“原生工程師+HTML5工程師”一起協(xié)作完成App。

這時Facebook加入了W3C,牽頭成立了Mobile Web工作組。Facebook是混Web圈的,并且在手機(jī)OS上沒有自己的領(lǐng)地,他不喜歡被蘋果和Google掌控的原生應(yīng)用生態(tài)系統(tǒng)。Mobile Web這個工作組的重要目標(biāo)就是讓HTML5開發(fā)的網(wǎng)頁應(yīng)用達(dá)到原生應(yīng)用的體驗。然而,事與愿違,它不努力也就算了,結(jié)果是努力了卻失敗了。2012年,F(xiàn)acebook放棄了HTML5的新聞充斥了全世界的IT媒體,HTML5瞬間被打入冷宮。

Facebook為何放棄HTML5?核心是當(dāng)時基于HTML5真的做不出好的移動App。對比Twritter等競爭對手的原生App,F(xiàn)acebook的HTML5版本實在無法讓用戶滿意。比如Push功能,到現(xiàn)在HTML5的推送和原生的推送體驗差距依然巨大,更不用說HTML5應(yīng)用的頁面切換白屏、下拉刷新/側(cè)滑菜單不流暢等眾多問題?粗こ處熭p松實現(xiàn)搖一搖、二維碼、語音輸入、分享到朋友圈等功能,更是讓HTML5工程師感覺自己站錯了隊。

即使Facebook不喜歡被控制,也不能拿被用戶拋棄來冒險。而且Facebook并沒有掌握關(guān)鍵點—手機(jī)瀏覽器內(nèi)核。如果瀏覽器不跟上,徒然定一堆標(biāo)準(zhǔn)草案落不了地。

而瀏覽器在手機(jī)上的表現(xiàn)是什么呢?先看Google,Chrome性能雖高,但Android上的瀏覽器卻并非Chrome,而是WebKit改出來的一個蹩腳的Android瀏覽器;再看蘋果,iOS上不允許其他瀏覽器引擎上架App Store,而且其他使用Safari引擎的應(yīng)用也無法調(diào)用蘋果自己的JavaScript加速引擎Nitro。結(jié)果是蘋果和Google不但不在瀏覽器上積極實現(xiàn)HTML5關(guān)于移動App所需的規(guī)范,反而對HTML5做出種種限制。

不管是當(dāng)時硬件能力不足,還是手機(jī)OS廠商的故意限制,總之結(jié)果就是:在移動互聯(lián)網(wǎng)的初期,一定是原生應(yīng)用生態(tài)系統(tǒng)的天下,iOS和Android首先自己的地盤穩(wěn)固后,產(chǎn)業(yè)才會向下個階段升級。

Facebook也好,PhoneGap也好,想在移動互聯(lián)網(wǎng)初期就分一杯羹是分不到的,但堅持下來,機(jī)會往往會出現(xiàn)。

HTML5這回真的來了

終于,在2014年10月底,W3C宣布HTML5正式定稿。這個時間,不晚不早,硬件性能更強(qiáng)、手機(jī)OS迭代速度下降。

隨著HTML5標(biāo)準(zhǔn)定稿,一切紛爭將告一段落,現(xiàn)在,屬于HTML5的時代到來了。

有人說,光標(biāo)準(zhǔn)定稿沒用啊,配套起來了嗎?HTML5做的應(yīng)用究竟能否匹敵原生App?答案是,HTML5不但可以匹敵原生App,甚至它天然的很多特性超越了原生App。

我們先談?wù)凥TML5原來不如原生應(yīng)用的地方,業(yè)內(nèi)俗稱HTML5有“性工能”障礙。即HTML5性能不如原生、開發(fā)工具不如原生、能力調(diào)用不如原生。

\

這幾個問題導(dǎo)致開發(fā)者無法使用HTML5做出與原生一樣的App。然而,不管是硬件升級還是OS廠商策略變化,以及相關(guān)軟件技術(shù)的成熟,已解決了HTML5的“性工能”障礙。

1.  硬件升級

2011年,iPhone 4s的CPU是A5,現(xiàn)在iPhone 6是A8,按蘋果的歷次發(fā)布會的說法,速度共提升了7.5倍。這3年間7.5倍的速度提升,抹平了太多HTML5的性能問題。

2.  蘋果、Google的策略變化

Google在2013年底發(fā)布的Android 4.4,內(nèi)置的Webview不再是蹩腳的Android WebKit瀏覽器,而是Chromium,性能大幅提升。從最新的Android 5.0開始,Webview可以通過Google Play Store實時更新,和Chrome的升級保持一致,用戶就可以不刷機(jī)享受到最新的瀏覽器引擎;再看Apple方面,2012年iPhone 5發(fā)布后,HTML5在iOS上的表現(xiàn)已令人滿意,Safari獨家的JavaScript加速引擎Nitro不再那么重要,不過在iOS 8發(fā)布后,蘋果還是很識趣地取消了三方程序調(diào)用Nitro的限制,現(xiàn)在任意瀏覽器或應(yīng)用調(diào)用iOS的UIWebview都可以利用Nitro加速,這樣在前端使用JS做大型運算也成為可能。兩大手機(jī)操作系統(tǒng)霸主和瀏覽器巨頭的態(tài)度發(fā)生了變化,使得HTML5在手機(jī)上的發(fā)展不再受限,而且這個變化不可逆只能繼續(xù)向前,這種變化勢必會產(chǎn)生深遠(yuǎn)的影響。

3.  軟件技術(shù)的成熟

PhoneGap的發(fā)展雖然放緩了,但其他產(chǎn)品技術(shù)卻成熟了。2014年的iWeb大會上,眾多廠商的產(chǎn)品提供了面向開發(fā)者免費或開源的HTML5性工能障礙的解決方案。

(注:作者作為從業(yè)人員,也會在分析各種方案時提到我們公司的方案,但作者會客觀不夸張的陳述方案,而且該方案是純免費的,沒有商業(yè)銷售嫌疑。)

DCloud公司在iWeb大會上發(fā)布了系統(tǒng)的HTML5“性工能缺失”的解決方案,包括:

a)  性能:提升HTML5性能的手機(jī)端引擎,讓側(cè)滑菜單、下拉刷新等動態(tài)交互卡頓的問題得以解 決;

b)  工具:HTML5開發(fā)IDE產(chǎn)品HBuilder, 超快的編程利器;

c)  能力:把40萬原生API封裝成JavaScript對象,以解決HTML5能力不足問題的Native.js技術(shù);

d)  最接近原生體驗的高性能框架:MUI框架,體積只有幾十K,加載、運行遠(yuǎn)快于一般框架;谠摲桨搁_發(fā)的HTML5應(yīng)用完全可以達(dá)到原生App的功能和體驗。

\
使用HBuilder開發(fā)HTML5應(yīng)用

英特爾公司發(fā)布了Crosswalk引擎,可以讓Android 4.0 - 4.3的手機(jī)上的應(yīng)用打包Chromium引擎而不是Android WebKit。畢竟目前市場上存在大量Android 4.0 - 4.3的手機(jī),同時統(tǒng)一的WebView也避免了兼容性的煩惱。

在專業(yè)方向上很多公司也做出了不錯的成績。觸控的Cocos2d-html5、Egret runtime和Ludei CocoonJS強(qiáng)化了Canvas的表現(xiàn),讓HTML5游戲體驗更好;UC、獵豹等手機(jī)瀏覽器都強(qiáng)化了音視頻播放的表現(xiàn)。

不管是硬件升級、軟件成熟,還是操作系統(tǒng)廠商策略變化,都在強(qiáng)力推動HTML5的爆發(fā)。

不過要注意,我說的HTML5爆發(fā),不是指手機(jī)瀏覽器會替代桌面成為應(yīng)用入口。有人說HTML5不好,因為用戶討厭打開瀏覽器輸入URL的過程。我想說這種想法是對HTML5的片面理解。HTML5!=傳統(tǒng)瀏覽器,雖然編程語言還是HTML、Javascript、CSS,但發(fā)行方式絕不是傳統(tǒng)網(wǎng)站那么簡單。HTML5應(yīng)用的入口,反而很少是啟動瀏覽器輸入URL,它可以是存在于手機(jī)桌面的圖標(biāo)、也可以來自超級App(如微信朋友圈)、以及搜索引擎、應(yīng)用市場、廣告聯(lián)盟。。。到處都是它的入口。它的入口,比原生App更多。

原生App的顛覆

HTML5的“性工能”障礙得到解決,可以接近原生App的效果,所以它就可以替代原生App嗎?很多人認(rèn)為,即使HTML5會發(fā)展的比現(xiàn)在好,也將是與原生App各占一部分市場的格局,要求不高的長尾應(yīng)用會使用HTML5,而主流應(yīng)用仍是原生App的天下。

關(guān)鍵詞:HTML5原生App