经过数年的“框架大战”,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所蚕食。
(t007)
闽公网安备 35060202000074号