Spring+Hibernate+Struts已成為Java開(kāi)發(fā)的主流體系。在這個(gè)體系中,Spring+Hibernate的地位應(yīng)該說(shuō)短期內(nèi)是難以撼動(dòng)了。除了新興的Jboss Seam作為挑戰(zhàn)者之外,幾乎難有勁敵。有趣的是當(dāng)初Spring、Hibernate作為挑戰(zhàn)者,將官方的EJB成功挑落馬下;這次反倒是官方的EBJ3成了挑戰(zhàn)者,不知結(jié)局如何。
Java B/S編程中歷來(lái)戰(zhàn)火最激烈的其實(shí)還在Web層,框架的數(shù)量最多,爭(zhēng)議最大。
一切由Struts而起,而Struts最終也坐穩(wěn)了第一個(gè)時(shí)代的王座。在技術(shù)層面,Struts 1.x已經(jīng)被無(wú)數(shù)人抱怨過(guò)、批評(píng)過(guò),但終于還是穩(wěn)坐王位,這充分說(shuō)明了習(xí)慣的力量。“穩(wěn)定壓倒一切”,這句話在IT技術(shù)領(lǐng)域仍舊適用。
其實(shí)IT應(yīng)用技術(shù),什么新鮮玩意并不難學(xué)。難的是標(biāo)準(zhǔn)化和規(guī)范化。每個(gè)程序員都有自己的思路和習(xí)慣,寫(xiě)出來(lái)的代碼自然是五花八門(mén)。Java何以成為編程界的老大,很重要的一點(diǎn)在于Java的規(guī)范化。這種規(guī)范化很高的語(yǔ)言適用于多人合作的大型項(xiàng)目,便于溝通和理解,也就便于集成和維護(hù)。Java世界為什么會(huì)框架橫飛,說(shuō)到底還是規(guī)范化的需要。純JSP和Struts寫(xiě)Web誰(shuí)快,擺明了是JSP。那撐飽了用Struts?原因在于100個(gè)人寫(xiě)出來(lái)的JSP,有100種寫(xiě)法;而100個(gè)人寫(xiě)出來(lái)的Struts,基本相似。Struts之成功,正緣于其在Java Web層的規(guī)范化方面所做出的貢獻(xiàn)。
然而長(zhǎng)江后浪推前浪,Struts 1.x的技術(shù)缺陷畢竟是隱患。
Sun力推JSF,打算一雪Web層框架缺失之恥。可惜JSF既要沿用Swing的技術(shù)路線,又要學(xué)ASP.net,還要照顧產(chǎn)商的IDE,結(jié)果搞了個(gè)四不象,弄得里外不是人。當(dāng)然Sun的技術(shù)實(shí)力畢竟是超強(qiáng)的,只要?jiǎng)e重蹈EJB的覆轍,拿出點(diǎn)專斷的精神(像這兩年的NetBeans),做出像Swing那樣水準(zhǔn)的東西,JSF當(dāng)大有作為。JSF現(xiàn)在比較有優(yōu)勢(shì)的是對(duì)Ajax的集成,這一點(diǎn)走在了其他框架的前面。
而Struts就更沒(méi)有志氣了,把WebWork換了個(gè)標(biāo)簽,湊出個(gè)Struts2,Bug多多。說(shuō)實(shí)在話,根本不如原版的WebWork。如果不是靠了原先的fans捧場(chǎng),根本就沒(méi)得混。不過(guò)Struts原本就不是以技術(shù)取勝的,靠的是搶占先機(jī)帶來(lái)的習(xí)慣優(yōu)勢(shì)。如果原先的fans們?cè)谶@兩年內(nèi)都能轉(zhuǎn)到Struts2,那么Struts二世仍將雄霸天下。
綜上所述,未來(lái)兩年,JSF與Struts將展開(kāi)Java Web框架的最終戰(zhàn)爭(zhēng)。
以筆者愚見(jiàn),結(jié)局有二:一是不論Struts還是JSF獲勝,Java Web層都將結(jié)束混戰(zhàn)的局面,這對(duì)Java Web開(kāi)發(fā)的標(biāo)準(zhǔn)化是非常有利的,并有助于鞏固Java在B/S界的地位;二是Struts1.x、Struts2、JSF三分天下,必然從整體上削弱Java在B/S界的競(jìng)爭(zhēng)力,并將進(jìn)一步被RoR、ASP.NET、PHP所蠶食。
Author: orangelizq
email: orangelizq@163.com
|
|