如何看待html5在移動端的未來?
首先反對下現在的一樓的答案,原生效果非常容易實現,他說很艱難我只能懷疑他到底搞清楚HTML5 的API了沒,他的比喻
用一堆離散的石頭去搭細膩的雕塑一樣痛苦不堪。
這一點我是認同的,但是我不認為前端領域現有的工具和技術是離散的石頭。
現在的適用於移動端的前端框架類似:- Ionic: Advanced HTML5 Hybrid Mobile App Framework
- Reapp - Hybrid apps, fast
已經非常完善與強大了,效果非常接近原生應用(不包含性能),開發成本也非常低,構建/迭代起來非常快。
最最重要的是如果不想花時間熟悉API,並且花時間對自己目標的系統的各種特性加以了解,那麼是無法避免的要掉到一些坑裡面爬不出來的。再說我的觀點:移動應用的未來取決於移動設備晶元性能提升的有多快。這篇文章裡面有幾個有意思的觀點非常值得探討:為什麼移動Web應用程序很慢
- 在Benchmark中,Javascript 的速度比原生代碼慢4.5 ~ 5倍
如果你在想「如果是計算密集型(CPU-bound)的功能,本地代碼比Nitro JS快多少呢」,那麼答案是差不多5倍。這個結果大致上和Benchmark Game在x86/GCC/V8上面的結果一致,那裡面的GCC/x86通常比V8/x86快2到9倍。所以結果大致上是正確的,無論是ARM還是x86。
這裡關鍵是要理解4.5 ~ 5倍是什麼程度的差距:
2. x86架構的CPU比ARM 架構的 CPU 快 10倍左右這個數據來自於作者2013年寫文章的時候,對比的是 iPhone 5 和 Macbook Pro. 恰巧我手上就有一部 iPhone 5,它在現在(2015年中) 運行相當複雜的web app都可以達到令人滿意的流暢度。下面是廣告:我測試過如果你的C程序運行了10ms,那麼一個運行50ms的JavaScript程序差不多是接近C的速度了。如果你的C程序運行了10s,那麼一個運行了50s的JavaScript程序對於大多數正常人來說很可能就不是接近C的速度了。
- https://weixin.teambition.com/ (需要關注teambition 微信公眾號,在微信內訪問)
- 石墨 - 最優美的在線協作文檔
- https://onedrive.live.com/
這些webapp 基本是我能找到的市面上最複雜的mobile web app,但是離它們各自的desktop web app version 體驗和複雜度都還差很遠(不好具體的量化,但是可以很好的反映出desktop 和 mobile 10倍的性能差距)。而實際上,這些應用的 desktop version 的功能和體驗,已經完全不輸 native app了,這說明在一些場景下(在線協同文檔編輯這個複雜量級及其以下的場景),webapp 已經可以差不多達到 native app 的性能以及體驗了。
3. ARM 在短時間內性能很難追上 x86Y軸是垃圾回收所用的時間,X軸是「相對的內存足跡」,相對於什麼?相對於所需的最小內存。
這張圖想說明的是,「如果你有6倍以上你實際需要的內存,那麼使用垃圾回收是沒有問題的。但是如果你只有小於4倍你實際需要的內存,那麼災難就要降臨了。」
特別的,如果垃圾回收時系統擁有5倍於所需的內存時,它的運行時性能差不多甚至是超過顯式內存管理。但是,垃圾回收的性能在必須使用小堆(small heap)的情況下會出現急劇下降。如果有3倍於所需的內存的話,它會跑得慢17%;如果只有2倍於所需的內存的話,會慢70%。垃圾回收比物理內存的換頁更容易受到內存不足的影響。在這種情況下,我們所測試的所有垃圾回收器相對於手動內存管理都出現指數級的性能下降。
眾所周知 Javascript 是無法手動管理內存的,這也意味著,在內存足夠大(5倍於 webapp 運行時所需內存)之前,我們無法做任何事情來對這種影響進行優化。
5. Javascript 的實現在近幾年 (2011 ~ 2013 ) 並沒有本質的性能提升這裡是作者測試的 Chrome 10 vs Chrome 27在我看來,在這個期間的性能提升還是太小,不足以支撐JS馬上就會足夠快這樣的論調。然而,要說我過分強調這個情況也沒錯,畢竟JavaScript的計算密集型操作的確在發生變化。但是推我來說,這些數字可以得出更大的推斷:這些性能提升的幅度還不足以在一定時間之內使得JavaScript的速度趕上原生代碼。你需要性能達到2-9倍才能跟LLVM競爭。這些提升是好的,但還不足夠好。
Javascript 引擎的性能提升確實不足以支撐 「Javascript 馬上就能變得足夠快」 這一假設。
6. 電池技術的發展至關重要這一點其實是最好理解的,性能的提升帶來的是功耗的增加。從各個平台來看,移動端是趨勢,這也是為什麼這幾年移動互聯網創業火熱的原因,就連菜市場賣菜的大媽都要搞自己的app,當然是不是泡沫就另當別論了。我覺得H5的發力點就是在app,H5+js+css--&>打包app,簡潔、高效、一次開發多平台適用的這種模式將會被越來越多的人接受。HBuilder,AppCan這些整體解決方案的出現,也能讓那些嘲笑H5App性功能障礙的native高富帥們消停會了,phonegap+sencha已成過去時,前端的福音已經到來。我在看老周的《方法論》時,他有一個觀點我特別認同,『『你永遠打不敗的競爭對手就是趨勢,趨勢一旦爆發,就不會是一種線性發展,它會積蓄力量於無形,最後突然爆發成雪崩效應,任何不願意改變的力量都會被毀滅,被市場邊緣化』』,H5就是未來的趨勢,雖然發展有些曲折,但你看看w3c不斷推出的H5特性,各大公司的招聘啟示,就連我賣茶葉蛋的同學都知道H5game...,你知道為什麼所有的前端都對ie嗤之以鼻嗎?難道是因為界面丑嗎?圖樣圖森破!
適合內容型(也就是傳統網站)應用。稍微複雜一些的,都不適合。以後也不適合。
我現在用HTML5開發移動應用,也不複雜,但是比預想的麻煩很多,效果和成本都比開發兩套原生程序差。
這跟HTML、JavaScript、CSS的先天缺陷有關。就像用一堆離散的石頭去搭細膩的雕塑一樣痛苦不堪。
尤其是客戶要求實現原生一樣的效果就更痛苦了。比如客戶要求移動WebApp實現和iOS日期選擇框一樣的效果,在安卓上也一樣效果。APP html5化是一個趨勢 微信 支付寶等超級APP 非核心功能基本上都用html5實現的 這種優勢就是更新快 部署快 不需要用戶升級APP 不需要蘋果審核 但如果html5想要完全替代原生APP 個人不看好
H5的生態圈正在完善,引爆H5是遲早的事,拭目以待。
首先,移動是未來的趨勢,移動可以讓人們充分利用碎片時間,滿足各種需求。
其次,html5是一種實現移動應用的方式,隨著device API的豐富,給了h5各種可能性
那麼,html5可以做什麼?
大家討論的比較多的是html5和native的性能對比,開發速度,維護,升級等方面的問題,但這些在我看來不是大問題,隨著硬體的提升,相信html5的性能會越來越好。我比較看好的是device API在未來可以應用的空間:1. 利用重力感應開發物理遊戲2. 陀螺儀實現搖一搖3. video和audio開發語音識別和視頻通話、虛擬現實、增強現實4. 濕度和溫度感測器可以開發智能家居5. webnfc可以用來開發近場通訊支付6. 震動API7. 距離感測器8. 噪音檢測未來還會有更多的感測器API實現,相信這將會讓前端開發者有機會開發智能應用。開發語言降低門檻和人類可續技術進度都是一定會發生的事情。為什麼有很多名人讓人們警惕人工智慧? - 科技看了這篇文章你就能感覺到 了。
推薦閱讀:
TAG:HTML5 | HTML5遊戲 | 移動互聯網HTML5 | HTML5應用 |