2014-11-6 藍藍設(shè)計的小編
我們第一次談?wù)?HTML5 要改變世界大概是因為喬布斯,他堅持在 iOS 上不兼容 Flash,在 Adobe 統(tǒng)治多媒體開發(fā)的那個年代,這需要付出極大的勇氣。這么多年過去了,雖然所有人都在談?wù)?HTML5,但是大部分人甚至都忘了它還是一個仍在完善中的體系。
2007 年 W3C(萬維網(wǎng)聯(lián)盟)立項 HTML5,直至 2014 年 10 月底,這個長達八年的規(guī)范終于正式定稿。接下來,HTML5 將真正開始顛覆原生(Native) App 世界。雖然這種危言聳聽已經(jīng)讓人有點厭煩。但是如果回顧 HTML 這些年走過的路,你就不會再懷疑它的能量。
自 W3C 于 1999 年發(fā)布 HTML4 后,Web 世界快速發(fā)展,一片繁榮。人們一度認為 HTML 標準不需要升級了。一些致力于發(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)。
隨著寬帶的普及和電腦性能的增強,人們不再滿足于單純的通過互聯(lián)網(wǎng)看新聞、收發(fā)郵件,消耗更高帶寬的娛樂產(chǎn)品開始出現(xiàn),就是流視頻和網(wǎng)頁游戲。其實視頻和游戲是古老的需求,在互聯(lián)網(wǎng)不普及的時候,需求的滿足方式是離線傳輸?shù)?VCD 和游戲光盤;后來互聯(lián)網(wǎng)逐漸普及,人們更改了使用方式,通過下載軟件 + 本地媒體播放器來看視頻,下載體積較大的端游玩游戲。
但是對消費者體驗更好的新方式還是出現(xiàn)并顛覆了以前的一切,那就是流媒體和網(wǎng)頁游戲。Youtube 等公司把握住潮流飛速崛起,各種頁游公司也如雨后春筍。
HTML 標準沒有把握住產(chǎn)業(yè)的變化及時演進,瀏覽器產(chǎn)品也未升級,這塊新需求被瀏覽器插件滿足了,那就是 Flash。這個部署在億萬瀏覽器里的商業(yè)插件儼然成為事實標準。2005 年 Adobe 巨資收購 Macromedia,把 Flash 收歸旗下,緊接著大幅推廣 FLV 流媒體和 action script 語言,很明顯這樁收購可以列為 IT 并購的經(jīng)典案例,F(xiàn)LV 流媒體和 Flash 游戲風靡互聯(lián)網(wǎng),Adobe 在新的產(chǎn)業(yè)升級中攫取了大量的利潤。
除了 Flash 這個商業(yè)產(chǎn)品成為了事實標準,W3C 還面臨一個尷尬,就是另一個私有擴展協(xié)議的制造者—IE。IE 當時在桌面瀏覽器占有壟斷地位,并且擴展了大量的 IE Only 語法,開發(fā)者完全不知道這些語言是誰定義的。整個 web 世界,就被兩家公司微軟 +Adobe 綁架了。
很多 IT 巨頭都坐不住了,尤其是蘋果和 Google。PC 操作系統(tǒng)的世界難有突破,Web 瀏覽器被蘋果寄予厚望;新貴 Google 雖然大量贊助 Mozilla,但并未對 IE 的地位產(chǎn)生實質(zhì)影響,收購了 YouTube 后發(fā)現(xiàn)命脈在 Adobe 手里,也是非常難過,而且 Google 每年給 IE 的搜索框和 Adoble FLV 繳納的費用真不是小數(shù)目。
既然大家都是 W3C 的主席單位,好吧,我們重新開始做 HTML5 吧。是的,HTML5 其實就是這么誕生的。
自 HTML5 誕生以來,一共經(jīng)歷了兩個階段,分別是 Web 增強和移動互聯(lián)網(wǎng)。我們先從 Web 增強說起。Web 體驗的豐富增強主要表現(xiàn)在:
當然 HTML5 還為搜索引擎的語義分析做了優(yōu)化,比如新增 Header 和 Section 等標簽,也在無障礙等領(lǐng)域做了不少工作,這些不再多述。HTML5 在流媒體和游戲方面的努力,成功的遏制了 Flash 的發(fā)展,然后就該遏制 IE 私有語法了。
在 HTML5 標準的升級過程中,蘋果和 Google 同時也看到了瀏覽器市場重新洗牌的機會,他們一方面參與 HTML5 的規(guī)范,一邊在瀏覽器產(chǎn)品上發(fā)力。Apple 首先開始大力發(fā)展 Safari,建立 WebKit 開源項目,遷移 Safari 到 Windows 平臺;Google 起初是贊助 Mozilla 開發(fā) Firefox,后來自己開發(fā)了 v8 引擎,合并 WebKit,于 2008 年正式推出 Chrome。“IE 的私有規(guī)范 +Flash 不是標準,我們才是標準”這樣的口號在新一代瀏覽器大戰(zhàn)中打響,IE 瞬間成為千夫所指的壟斷代表,甚至成了阻礙 Web 發(fā)展的罪人(當時 IE6 已數(shù)年未更新,并且絲毫不懼 Firefox 的發(fā)展)。
、
偏偏微軟此時也出了暈招,推出了一系列即不完整支持規(guī)范又互相不兼容的 IE7、8、9、10,徹底失去了開發(fā)者的支持。
Adobe 的 Flash 被遏制,與 Web 霸主的位子擦肩而過;IE 的私有標準被遏制,并且造成 IE 市場份額不停下滑,直到 IE 的移動版本反過來開始支持 WebKit 語法,真是令人唏噓。不知道 HTML6 是不是該打倒 WebKit 壟斷了。
隨著 Chrome 和 Safari 的高歌猛進,以及 IE+Flash 的衰落,HTML5 告一段落,進入了下一個時代——移動互聯(lián)網(wǎng)。HTML5 的跨平臺優(yōu)勢在移動互聯(lián)網(wǎng)時代被進一步凸顯。HTML5 是唯一一個通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平臺的跨平臺語言。Java 和 Flash 都曾夢想這個位置,但夢斷于 iOS。此時人們紛紛開始研究基于 HTML5 開發(fā)跨平臺手機應(yīng)用。很多人當時認為,原生應(yīng)用只是過渡,就像當年從 C/S 結(jié)構(gòu)轉(zhuǎn)變?yōu)?B/S 結(jié)構(gòu)一樣。而且學習 Objective-C 和 Java 很費勁,我既然會網(wǎng)頁開發(fā),為何不試試 HTML5。
W3C 此時成立了 Device API 工作組,為 HTML5 擴展了 Camera、GPS 等手機特有的 API,然而麻煩的是,移動互聯(lián)網(wǎng)初期的迭代太快了,手機 OS 在不停的擴展硬件 API,陀螺儀、距離感應(yīng)器、氣壓計。。。每年手機 OS 都有大版本更新。而 W3C 作為一個數(shù)百家會員單位共同決策的組織,從標準草案的提出到達成一致是非常復雜的過程,跟不上移動互聯(lián)網(wǎng)初期的快速迭代。
PhoneGap 的出現(xiàn),給開發(fā)者打開了一扇窗。很多人期待 PhoneGap 不停擴展 API,來補充瀏覽器的不足。Adobe 看到 PhoneGap 仿佛看到了重振江湖地位的希望,但在 Adobe 收購 PhoneGap 后,又發(fā)現(xiàn)這個東西問題很多,而且開源使得 Adobe 無法像 Flash 那樣獲取商業(yè)利益,于是就把 PhoneGap 捐給了 Apache,改名為 Cordova。
因為各種原因,Cordova 的定位最終沒有成為瀏覽器的強化,而走向了混合式開發(fā)?;诋敃r的背景,他們認為原生是不可替代的,“原生 +HTML5”的混合模式更有意義。所以現(xiàn)在 Cordova 的使用往往是“原生工程師 +HTML5 工程師”一起協(xié)作完成 App。
這時 Facebook 加入了 W3C,牽頭成立了 Mobile Web 工作組。Facebook 是混 Web 圈的,并且在手機 OS 上并無自己的領(lǐng)地,他不喜歡被蘋果和 Google 掌控的原生應(yīng)用生態(tài)系統(tǒng)。Mobile Web 這個工作組的重要目標就是讓 HTML5 開發(fā)的網(wǎng)頁應(yīng)用達到原生應(yīng)用的體驗。然而,事與愿違,它不努力也就算了,結(jié)果是努力了卻失敗了。2012 年,F(xiàn)acebook 放棄了 HTML5 的新聞充斥了全世界的 IT 媒體,HTML5 瞬間被打入冷宮。
Facebook 為何放棄 HTML5?核心是當時基于 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)鍵點—手機瀏覽器內(nèi)核。如果瀏覽器不跟上,其他都是白搭。
而瀏覽器在手機上的表現(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 做出種種限制。
不管是當時硬件能力不足,還是手機 OS 廠商的故意限制,總之結(jié)果很明顯:在移動互聯(lián)網(wǎng)的初期,一定是原生應(yīng)用生態(tài)系統(tǒng)的天下,iOS 和 Android 首先把自己變成老大后,其他小弟才能尋覓到成長的機會。
Facebook 也好,PhoneGap 也好,想在移動互聯(lián)網(wǎng)初期就分一杯羹是分不到的,但堅持下來,機會往往會出現(xiàn)。
HTML5 在這個時間定稿,不晚不早,硬件性能更強、手機 OS 迭代速度下降。隨著 HTML5 標準定稿,一切紛爭將告一段落,現(xiàn)在,屬于 HTML5 的時代到來了。這個曾讓人滿懷希望,又被 Facebook 等眾多滿懷希望的開發(fā)者放棄的技術(shù),現(xiàn)在會告訴大家,曾經(jīng)讓各位失望的原因,現(xiàn)在已經(jīng)不存在了!這聽起來有些驚人,大家不禁要問:是真的嗎?讓我們細細分析。
業(yè)內(nèi)俗稱 HTML5 有“性功能”障礙。即 HTML5 性能不如原生、開發(fā)工具不如原生、能力調(diào)用不如原生。
這幾個問題導致開發(fā)者無法使用 HTML5 做出與原生一樣的 App。然而,不管是硬件升級還是 OS 廠商策略變化,以及相關(guān)軟件技術(shù)的成熟,已解決了 HTML5 的“性工能”障礙。
我們都知道瀏覽器的默認控件樣式和原生控件樣式差別很大,一個高性能的、樣式體驗與原生控件一樣的 UI 框架是非常重要的,之前 jQuery Mobile 等產(chǎn)品的因性能不足,所以難當此任。在這里做一個廣告,我所在的 DCloud 公司在 iWeb 大會上發(fā)布了系統(tǒng)的 HTML5“性工能缺失”的解決方案,包括解決 HTML5 性能問題的手機端引擎、超快的 HTML5 開發(fā) IDE 產(chǎn)品 HBuilder、還有把 40 萬原生 API 封裝成 JavaScript 對象,以解決 HTML5 能力不足問題的 Native.js 技術(shù)。
英特爾公司發(fā)布了 Crosswalk 引擎,可以讓 Android 4.0-4.3 的手機上的應(yīng)用打包 Chromium 引擎而不是 Android WebKit。雖說未來 Android 4.4 會占據(jù)更多市場份額,但目前主流的 Android 手機的系統(tǒng)版本畢竟還是 4.1、4.2。
在專業(yè)方向上很多公司也做出了不錯的成績。觸控的 Cocos2d-html5、Egret runtime 和 Ludei CocoonJS 強化了 Canvas 的表現(xiàn),讓 HTML5 游戲體驗更好;UC、獵豹等手機瀏覽器也強化了音視頻播放的表現(xiàn)。
不管是硬件升級、軟件成熟,還是操作系統(tǒng)廠商策略變化,都在強力推動 HTML5 的爆發(fā)。
不過要注意,我說的 HTML5 爆發(fā),不是指手機瀏覽器爆發(fā)。有人說 HTML5 不好,因為用戶討厭打開瀏覽器輸入 URL 的過程。我想說這種想法是對 HTML5 的片面理解。HTML5!= 傳統(tǒng)瀏覽器,雖然編程語言還是 HTML、Javascript、CSS,但發(fā)行方式絕不是傳統(tǒng)網(wǎng)站那么簡單。HTML5 應(yīng)用的入口,反而很少是啟動瀏覽器輸入 URL,它可以是存在于手機桌面的圖標、也可以來自超級 App(如微信朋友圈)、以及搜索引擎、應(yīng)用市場、廣告聯(lián)盟。。。到處都是它的入口。它的入口,比原生 App 更多。
HTML5 的“性工能”障礙得到解決,可以接近原生 App 的效果,所以它就可以替代原生 App 嗎?很多人認為,即使 HTML5 會發(fā)展的比現(xiàn)在好,也將是與原生 App 各占一部分市場的格局,要求不高的長尾應(yīng)用會使用 HTML5,而主流應(yīng)用仍是原生 App 的天下。
但我認為這樣的想法很危險,就像 HP 的高層告訴沃茲:誰會在家里擺一臺電腦呢?未來 HTML5 肯定會顛覆原生 App。“性工能”障礙的消除,只是 HTML5 的劣勢被削弱,但劣勢被消除后,它的優(yōu)勢就會大放異彩,HTML5 的優(yōu)勢是什么?對開發(fā)者來說:
HTML5 對用戶的好處是:和流量入口多、分發(fā)效率高相對應(yīng)的。大幅降低使用門檻。用戶眼睛看到一個興趣點,點擊后,就應(yīng)該立即開始滿足用戶需求。比如流媒體可以立即看,頁游可以立即玩。而目前的原生應(yīng)用市場,用戶需要這樣操作:選一個應(yīng)用、等待下載、確認權(quán)限、等待安裝,然后點擊打開。這樣糟糕的體驗遲早要被顛覆。不管是 App、游戲還是音視頻,未來都將即點即用。誰先滿足用戶這個需求,誰就制勝。
這就是所謂“天下武功,唯快不敗”。分析至此,我們可以明顯的看出,不管是站在最終用戶角度、還是站在開發(fā)者角度,HTML5 必將取代原生應(yīng)用當前的位置。并由此引發(fā)一系列顛覆。
HTML5 的爆發(fā),原生 App 生態(tài)系統(tǒng)的顛覆,是一場產(chǎn)業(yè)革命,很多角色都會受到影響,我們來預測一番。
標準的 HTML5 引擎并不能解決 HTML5 的所有問題,擁有大流量入口的互聯(lián)網(wǎng)巨頭,莫不在思考內(nèi)嵌更優(yōu)秀的增強引擎。騰訊推出了 X5 瀏覽器引擎,就是看中這個機會。
目前各路瀏覽器廠商、應(yīng)用市場廠商、甚至 rom 廠商,都在努力整合更優(yōu)質(zhì)的瀏覽器引擎。假使微信內(nèi)嵌的 webview 可以運行更優(yōu)秀的 canvas 游戲、假使 360 手機助手可以發(fā)行即點即用的 HTML5 應(yīng)用并且能力體驗與原生一致、假使小米 rom 內(nèi)置更強大的 webview 使得所有 HTML5 應(yīng)用在小米手機上運行的更流暢。所有巨頭都會聞風而動,沒錯,這場戰(zhàn)役會是移動互聯(lián)網(wǎng)世界的二次世界大戰(zhàn)。
應(yīng)用分發(fā)市場將面臨洗牌,由于超級 App 的巨大流量能輕易成為 HTML5 應(yīng)用的入口,并且會形成大者更大的效應(yīng),傳統(tǒng)的應(yīng)用商店、甚至線下預裝,這些流量不足和效率偏低的發(fā)行模式將被擠出市場主流。本身也是超級 App 的大流量應(yīng)用商店,如果轉(zhuǎn)型得當,也將以發(fā)行 HTML5 應(yīng)用為主。
原生的廣告和統(tǒng)計SDK提供商會面臨尬尷,Google、百度等基于網(wǎng)頁的廣告和統(tǒng)計服務(wù)會取得更大的優(yōu)勢。開發(fā)者不再需要打包 SDK,引入一個 Script 即可。
開源技術(shù)將在移動互聯(lián)網(wǎng)領(lǐng)域更加流行。HTML 的開放性造就了大量的開源產(chǎn)品,也反向促進了 HTML 的繁榮。在 Github 上有大量的 JS 框架,而原生的開源代碼數(shù)量相比甚少。而未來移動互聯(lián)網(wǎng)世界將因為開源而發(fā)展的更迅速,這里也同樣存在類 Github 廠商的機遇。
早期 HTML 只需要記事本寫幾個 Tag,中期的 HTML、JS、CSS 比較復雜,需要更高級的文本編輯器,但 HTML5 到來后,它的代碼量、復雜度、開發(fā)模型將與原生開發(fā)看齊,需要類似 XCode、Eclipse 等專業(yè)的 IDE 工具來解決開發(fā)、調(diào)試的問題。一些以會使用記事本寫代碼為榮的開發(fā)者,將面臨思路轉(zhuǎn)換甚至被更的開發(fā)者淘汰。
HTML5 的強大會引發(fā)很多安全問題,并且解決思路與原生不一樣,業(yè)內(nèi)有可能會出現(xiàn)新的安全廠商領(lǐng)導者。
寫到結(jié)尾,感覺話題有點大了。其實未來如何發(fā)展是沒人能準確預測的,變量非常多。但我想讓用戶和開發(fā)者都更方便的趨勢是不會錯的。歡迎大家一起討論 HTML5 的問題,在爭議中提煉真知。
藍藍設(shè)計的小編 http://m.91whvog3.cn