2007年W3C(萬維網聯盟)立項HTML5,直至2014年10月底,這個長達八年的規範終於正式定稿。接下來,HTML5將真正開始顛覆原生 (Native) App 世界。雖然這種危言聳聽已經讓人有點厭煩。可是若是回顧HTML這些年走過的路,你就不會再懷疑它的能量。
Adobe的Flash被遏制,與Web霸主的位子擦肩而過;IE的私有標準被遏制,而且形成IE市場份額不停下滑,直到IE最新的移動版本反過來開始支持WebKit語法,真是使人唏噓。不知道HTML6是否是該打倒WebKit壟斷。
3、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也好,想在移動互聯網初期就分一杯羹是分不到的,但堅持下來,機會每每會出現。
4、HTML5 這回真的來了
HTML5在這個時間定稿,不晚不早,硬件性能更強、手機OS迭代速度降低。隨着HTML5標準定稿,一切紛爭將告一段落,如今,屬於HTML5的時代 到來了。這個曾讓人滿懷但願,又被Facebook等衆多滿懷但願的開發者放棄的技術,如今會告訴你們,曾經讓各位失望的緣由,如今已經不存在了!這聽起 來有些驚人,你們不由要問:是真的嗎?讓咱們細細分析。
業內俗稱HTML5有「性功能」障礙。即HTML5性能不如原生、開發工具不如原生、能力調用不如原生。
這幾個問題致使開發者沒法使用HTML5作出與原生同樣的App。然而,無論是硬件升級仍是OS 廠商策略變化,以及相關軟件技術的成熟,已解決了HTML5的「性工能」障礙。
移動端硬件軍備競賽2011年,iPhone 4s的CPU是A5,如今iPhone 6是A8,按蘋果的歷次發佈會的說法,速度共提高了7.5 倍。這3年間7.5 倍的速度提高,抹平了太多HTML5的性能問題。
蘋果、Google的策略變化,Google在2013年末發佈的Android 4.4,內置的Webview再也不是蹩腳的Android WebKit瀏覽器,而是 Chromium。2012年iPhone 5發佈後,HTML5在iOS 上的表現已使人滿意,Safari 獨家的JavaScript 加速引擎Nitro再也不那麼重要,不過在iOS 8發佈後,蘋果仍是很識趣地取消了三方程序調用Nitro的限制,如今任意瀏覽器或應用調用iOS的UIWebview均可以利用Nitro加速。兩大手 機操做系統霸主和瀏覽器巨頭的態度發生了變化,使得HTML5在手機上的發展再也不受限,並且這個變化不可逆只能繼續向前,這種變化勢必會產生深遠的影響。
軟件技術的成熟PhoneGap的發展雖然放緩,但其餘產品技術卻成熟了。2014年的iWeb大會上,衆多廠商的產品提供了面向開發者免費或開源的HTML5性工能障礙的解決方案。
咱們都知道瀏覽器的默認控件樣式和原生控件樣式差異很大,一個高性能的、樣式體驗與原生控件同樣的UI框架是很是重要的,以前jQuery Mobile等產品的因性能不足,因此難當此任。咱們公司在iWeb大會上發佈了系統的HTML5 「性工能缺失」的解決方案,包括解決HTML5性能問題的手機端引擎、超快的HTML5 開發IDE產品HBuilder、還有把40 萬原生API 封裝成JavaScript對象,以解決 HTML5 能力不足問題的Native.js 技術。
英特爾公司發佈了Crosswalk引擎,可讓Android 4.0-4.3的手機上的應用打包Chromium引擎而不是Android WebKit。雖然說將來 Android 4.4 會佔據更多市場份額,但目前主流的Android手機的系統版本畢竟仍是 4.一、4.2。
在專業方向上不少公司也作出了不錯的成績。觸控的Cocos2d-html五、Egret runtime和Ludei CocoonJS強化了Canvas的表現,讓 HTML5遊戲體驗更好;UC、獵豹等手機瀏覽器也強化了音視頻播放的表現。
無論是硬件升級、軟件成熟,仍是操做系統廠商策略變化,都在強力推進HTML5的爆發。
不過要注意,我說的HTML5爆發,不是指手機瀏覽器爆發。有人說HTML5很差,由於用戶討厭打開瀏覽器輸入URL 的過程。我想說這種想法是對HTML5的片面理解。HTML5!=傳統瀏覽器,雖然編程語言仍是HTML、Javascript、CSS,但發行方式毫不 是傳統網站那麼簡單。HTML5 應用的入口,反而不多是啓動瀏覽器輸入URL,它能夠是存在於手機桌面的圖標、也能夠來自超級App(如微信朋友圈)、以及
搜索引擎、應用市場、廣告聯 盟。處處都是它的入口。它的入口,比原生App更多。
5、原生App的顛覆
HTML5的「性工能」障礙獲得解決,能夠接近原生App的效果,因此它就能夠替代原生App嗎?不少人認爲,即便HTML5會發展的比如今好,也將是與原生App各佔一部分市場的格局,要求不高的長尾應用會使用HTML5,而主流應用還是原生App的天下。
但我認爲這樣的想法很危險,就像HP的高層告訴沃茲:誰會在家裏擺一臺電腦呢?將來HTML5確定會顛覆原生App。「性工能」 障礙的消除,只是HTML5的劣勢被削弱,但劣勢被消除後,它的優點就會大放異彩,HTML5的優點是什麼?對開發者來講:
跨平臺 在多屏年代,開發者的痛苦指數很是高,人人都期盼HTML5 能扮演救星。多套代碼、不一樣技術工種、業務邏輯同步,這是折磨人的過程。有點相似我的電腦早期世界,那個時候的每家電腦都有本身的操做系統和編程語言,開 發者疲於作不一樣版本,其實 DOS 的盛行也很大程度是由於開發者實在沒精力給其餘電腦寫程序。跨平臺技術在早期大多由於性能問題夭折,但中後期硬件能力加強後又會佔據主流,由於跨平臺確實 是剛需。
快速迭代 移動互聯網是一個快魚吃慢魚的時代,誰對用戶的需求知足的更快,誰的試錯成本更低,誰就擁有巨大的優點。互聯網產品大多免費、且有網絡效應,後入者搶奪用 戶的難度很是大。使用原生開發,從招聘、開發、上線各個環節的效率都慢一倍以上,並且參與的人越多,溝通效率每每拖慢不止一倍。
減低成本 創業者融資並不容易,如何花錢更高效很是重要。若是你使用原生開發的App和競爭對手使用HTML5開發的App沒什麼區別,但你的開發成本高出一倍,我相信沒有投資人會喜歡給你投錢。
導流入口多 HTML5應用導流很是容易,超級App(如微信朋友圈)、
搜索引擎、應用市場、瀏覽器,處處都是HTML5的流量入口。而原生App的流量入口只有應用市場。聰明的HTML5開發者固然會玩轉各類流量入口從而取得更強的優點。
分發效率高 前段時間微信朋友圈風靡一時《神經貓》,這個遊戲若是放到Appstore,絕對沒有那麼多流量,超級App帶來的流量,遠大於原生應用市場。假如微信允 許遊戲在桌面建立快捷方式、假如遊戲後續升級解決持續娛樂問題,將來不可想象。除了入口多、流量大,導流效率高也不可忽視,誰都知道:頁遊和端遊打一樣的 廣告,廣告變用戶的轉化率,頁遊遠遠高於端遊。
HTML5 對用戶的好處是:和流量入口多、分發效率高相對應的。大幅下降使用門檻。用戶眼睛看到一個興趣點,點擊後,就應該當即開始知足用戶需求。好比流媒體能夠立 即看,頁遊能夠當即玩。而目前的原生應用市場,用戶須要這樣操做:選一個應用、等待下載、確認權限、等待安裝,而後點擊打開。這樣糟糕的體驗早晚要被顛 覆。無論是App、遊戲仍是音視頻,將來都將即點即用。誰先知足用戶這個需求,誰就制勝。
這就是所謂「天下武功,惟快不敗」。分析至此,咱們能夠明顯的看出,無論是站在最終用戶角度、仍是站在開發者角度,HTML5必將取代原生應用當前的位置。並由此引起一系列顛覆。
6、還有什麼會被改變?
HTML5的爆發,原生App生態系統的顛覆,是一場產業革命,不少角色都會受到影響,咱們來預測一番。
標準的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的強大會引起不少安全問題,而且解決思路與原生不同,業內有可能會出現新的安全廠商領導者。
7、結語
寫到結尾,感受話題有點大了。其實將來如何發展是沒人能準確預測的,變量很是多。但我想讓用戶和開發者都更方便的趨勢是不會錯的。歡迎你們一塊兒討論HTML5的問題,在爭議中提煉真知。