top
Loading...
JavaWeb層的下一個王者是誰?

經過數年的“框架大戰”,Java界的各種框架找到了自己應有的位置。

Spring+Hibernate+Struts已成為Java開發的主流體系。在這個體系中,Spring+Hibernate的地位應該說短期內是難以撼動了。除了新興的Jboss Seam作為挑戰者之外,幾乎難有勁敵。有趣的是當初Spring、Hibernate作為挑戰者,將官方的EJB成功挑落馬下;這次反倒是官方的EBJ3成了挑戰者,不知結局如何。

Java B/S編程中歷來戰火最激烈的其實還在Web層,框架的數量最多,爭議最大。

一切由Struts而起,而Struts最終也坐穩了第一個時代的王座。在技術層面,Struts 1.x已經被無數人抱怨過、批評過,但終于還是穩坐王位,這充分說明了習慣的力量。“穩定壓倒一切”,這句話在IT技術領域仍舊適用。

其實IT應用技術,什么新鮮玩意并不難學。難的是標準化和規范化。每個程序員都有自己的思路和習慣,寫出來的代碼自然是五花八門。Java何以成為編程界的老大,很重要的一點在于Java的規范化。這種規范化很高的語言適用于多人合作的大型項目,便于溝通和理解,也就便于集成和維護。Java世界為什么會框架橫飛,說到底還是規范化的需要。純JSP和Struts寫Web誰快,擺明了是JSP。那撐飽了用Struts?原因在于100個人寫出來的JSP,有100種寫法;而100個人寫出來的Struts,基本相似。Struts之成功,正緣于其在Java Web層的規范化方面所做出的貢獻。

然而長江后浪推前浪,Struts 1.x的技術缺陷畢竟是隱患。

Sun力推JSF,打算一雪Web層框架缺失之恥。可惜JSF既要沿用Swing的技術路線,又要學ASP.NET,還要照顧產商的IDE,結果搞了個四不象,弄得里外不是人。當然Sun的技術實力畢竟是超強的,只要別重蹈EJB的覆轍,拿出點專斷的精神(像這兩年的NetBeans),做出像Swing那樣水準的東西,JSF當大有作為。JSF現在比較有優勢的是對Ajax的集成,這一點走在了其他框架的前面。

而Struts就更沒有志氣了,把WebWork換了個標簽,湊出個Struts2,Bug多多。說實在話,根本不如原版的WebWork。如果不是靠了原先的fans捧場,根本就沒得混。不過Struts原本就不是以技術取勝的,靠的是搶占先機帶來的習慣優勢。如果原先的fans們在這兩年內都能轉到Struts2,那么Struts二世仍將雄霸天下。

綜上所述,未來兩年,JSF與Struts將展開Java Web框架的最終戰爭。

以筆者愚見,結局有二:一是不論Struts還是JSF獲勝,Java Web層都將結束混戰的局面,這對Java Web開發的標準化是非常有利的,并有助于鞏固Java在B/S界的地位;二是Struts1.x、Struts2、JSF三分天下,必然從整體上削弱Java在B/S界的競爭力,并將進一步被RoR、ASP.NET、PHP所蠶食。

查閱關于 Java 的全部文檔

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗