2007年W3C(萬維網聯盟)立項HTML5,直至2014年10月底,這個長達八年的規範終於正式封稿。
過去這些年,HTML5顛覆了PC互聯網的格局,優化了移動互聯網的體驗,接下來,HTML5將顛覆原生App世界。 這聽起來有點危言聳聽,但若認真分析HTML5的發展史,你會發現,這個世界的發展趨勢確實就是這樣。
熟知歷史才能預知未來,先讓我們來看看HTML5為什麼誕生、這8年是怎麼過來的。
一、 HTML5的誕生
自W3C于1999年發佈HTML4後,Web世界快速發展,一片繁榮。 人們一度認為HTML標準不需要升級了。 一些致力於發展Web App的公司另行成立了WHATWG組織,直到2007年,W3C從WHATWG接手相關工作,重新開始發展HTML5。
HTML5的發展史,有使用者的需求在推動,有技術開發者的需求在推動,更有巨大的商業利益在推動。
在互聯網的早期,對使用者而言,能打開瀏覽器接入到互聯網世界就是一個神奇的事情,但互聯網發展到2005年前後,開始出現下一個變化,就是寬頻互聯。
隨著寬頻的普及和電腦性能的增強,人們不再滿足于單純的通過互聯網看新聞、收發郵件,消耗更高頻寬的娛樂產品開始出現,就是流視頻和網頁遊戲。 其實視頻和遊戲是古老的需求,在互聯網不普及的時候,需求的滿足方式是離線傳輸的VCD和遊戲光碟;後來互聯網逐漸普及,人們更改了使用方式,通過下載軟體+本地媒體播放機來看視頻,下載體積較大的端遊玩遊戲。
但是對消費者體驗更好的新方式還是出現並顛覆了以前的一切,那就是流媒體和網頁遊戲。 Youtube等公司把握住潮流飛速崛起,各種頁游公司也如雨後春筍。
但是HTML標準沒有把握住產業的變化及時演進,瀏覽器產品也未升級,這塊新需求被瀏覽器外掛程式滿足了,那就是Flash。 這個部署在億萬瀏覽器裡的商業外掛程式儼然成為事實標準。 2005年Adobe鉅資收購Macromedia,把Flash收歸旗下,緊接著大幅推廣FLV流媒體和action script語言,很明顯這樁收購可以列為IT並購的經典案例,FLV流媒體和Flash遊戲風靡互聯網, Adobe在新的產業升級中攫取了大量的利潤。
除了Flash這個商業產品成為了事實標準,W3C還面臨一個尷尬,就是另一個私有擴展協定的製造者—IE。 IE當時在桌面瀏覽器佔有壟斷地位,並且擴展了大量的IE Only語法,開發者完全不知道這些語言是誰定義的。 整個web世界,就被兩家公司微軟+Adobe綁架了。
很多IT巨頭都坐不住了,尤其是蘋果和Google。 PC作業系統的世界難有突破,Web瀏覽器被蘋果寄予厚望,而且第一代iPhone只支援網頁,那時還沒有Appstore,Safari是約伯斯非常看重的產品;新貴Google雖然大量贊助Mozilla, 但並未對IE的地位產生實質影響,收購了YouTube後發現底層被Adobe控制,也是非常難過,而且Google每年給IE的搜索框和Adoble FLV繳納的費用真不是小數目。
既然大家都是W3C的主席單位,好吧,我們重新開始做HTML5吧。
是的,HTML5其實就是這麼誕生的。 那是2007年,IE和Flash由盛轉衰的轉捩點。
二、 HTML5第一階段: Web 增強與破壟斷
自HTML5誕生以來,一共經歷了兩個階段,分別是Web增強和移動互聯網。 我們先從Web 增強說起。
web體驗的豐富增強主要表現在:1. webapp,比如gmail;2. 流媒體;3. 遊戲。 我們就這3個方面來講HTML5做了什麼。
1. webApp
HTML5新增了離線存儲、更豐富的表單(比如Input type=date)、js執行緒、socket王樂、標準擴展embed、以及很多css3新語法...
2. 流媒體
HTML5新增了audio、video
3. 遊戲
HTML5新增了canvas、webgl
當然還有Google努力在HTML5中推進Header和Section等標籤,以利於搜尋引擎分析,這些不多述。
HTML5補充流媒體和遊戲能力後,加上蘋果強勢拒絕在iOS上引入Flash,成功的遏制了Flash的發展,然後就該遏制IE私有語法了。
在HTML5標準的升級過程中,蘋果和Google同時也看到了瀏覽器市場重新洗牌的機會,他們一方面參與HTML5的規範,一邊在瀏覽器產品上發力。 Apple首先開始大力發展Safari,建立WebKit開源專案,Mac、iOS、Windows多平臺齊發力; Google起初是贊助Mozilla開發Firefox,後來自己開發了v8引擎,合併WebKit,于2008年正式推出Chrome。 「IE的私有規範+Flash不是標準,我們才是標準」這樣的口號在新一代瀏覽器大戰中打響,IE瞬間成為千夫所指的壟斷代表,甚至成了阻礙Web發展的罪人(當時IE6已數年未更新,並且絲毫不懼Firefox的發展)。
偏偏微軟此時也出了暈招,推出了一系列即不完整支援規範又互相不相容的IE7、8、9、10,徹底失去了開發者的心。
Adobe的Flash被遏制,與Web霸主的位子擦肩而過;IE的私有標準被遏制,並且造成IE市場份額不停下滑,直到IE最新的移動版本反過來開始支援WebKit私有語法,真是令人唏噓。 不知道HTML6是不是該打倒WebKit壟斷了。
三、 HTML5第二階段: 移動互聯網
隨著Chrome和Safari的高歌猛進,以及IE+Flash的衰落,HTML5告一段落,進入了下一個時代——移動互聯網。 HTML5的跨平臺優勢在移動互聯網時代被進一步凸顯。 HTML5是唯一一個通吃PC、Mac、iPhone、iPad、Android、Windows Phone等主流平臺的跨平臺語言。 JAVA和Flash都曾夢想這個位置,但夢斷于iOS。 此時人們紛紛開始研究基於HTML5開發跨平臺手機應用。 很多人當時認為,原生應用只是過渡,就像當年從C/S結構轉變為B/S結構一樣。 而且學習Objective-C和JAVA很費勁,我既然會網頁開發,為何不試試HTML5。
W3C此時成立了Device API工作組,為HTML5擴展了Camera、GPS等手機特有的API,然而麻煩的是,移動互聯網初期的反覆運算太快了,手機OS在不停的擴展硬體API,陀螺儀、距離感應器、氣壓計。。。 每年手機OS都有大版本更新。 而W3C作為一個數百家會員單位共同決策的組織,從標準草案的提出到達成一致是非常複雜的過程,跟不上移動互聯網初期的快速反覆運算。
PhoneGap的出現,給開發者打開了一扇窗。 很多人期待PhoneGap不停擴展API,來補充瀏覽器的不足。 Adobe看到PhoneGap仿佛看到了重振江湖地位的希望,但在Adobe收購PhoneGap後,又發現這個東西可商用性不足,而且開源使得Adobe無法像Flash那樣獲取商業利益, 於是就把PhoneGap捐給了Apache,改名為Cordova。
因為各種原因,Cordova的定位最終沒有成為瀏覽器的強化,而走向了混合式開發。 基於當時的背景,他們認為原生是不可替代的,「原生+HTML5」的混合模式更有意義。 所以現在Cordova的使用模型是「原生工程師+HTML5工程師」一起協作完成App。
這時Facebook加入了W3C,牽頭成立了Mobile Web工作組。 Facebook是混Web圈的,並且在手機OS上沒有自己的領地,他不喜歡被蘋果和Google掌控的原生應用生態系統。 Mobile Web這個工作組的重要目標就是讓HTML5開發的網頁應用達到原生應用的體驗。 然而,事與願違,它不努力也就算了,結果是努力了卻失敗了。 2012年,Facebook放棄了HTML5的新聞充斥了全世界的IT媒體,HTML5瞬間被打入冷宮。
Facebook為何放棄HTML5?核心是當時基於HTML5真的做不出好的移動App。 對比Twritter等競爭對手的原生App,Facebook的HTML5版本實在無法讓使用者滿意。 比如Push功能,到現在HTML5的推送和原生的推送體驗差距依然巨大,更不用說HTML5應用的頁面切換白屏、下拉刷新/側滑功能表不流暢等眾多問題。 看著原生工程師輕鬆實現搖一搖、二維碼、語音輸入、分享到朋友圈等功能,更是讓HTML5工程師感覺自己站錯了隊。
即使Facebook不喜歡被控制,也不能拿被使用者拋棄來冒險。 而且Facebook並沒有掌握關鍵點—手機瀏覽器內核。 如果瀏覽器不跟上,徒然定一堆標準草案落不了地。
而瀏覽器在手機上的表現是什麼呢?先看Google,Chrome性能雖高,但Android上的瀏覽器卻並非Chrome,而是WebKit改出來的一個蹩腳的Android瀏覽器;再看蘋果, iOS上不允許其他瀏覽器引擎上架App Store,而且其他使用Safari引擎的應用也無法調用蘋果自己的JavaScript加速引擎Nitro。 結果是蘋果和Google不但不在瀏覽器上積極實現HTML5關於移動App所需的規範,反而對HTML5做出種種限制。
不管是當時硬體能力不足,還是手機OS廠商的故意限制,總之結果就是:在移動互聯網的初期,一定是原生應用生態系統的天下,iOS和Android首先自己的地盤穩固後,產業才會向下個階段升級。
Facebook也好,PhoneGap也好,想在移動互聯網初期就分一杯羹是分不到的,但堅持下來,機會往往會出現。
四、 HTML5這回真的來了
終於,在2014年10月底,W3C宣佈HTML5正式定稿。 這個時間,不晚不早,硬體性能更強、手機OS反覆運算速度下降。
隨著HTML5標準定稿,一切紛爭將告一段落,現在,屬於HTML5的時代到來了。
有人說,游標准定稿沒用啊,配套起來了嗎? HTML5做的應用究竟能否匹敵原生App?答案是,HTML5不但可以匹敵原生App,甚至它天然的很多特性超越了原生App。
我們先談談HTML5原來不如原生應用的地方,業內俗稱HTML5有「性工能」障礙。 即HTML5性能不如原生、開發工具不如原生、能力調用不如原生。
20141106095157211.jpg
這幾個問題導致開發者無法使用HTML5做出與原生一樣的App。 然而,不管是硬體升級還是OS廠商策略變化,以及相關軟體技術的成熟,已解決了HTML5的「性工能」障礙。
1. 硬體升級
2011年,iPhone 4s的CPU是A5,現在iPhone 6是A8,按蘋果的歷次發佈會的說法,速度共提升了7.5倍。 這3年間7.5倍的速度提升,抹平了太多HTML5的性能問題。
2. 蘋果、Google的策略變化
Google在2013年底發佈的Android 4.4,內置的Webview不再是蹩腳的Android WebKit瀏覽器,而是Chromium,性能大幅提升。 從最新的Android5.0開始,Webview可以通過Google Play Store即時更新,和Chrome的升級保持一致,使用者就可以不刷機享受到最新的瀏覽器引擎;再看Apple方面,2012年iPhone 5發佈後, HTML5在iOS上的表現已令人滿意,Safari獨家的JavaScript加速引擎Nitro不再那麼重要,不過在iOS 8發佈後,蘋果還是很識趣地取消了三方程式調用Nitro的限制, 現在任意瀏覽器或應用調用iOS的UIWebview都可以利用Nitro加速,這樣在前端使用JS做大型運算也成為可能。 兩大手機作業系統霸主和瀏覽器巨頭的態度發生了變化,使得HTML5在手機上的發展不再受限,而且這個變化不可逆只能繼續向前,這種變化勢必會產生深遠的影響。
3. 軟體技術的成熟
PhoneGap的發展雖然放緩了,但其他產品技術卻成熟了。 2014年的iWeb大會上,眾多廠商的產品提供了面向開發者免費或開源的HTML5性工能障礙的解決方案。
(注:編者作為從業人員,也會在分析各種方案時提到我們公司的方案,但編者會客觀不誇張的陳述方案,而且該方案是純免費的,沒有商業銷售嫌疑。 )
DCloud公司在iWeb大會上發佈了系統的HTML5「性工能缺失」的解決方案,包括:
a) 性能:提升HTML5性能的手機端引擎,讓側滑功能表、下拉刷新等動態交互卡頓的問題得以解決;
b) 工具:HTML5開發IDE產品HBuilder, 超快的程式設計利器;
c) 能力:把40萬原生API封裝成JavaScript物件,以解決HTML5能力不足問題的Native.js技術;
d) 最接近原生體驗的高性能框架:MUI框架,體積只有幾十K,載入、運行遠快于一般框架。
基於該方案開發的HTML5應用完全可以達到原生App的功能和體驗。
使用HBuilder開發HTML5應用
英特爾公司發佈了Crosswalk引擎,可以讓Android 4.0-4.3的手機上的應用打包Chromium引擎而不是Android WebKit。 畢竟目前市場上存在大量Android 4.0-4.3的手機,同時統一的webview也避免了相容性的煩惱。
在專業方向上很多公司也做出了不錯的成績。 觸控的Cocos2d-html5、Egret runtime和Ludei CocoonJS強化了Canvas的表現,讓HTML5遊戲體驗更好; UC、獵豹等手機瀏覽器都強化了音視頻播放的表現。
不管是硬體升級、軟體成熟,還是作業系統廠商策略變化,都在強力推動HTML5的爆發。
不過要注意,我說的HTML5爆發,不是指手機瀏覽器會替代桌面成為應用入口。 有人說HTML5不好,因為使用者討厭打開瀏覽器輸入URL的過程。 我想說這種想法是對HTML5的片面理解。 HTML5!=傳統瀏覽器,雖然程式設計語言還是HTML、JAVAscript、CSS,但發行方式絕不是傳統網站那麼簡單。 HTML5應用的入口,反而很少是啟動瀏覽器輸入URL,它可以是存在於手機桌面的圖示、也可以來自超級App(如微信朋友圈)、以及搜尋引擎、應用市場、廣告聯盟。。。 到處都是它的入口。 它的入口,比原生App更多。
五、原生App的顛覆
HTML5的「性工能」障礙得到解決,可以接近原生App的效果,所以它就可以替代原生App嗎?很多人認為,即使HTML5會發展的比現在好,也將是與原生App各占一部分市場的格局,要求不高的長尾應用會使用HTML5, 而主流應用仍是原生App的天下。
但我認為這樣的想法很危險,就像Apple成立前,HP的高層告訴沃茲:誰會在家裡擺一台電腦呢?未來HTML5肯定會顛覆原生App。 「性工能」障礙的消除,只是HTML5的劣勢被削弱,但劣勢被消除後,它的優勢就會大放異彩,HTML5的優勢是什麼?我們分別就開發者和最終使用者來看。
HTML5對開發者的7大優勢
跨平臺:
在多屏年代,開發者的痛苦指數非常高,人人都期盼HTML5能扮演救星。 多套代碼、不同技術工種、業務邏輯同步,這是折磨人的過程。 有點類似個人電腦早期世界,那個時候的每家電腦都有自己的作業系統和程式設計語言,開發者疲于做不同版本,其實DOS的盛行也很大程度是因為開發者實在沒精力給其他電腦寫程式。 跨平臺技術在早期大多因為性能問題夭折,但中後期硬體能力增強後又會佔據主流,因為跨平臺確實是剛需。
快速反覆運算:
移動互聯網是一個快魚吃慢魚的時代,誰對使用者的需求滿足的更快,誰的試錯成本更低,誰就擁有巨大的優勢。 互聯網產品大多免費、且有網路效應,後入者搶奪使用者的難度非常大。 使用原生開發,從招聘、開發、上線各個環節的效率都慢一倍以上,而且參與的人越多,溝通效率往往拖慢不止一倍。
持續交付:
很多人有這樣的體會,一個原生應用上線Appstore,突然有一個大bug,只好連夜加班修復,然後靜靜等待2周或更長時間的Apple審核,這2個星期被使用者的塗抹淹死,市場上一片差評,使用者大量流失。 等新應用被審核上線了,使用者已經卸載了。 但是,HTML5沒有這些問題,你可以即時更新,有問題立即回應。
大幅下降成本:
創業者融資並不容易,如何花錢更高效非常重要。 如果你使用原生開發的App和競爭對手使用HTML5開發的App沒什麼區別,但你的開發成本高出一倍,我相信沒有投資人會喜歡給你投錢。
開源生態系統發達:
HTML5前端是開放的正回饋迴圈生態系統,大量的開源庫可以使用,開發應用變得更輕鬆、更敏捷,當然這也體現在了快速反覆運算和成本下降上。 不過更重要的是,這種開放的正回饋迴圈生態系統未來的生命力是比原生生態系統更強勁的。
開放的資料交換:
HTML是以page為單元開放代碼的,它無需專門開發SDK,只要不混淆,就能與其他應用交互資料。 開發者可以讓手機搜尋引擎很容易檢索到自己的資料, 也更容易通過跨應用協作來滿足最終使用者需求。
更容易推廣、更容易爆發:
導流入口多:HTML5應用導流非常容易,超級App(如微信朋友圈)、搜尋引擎、應用市場、瀏覽器,到處都是HTML5的流量入口。 而原生App的流量入口只有應用市場。 聰明的HTML5開發者當然會玩轉各種流量入口從而取得更強的優勢。
流量大:前段時間微信朋友圈風靡一時《神經貓》,這個遊戲如果放到Appstore,絕對沒有那麼多流量,超級App帶來的流量,遠大於原生應用市場。 假如微信允許遊戲在桌面創建快捷方式、假如遊戲後續升級解決持續娛樂問題,未來不可想像。
導流效率高:除了入口多、流量大,導流效率高也不可忽視,誰都知道:頁游和端游打同樣的廣告,廣告變使用者的轉化率,頁游遠遠高於端游。
可精准導流到二級頁:我們都知道搜尋引擎可以直接進入到
HTML5對最終使用者的3大優勢
大幅降低使用門檻
為什麼流媒體會替代下載視頻成為主流?為什麼頁游會如此火爆?只因使用者太「懶」。 讓使用者更方便的滿足需求,有時效果好于更多的滿足需求。
使用者眼睛看到一個興趣點,點擊後,就應該立即開始滿足使用者需求。 比如流媒體可以立即看,頁游可以立即玩。 而目前的原生應用市場,使用者需要這樣操作:選一個應用、等待下載、確認許可權、等待安裝,然後點擊打開。 這樣糟糕的體驗遲早要被顛覆。
不管是App、遊戲還是音視頻,未來都將隨選即用。 誰先滿足使用者這個需求,誰就制勝。
即時更新、差量更新的優秀體驗
HTML5應用可以繞開應用市場的限制進行自主即時更新,使用者可以快速享受新服務。
而且這種更新完全可以是差量更新,比如某個HTML頁面或某個js檔有問題,只更新這個幾k的小檔就可以了,這比原生應用的更新體驗好太多。
跨應用的使用體驗
目前手機應用切換是以桌面或工作管理員為中心的,但事實上這些中心很影響效率和體驗。 使用者想出差三亞,先打開去哪App訂票,然後切回桌面,再找到並打開天氣App,搜索輸入三亞,再切到桌面,找到並打開航旅縱橫App,輸入航班號值機,哦對了,航班號多少來著,再切到桌面,找到並打開去哪App看航班號, 最後找到並打開租車App,輸入租車地點,然後再切回桌面。。。
在原生應用體系下,使用者只能這樣。 但在HTML5體系下,他不需要切回桌面,他可以在App間方便的直接跳來跳去,而不是使用一個一個孤島App;他更不用重複錄入資料,應用間可以方便的互相傳遞資料。
這種模式需要一點想像力,但未來遲早會來。
分析至此,我們可以明顯的看出,不管是站在最終使用者角度、還是站在開發者角度,HTML5必將取代原生應用當前的位置。 並由此引發一系列顛覆。
六、 還有什麼會被改變?
HTML5的爆發,原生App生態系統的顛覆,是一場產業革命,很多角色都會受到影響,我們來預測一番。
新型HTML5引擎戰火將燒起
標準的HTML5引擎並不能解決HTML5的所有問題,擁有大流量入口的互聯網巨頭,莫不在思考內嵌更優秀的增強引擎。 騰訊推出了X5瀏覽器引擎,就是看中這個機會。 目前各路瀏覽器廠商、應用市場廠商、甚至rom廠商,都在努力整合更優質的瀏覽器引擎。 假使微信內嵌的Webview可以運行更優秀的canvas遊戲、假使360手機助手可以發行隨選即用的HTML5應用並且能力體驗與原生一致、 假使小米rom內置更強大的webview使得所有HTML5應用在小米手機上運行的更流暢。。。
一個巨頭開始行動,所有巨頭都會聞風而動,沒錯,這場戰役會是移動互聯網世界的二次世界大戰。
應用發行市場將洗牌
由於超級App的巨大流量能輕易成為HTML5應用的入口,並且會形成大者更大的效應,傳統的應用商店、甚至線下預裝,這些流量不足和效率偏低的發行模式將被擠出市場主流。 本身也是超級App的大流量應用商店,如果轉型得當,也將以發行HTML5應用為主。
廣告和統計市場
原生的廣告和統計SDK供應商會面臨尬尷,Google、百度等基於網頁的廣告和統計服務會取得更大的優勢。 開發者不再需要打包SDK,引入一個Script即可。
開源技術將在移動互聯網領域更加流行
HTML的開放性造就了大量的開源產品,也反向促進了HTML的繁榮。 在Github上有大量的JS框架,而原生的開原始程式碼數量相比甚少。 而未來移動互聯網世界將因為開源而發展的更迅速,這裡也同樣存在類Github廠商的機遇。
開發工具的變化
早期HTML只需要記事本寫幾個Tag,中期的HTML、JS、CSS比較複雜,需要更高級的文字編輯器,但HTML5到來後,它的代碼量、複雜度、開發模型將與原生開發看齊,需要類似XCode、 Eclipse等專業的IDE工具來解決開發、調試的問題。 一些以會使用記事本寫代碼為榮的開發者,將面臨思路轉換甚至被更高效的開發者淘汰。
性能分析調優
目前很多針對原生應用的性能分析調優工具或服務,未來也面臨轉型,HTML5應用的性能分析調優是另一個世界。
混淆與產權保護
HTML5是開放代碼的,好處也帶來弊端,有些東西開發者希望暴露,但有些東西開發者希望保護。 混淆技術就變得更有商業機會。 PC Web上Gmail的混淆就做的不錯。 除了JS混淆,離線資料加密相信也有不少空間。
安全廠商的新機會
HTML5的強大會引發很多安全問題,並且解決思路與原生不一樣,業內有可能會出現新的安全廠商領導者。
七、 結語
寫到結尾,感覺話題有點大了。 其實未來如何發展是沒人能準確預測的,變數非常多。 但我想讓使用者和開發者都更方便的趨勢是不會錯的。
我在這裡抛磚引玉,歡迎大家一起討論,但我希望我們能理智的分析,在爭議中提煉真知,而不是未經思考或驗證僅因為害怕被顛覆而無謂的亂噴。
也祝願大家在HTML5的浪潮中,把握住機遇,享受下坐在風口當豬的感覺:)