Web App框架發(fā)展趨勢及現(xiàn)狀分析

2012-04-08 06:49:33來源:《程序員》雜志作者:劉鐵鋒

摩爾定律作為指引PC發(fā)展最重要的定律,同樣也在移動(dòng)設(shè)備的發(fā)展上起著重要的作用。國內(nèi)某款按照互聯(lián)網(wǎng)思路開發(fā)手機(jī)的大佬曾宣稱:手機(jī)CPU的發(fā)展速度可能會(huì)超過PC的發(fā)展速度。按照這個(gè)思路可以預(yù)見,手機(jī)的處理能力將

摩爾定律作為指引PC發(fā)展最重要的定律,同樣也在移動(dòng)設(shè)備的發(fā)展上起著重要的作用。國內(nèi)某款按照互聯(lián)網(wǎng)思路開發(fā)手機(jī)的大佬曾宣稱:手機(jī)CPU的發(fā)展速度可能會(huì)超過PC的發(fā)展速度。按照這個(gè)思路可以預(yù)見,手機(jī)的處理能力將會(huì)達(dá)到甚至超過PC的處理能力。與此同時(shí),手機(jī)瀏覽器的處理能力將會(huì)和PC瀏覽器能力不相上下。

在硬件飛速發(fā)展的同時(shí),操作系統(tǒng)和軟件的更新也在快速演進(jìn)。繼iOS超強(qiáng)的硬件加速能力之后,在Android 4.0中,為系統(tǒng)默認(rèn)引入硬件加速功能成為了最大賣點(diǎn)。這將會(huì)為Android系統(tǒng)帶來更加流暢的界面體驗(yàn),同時(shí)也會(huì)為瀏覽器帶來更好的Canvas繪制性能以及CSS Animation的效果。不僅如此,在2012年2月,Chrome for Android的發(fā)布也進(jìn)一步推動(dòng)了手機(jī)瀏覽器的發(fā)展。Chrome for Android直接移植了桌面版Chrome 16.0的代碼,同樣延續(xù)了Chrome在啟動(dòng)速度、渲染速度、網(wǎng)頁加載速度以及基于V8引擎的JavaScript執(zhí)行速度這些可以秒殺同行的能力。

快速發(fā)展的硬件加上來自瀏覽器的革新,這些都成為推動(dòng)Web App在移動(dòng)設(shè)備上發(fā)展的利好消息。盡管如此,硬件和Chrome在移動(dòng)設(shè)備上的發(fā)展僅是基礎(chǔ)平臺(tái)的發(fā)展。正如在PC+Windows時(shí)代一樣有著各種功能強(qiáng)勁的框架一樣,Web App的發(fā)展需要各種基礎(chǔ)的開發(fā)平臺(tái)、框架以及庫的普及和推廣。本文將集中探討目前支持Web App的各種框架以及平臺(tái)的發(fā)展?fàn)顩r和不足。

Web App所依賴的框架以及庫

在Web App的發(fā)展中一直有兩種觀點(diǎn):

Web App就應(yīng)該延續(xù)Web一貫簡單、靈活的風(fēng)格,延續(xù)Web的開發(fā)模式和理念,哪怕在移動(dòng)設(shè)備上也是如此。

Web App應(yīng)該沖擊和模擬Native App的行為,用Web的技術(shù)來開發(fā)出類比Native App的程序。

盡管這個(gè)問題已被討論過很多遍, 并且大眾認(rèn)為它們各有長處,會(huì)占據(jù)各自擅長的開發(fā)領(lǐng)域很長一段時(shí)間。但我認(rèn)為,Web相關(guān)的技術(shù)一直在侵蝕Native App的領(lǐng)地。尤其是在JavaScript的語言進(jìn)化以及開發(fā)能力越來越強(qiáng)的今天,基于AJAX的應(yīng)用越來越豐富,使得前端的開發(fā)能力越來越強(qiáng),承載的功能也越來越多。因此,在Web App的發(fā)展過程中,各種類比Native App的框架和庫會(huì)越來越多,這也使得Web App所能夠具有的開發(fā)能力越來越傾向于Native App。 

那么,在移動(dòng)領(lǐng)域Web App的發(fā)展過程中,將會(huì)需要和出現(xiàn)怎樣的框架和技術(shù)支持呢?

基礎(chǔ)的調(diào)試工具。對于任何開發(fā)平臺(tái)來說,這是最為基礎(chǔ)的開發(fā)工具和需求。目前在PC瀏覽器中,Chrome、IE、Firefox都提供了強(qiáng)大的從資源文件瀏覽、CSS應(yīng)用規(guī)則監(jiān)控、網(wǎng)絡(luò)請求監(jiān)控以及JavaScript斷點(diǎn)執(zhí)行的調(diào)試工具。

UI層的組件/框架。對任何一種Native App的開發(fā)語言來說,這些都是基礎(chǔ)的用來搭建大規(guī)模上層應(yīng)用的原材料庫,在這個(gè)基礎(chǔ)之上才會(huì)演化出各種各樣的編程模式。從VC++對應(yīng)的MFC,到Delphi對應(yīng)的VCL,到Java對應(yīng)的AWT/Swing莫不如此。盡管因?yàn)閃eb的特殊性,基于HTML的頁面元素標(biāo)簽構(gòu)建異常簡單,但對于復(fù)雜的混合交互控件,仍然需要UI的組件/框架的支持以作出絢麗的效果。

數(shù)據(jù)以及業(yè)務(wù)邏輯的組件/框架。從緩存到配置文件、數(shù)據(jù)處理、網(wǎng)絡(luò)請求等各部分的組件/框架,會(huì)成為開發(fā)各種信息系統(tǒng)、具體業(yè)務(wù)相關(guān)企業(yè)信息化系統(tǒng)的主要需求。這些會(huì)成為簡化企業(yè)信息化開發(fā),各種行業(yè)應(yīng)用最為直接和有效的有利工具。正如.NET中的ADO.NET以及Enterprise Library。

跨平臺(tái)以及與移動(dòng)設(shè)備硬件能力相關(guān)的框架。如果不涉及到具體移動(dòng)設(shè)備的固有能力(比如打電話、發(fā)短信、調(diào)用聯(lián)系人信息等涉及本地?cái)?shù)據(jù)相關(guān)的能力),Web App天然就是跨平臺(tái)的。然而,如果需要和移動(dòng)的平臺(tái)能力結(jié)合在一起,那么,就需要有相關(guān)的跨平臺(tái)框架利用統(tǒng)一的數(shù)據(jù)接口,來幫助Web App獲得Native App的能力。同時(shí),伴隨著瀏覽器能力進(jìn)一步成熟,Web App會(huì)越來越不依賴于第三方的跨平臺(tái)框架。例如現(xiàn)在可以看到的獲得地理位置信息,以及通過Web GL直接訪問GPU來獲得3D的能力等。

當(dāng)這些能力和框架開始完善時(shí),Web App就會(huì)得到越來越多開發(fā)者的支持,基于這些技術(shù)和框架開發(fā)的Web App的功能也會(huì)越來越強(qiáng)大。

現(xiàn)有移動(dòng)框架上的發(fā)展?fàn)顩r

框架的成熟會(huì)進(jìn)一步催生應(yīng)用的實(shí)現(xiàn)和普及。根據(jù)前面對框架能力的分析以及評(píng)估,我們可以一一對號(hào)入座,然后靜觀業(yè)界的發(fā)展。

基礎(chǔ)的調(diào)試工具。在之前的移動(dòng)設(shè)備上瀏覽器的功能比較單一,僅能實(shí)現(xiàn)基本的瀏覽功能。在2012年2月發(fā)布的Chrome for Android中,已經(jīng)可以看到,這一塊工具已經(jīng)被Google率先補(bǔ)了起來。Chrome for Android提供了通過USB連接PC,可以利用Web來調(diào)試手機(jī)上頁面。這對所有開發(fā)Mobile Web頁面以及Web App的開發(fā)者來說都會(huì)是一個(gè)利好消息。

UI的組件以及框架。jQuery可以認(rèn)為是最強(qiáng)的JavaScript Library之一。注意,是Library而不是Framework。他本質(zhì)上是簡化和JavaScript的開發(fā)工作,通過大量構(gòu)建好的Library可以快速幫助開發(fā)者實(shí)現(xiàn)各種各樣操作DOM以及CSS的效果。在移動(dòng)設(shè)備商,由AppMobi推出的JQ.Mobi號(hào)稱是重寫了jQuery在移動(dòng)設(shè)備上的實(shí)現(xiàn),僅有3KB的大小完勝jQuery 35KB的體量。并且根據(jù)JSPerf Test的數(shù)據(jù),它在Android上比jQuery快3倍,在iOS上要快2.2倍。這對所有做移動(dòng)Web App開發(fā)的人來說是非常好的消息,速度和體驗(yàn)是一個(gè)非常關(guān)鍵的問題?梢灶A(yù)見的是jQuery和AppMobi會(huì)在這個(gè)領(lǐng)域角力,然后快速推動(dòng)這一個(gè)領(lǐng)域的發(fā)展。

Sencha Web同樣也是最知名的UI Library和Framework提供商。Sencha主打的Ext JS 4可以讓開發(fā)者通過MVC的模式來開發(fā)Web App。Sencha Touch則定位于Mobile上的HTML 5 Web App開發(fā)框架。除此之外Sencha Touch Charts則解決了大量圖片控件的問題。在這個(gè)領(lǐng)域,Sencha一直是先行者,可以認(rèn)為是從0到1的轉(zhuǎn)變。盡管有開發(fā)框架過重的問題,但只要性能跟得上,相信Sencha會(huì)成為開發(fā)者首選的框架之一。在MVC框架這個(gè)戰(zhàn)場上,還有Yahoo! Cocktails、Sproutcore、Backbone JS這樣的競爭對手。除此之外,還有Zepto、Ripple、LungoJS、Joshfire、Jo這些定位在移動(dòng)HTML 5的框架。

在這個(gè)領(lǐng)域會(huì)是推動(dòng)Web App發(fā)展最前衛(wèi)也是最火熱的領(lǐng)域,有理由相信各種開源的思路和組織,甚至是Google、Facebook、Microsoft、Adobe這樣的大公司直接介入,會(huì)越來越快地推動(dòng)這個(gè)領(lǐng)域的發(fā)展,并且會(huì)成為Web App發(fā)展的最重要的推動(dòng)力量和基石。把握和跟蹤好這些框架的變遷和大公司的最新動(dòng)向,就會(huì)非常緊密地了解Web App的能力以及發(fā)展?fàn)顟B(tài)。

數(shù)據(jù)和業(yè)務(wù)邏輯框架。這部分最重要的在于和其具體領(lǐng)域直接相關(guān),只有大型的平臺(tái)公司才具備實(shí)力和技術(shù)推廣能力將其脫離具體領(lǐng)域。因此,我預(yù)測會(huì)現(xiàn)有針對具體行業(yè)的一站式解決方案率先出現(xiàn),比如電商或者垂直門戶,然后再伴隨Web App的興起,逐漸往通用化發(fā)展。但最終可能還是會(huì)被IBM、Microsoft這些傳統(tǒng)的專長于企業(yè)方案和開發(fā)框架的公司所占有。

跨平臺(tái)的解決方案。在我看來,跨平臺(tái)的解決方案實(shí)際上是各家企業(yè)試圖進(jìn)入到移動(dòng)端最為關(guān)心的方案。任何企業(yè)進(jìn)入移動(dòng)領(lǐng)域都會(huì)面臨移動(dòng)設(shè)備分裂以及很難找到合適的多平臺(tái)移動(dòng)開發(fā)者的問題,也會(huì)陷入是選用完全本地的實(shí)現(xiàn)方案,還是采用Web App的兩難境地。如果選用本地方案,人力成本會(huì)很高;而選用Web App的方案,則在調(diào)用本地能力上還不成熟,還未看到成功案例。在跨平臺(tái)解決方案領(lǐng)域,主要是PhoneGap以及Titanium在這耕耘。以PhoneGap為首的公司跨平臺(tái)服務(wù)提供商,本質(zhì)上是希望能夠達(dá)到非常完備的平臺(tái)覆蓋(目前PhoneGap覆蓋到iOS、Android、Windows Phone、 BlackBerry、webOS、Symbian等平臺(tái)),來讓用戶更加順手地實(shí)現(xiàn)調(diào)用本地硬件的能力。由于PhoneGap已被Adobe收購,甚至成為Adobe下注移動(dòng)互聯(lián)網(wǎng)的重要一環(huán),因此,PhoneGap可能會(huì)有更快的發(fā)展速度,從而拖垮競爭對手。除此之外,也會(huì)有非常多的采用類似于PhoneGap的衍生框架出現(xiàn),它們或多或少會(huì)在某個(gè)專業(yè)領(lǐng)域有自己的優(yōu)勢,然后試圖利用跨平臺(tái)這個(gè)賣點(diǎn),包裝為半成品或產(chǎn)品來為企業(yè)用戶提供服務(wù)。目前國內(nèi)已經(jīng)出現(xiàn)這樣的公司在開拓市場。

總結(jié)

根據(jù)如上分析,相信讀者對Web App在未來技術(shù)領(lǐng)域可能會(huì)出現(xiàn)的框架和技術(shù)會(huì)有了一定了解,也能找到合適的切入點(diǎn)來了解以及評(píng)估目前已有的技術(shù),為自己的技術(shù)領(lǐng)域作出合適的選擇。

我感覺Web App的普及和推廣速度比想象中要快。我曾和朋友探討過兩個(gè)問題,在這里,以我對這兩個(gè)問題的回答作為結(jié)尾。

Web App的發(fā)展和普及差什么?本文已對技術(shù)能力的差距做出了回答。那么,在這些技術(shù)能力中,哪一個(gè)方面會(huì)成為影響Web App發(fā)展的最至關(guān)重要的點(diǎn)?我認(rèn)為,最重要的就是UI框架的發(fā)展。因?yàn)橛辛诉@一塊的發(fā)展,能夠低成本地快速構(gòu)建出性能好、交互能力強(qiáng)的Web應(yīng)用,以這些早起的開發(fā)者用強(qiáng)大的Show Case來帶動(dòng)和推動(dòng)Web App的進(jìn)一步發(fā)展。

如果Web App的這些框架都具備了,跨平臺(tái)的方案如何選擇?我認(rèn)為,從開發(fā)成本上來說,毫無疑問Web App的成本低。業(yè)界期待的就是類似于當(dāng)時(shí).NET和J2EE技術(shù)比拼的PetShop的Show Case、樣板產(chǎn)品以及成功案例。而對于PhoneGap這樣的框架來說,從更長遠(yuǎn)的角度來看,這些都只是中間狀態(tài)。未來HTML5的標(biāo)準(zhǔn)和瀏覽器的發(fā)展,會(huì)慢慢吞噬PhoneGap這類跨平臺(tái)解決方案的市場?傊,這本質(zhì)上會(huì)是Google、Microsoft、Apple等公司聯(lián)手?jǐn)D壓Adobe的戰(zhàn)爭。

比爾·蓋茨曾說:“人們總在短時(shí)間內(nèi)高估技術(shù)對社會(huì)的影響,而在長時(shí)間中又低估重大技術(shù)對社會(huì)的影響。”Web App的框架可能就是這樣一種快速發(fā)展的重大技術(shù),就讓時(shí)間來證明吧。

關(guān)鍵詞:WebAppapp

贊助商鏈接: