群雄逐鹿移動Web開發標準 禍及Web開發人員
原創【51CTO快譯自10月19日外電頭條】上星期我一直在思考Adobe為什么想要大力的推廣Flash把它定位為移動設備的平臺,它面臨著一場艱苦的戰斗,尤其是要把Flash應用編譯成二進制文件來在iPhone上運行。Open Web標準似乎為今天的智能手機指明了更好的開發目標,但移動網絡卻顯然還沒有做好準備,而根本上的問題就在于可擴展性。
當開發者們談論可擴展性的時候,他們通常想的只是怎樣擴展。也就是說,當負載不斷增加的時候,所開發的應用能不能有效的利用一切現有資源來滿足需求?在這點上Web應用一直做的不錯(只要有良好的編碼),而且不斷的技術進步使它們越做越好。
而移動設備投入進來后,開發者面臨著一個全新的挑戰。現在,他們考慮的應用需要縮小,要在移動設備上提供最接近于桌面應用的體驗,卻要同時面對低處理能力、屏幕分辨率、網絡帶寬和存儲容量的挑戰。這是一件棘手的事,不只是針對Java和Flash這樣的運行時,對移動Web開發標準來說更是前所未有的挑戰。
Google引領的全新移動Web開發標準
問題不只是小屏幕和各種古怪的輸入設備,Web 2.0的推出進一步拉開了差距。在手持設備的瀏覽器仍在琢磨怎樣才能正確顯示HTML的時候,桌面瀏覽器卻已經忙著以全新的方式擴大Web的角色,在這方面沒有比Google做的更積極的。
例如Chrome瀏覽器,Google并不滿足于跟上目前主流瀏覽器的發展腳步,所以他們拿出了自己的HTML引擎,在遵守網絡標準的同時放棄了一些Web早期的傳統想法。在最新的進展中,Chrome竟然可以把自己作為一個插件在低于兼容標準的IE 6中運行,此舉引發競爭對手的大量爭論。
同樣至關重要的是Chrome的V8 JavaScript引擎,Google坦承如今的Web應用需要向外擴展,因此更應該從客戶端那里多獲取一些處理能力來減輕服務器的負擔。Chrome的JavaScript表現激發了其他競爭對手不斷的加速自己的JavaScript引擎。
不過Google并沒有就此停步。它帶來了Google Gears,進一步加速JavaScript并且可以將Web應用數據存儲在本地客戶端。最能體現Google 的“向外擴展”精神的是Native Client,允許瀏覽器通過網絡執行原始的x86二進制文件。
Google的每一項技術都是改變桌面瀏覽器角色的一步。在Google的眼中瀏覽器不只是用于顯示Web內容的瘦客戶端,它是一個Web應用系統的積極參與者,能夠與服務器共享用戶界面、存儲甚至數據處理工作。
移動瀏覽器跟不上腳步
我們可以說桌面Web應用已經快走到Web 2.5時代了,這是偉大的進展,但移動領域卻大體上還處在Web 1.0的世界。相對于Chrome等桌面瀏覽器,如今的智能手機瀏覽器還像是小孩子的玩具。它們的確越做越好,但想要在手機上達到桌面瀏覽器的Web體驗還仍然是一個遙遠的夢想。
從HTML的渲染開始,移動設備的屏幕尺寸仍然是一個問題,雖然現代的網絡標準已經讓針對不同外形的編碼工作變得更加容易,然而真正嚴格執行標準的手機瀏覽器卻數量很少,WebKit技術可以提供一些幫助,然而即使執行WebKit的瀏覽器還存在不同程度的差異,更何況還有很多不用WebKit的手機。
JavaScript是另一個問題,比如我的黑莓手機的JavaScript性能就總是讓人搖頭。運營商們想必也不喜歡無休止的彈出“腳本運行出現問題”的消息框,因此很多手機在出售時JavaScript功能默認是關閉的。蘋果的iPhone OS 3.0操作系統提升了JavaScript性能,但只能說是略有改善,你仍要面對在運行Flash或Java時處理能力不足的問題。Google的Gears技術可以用在Android操作系統上,但到哪里找到另一臺Android手機呢?你需要好運氣。
開發者可以支持兩種移動Web開發標準嗎?
總之,當桌面上的Web體驗正隨著技術改進不斷的向外擴展時,移動的Web體驗其實比起十年前的桌面好不到哪去。現代Web應用的開發中使用的客戶端技術越先進,桌面Web和移動Web的差距就越大。
為了滿足移動瀏覽器的需求,開發者需要思考如何縮減他們的應用,怎樣重新使用最古老最基本的網絡技術。不過,在很多時候這意味著要專門為移動的用戶重寫單獨的界面。而結果是什么呢?桌面和移動,兩個獨立的開發軌道,這和WAP手機剛出現時的情況幾乎沒有什么不同。如果你喜歡的話可以稱之為機會,但我要說這是一個潛在的浪費。
原文作者:Neil McAllister
原文標題:The sad state of the mobile Web gets even sadder
【編輯推薦】