在孟巖老師11月21日的blog中說他驚艷于微軟公司新近推出的界面開發工具Expression,并且預言基于Web標準(通常即XHTML+CSS+JavaScript)的界面開發技術很快就會沒落。孟巖預測:“最遲不超過2008年,在WPF、Flash(Apollo)等RIA技術的夾攻之下,越來越多的Web應用將同時部署傳統Web頁面和新的RIA UI?!?
對于這個預測,我和一些朋友認為孟巖老師過于樂觀了。我預測至少到2010年,基于Web標準的界面開發技術仍然將是Web界面開發的主流技術,而這些技 術的集大成者就是Ajax。Ajax技術在最近兩年中取得了很大的發展,并且仍然在迅速發展的過程中,現在就斷言Ajax技術即將沒落還為時尚早。
誠然,從純技術的角度來看,我們也早就認為XUL/XAML一類使用XML來描述界面組件和布局的技術肯定是Web界面開發技術的發展趨勢。W3C今年成 立了一個工作組,希望將XUL、XAML、MXML等幾種界面描述語言統一為一種標準的格式(http://www.w3.org/2006/appformats/)。所以我們認為孟巖老師所看到的趨勢是沒有大問題的。從純技術的角度來看,將來的Web界 面開發肯定會發展到這種技術。
然而,能看到趨勢當然很重要,但是我們還是需要解決很多現實的問題。我在這里提出幾個問題來與大家探討。
第一個問題是:這種趨勢將會以多快的速度成為現實?
技術的發展和演進往往都是一個長期的過程。面向對象開發取代面向過程開發、Java取代C++、Ruby逐漸取代Java都是一個長期的過程。孟巖老師所預測的2年和我所預測的4年似乎相差不大,但是對于我們現階段所要采取的行動其實影響很大。
即使正如孟巖老師所預言的,這確實是技術發展的趨勢又能怎樣?我們是否一定要在今天為明天和后天發生的事情而買單。過早為將來發生的事情買單,很可能會代 價高昂。這跟炒股差不多,有經驗的玩家會在最適當的時機入手。過早入手、過晚入手,都會蒙受損失。在這種趨勢成為現實之前,我們是否坐等共產主義的實現? 我認為等待并不是一種積極的態度。
第二個問題是:Ajax有何優點?
我認為孟巖老師并沒有充分地看到Ajax的優點。孟巖說:“昨天我還在說Ajax是過渡技術,沒想到幾個小時之后就得到印證?!?其實嚴格說來,任何的技術都可以稱為是過渡技術,但是這并不會妨礙使用這種技術來為用戶創造價值。孟巖只看到了使用基于Web標準的界面開發技術開發效率低下的一面。但是目前國內做界面開發的開發者有多少人真正理解了Web標準呢?根據筆者的經驗,采用完全的CSS布局,將頁面的結構、表現、行為三部分分離開,注重頁面各部分的重用。經過一段時間的積累之后,基于Web標準的界面開發完全可以達到比較理想的開發效率。而配合使用Dojo、 Scriptaculous、YUI等成熟的Ajax組件庫,還可以更進一步提高界面的開發效率。
在筆者看來,影響開發效率的問題主要有兩個方面:
1.Web界面開發者沒有充分理解Web標準。
2.Web界面開發者沒有嘗試過組件化的開發方式。
相對于其他技術而言,Ajax最大的優點有這三點:
1. Ajax是完全基于Web標準的技術,Ajax所用到的所有的技術都是真正的Web標準。
2.Ajax應用可以毫無障礙地部署到幾乎所有的桌面電腦上。
3.Ajax應用的開發和部署成本很低。
對于第一個優點,有人可能會爭論說,標準其實并不重要。例如EJB 2.x是標準又如何,現在不是也一樣被拋棄了嗎?但是這兩種標準是不可相提并論的。EJB的標準在推出之時,完全沒有經過開發實踐的檢驗,與開發實踐嚴重 脫節。然而Web標準卻是從開發實踐中積累而來的。Ajax所基于的這些Web標準都是先有了非常成熟的應用和成功的商業案例之后才會形成標準。Web標 準之所以成為了今天這個樣子,是經得起歷史考驗的。如同TCP/IP標準一樣,它仍然會長期沿用下去.