论坛首页 Java企业应用论坛

Java Web层的下一个王者是谁?

浏览 58389 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-19  
经过数年的“框架大战”,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所蚕食。

有兴趣者参加讨论。
   发表时间:2007-04-19  
Tapestry呢?Javaeye上面有过讨论,而且 ,robbin等大牛们也是比较看好Tapestry的,还有Wicket呢?其实JAVA WEB方面的框架非常之多,只是平时公司中使用的并不多,只局限于那么几个,像Click Framework,我觉得也是一个不错的WEB框架。只是从目前国内的情况来看,struts1.X,估计还会存在相当一段时间。
0 请登录后投票
   发表时间:2007-04-19  
JSF太不符合习惯了,所以不怎么看好
还是觉得webwork在web层上做的是最好的
0 请登录后投票
   发表时间:2007-04-19  
个人比较喜欢JSF,如果用上facelets,你就非常不错了!
0 请登录后投票
   发表时间:2007-04-19  
说得不错。
不过我觉得业界最需要的是一套完整和开放的widget,不论是用Javascript实现的,还是未来浏览器直接用标签等方式支持的,widget包括:combobox,grid,treeview等等,就像VB、dephi里的组件一样,这些东西才是本质性压倒性的革新。
0 请登录后投票
   发表时间:2007-04-19  
flex呢?就没有人讨论?
0 请登录后投票
   发表时间:2007-04-19  
我觉得还是sturts2会成为新的王者,因为struts1的fans数非常巨大,而struts1转向struts2带来的是便利,非常便利。
0 请登录后投票
   发表时间:2007-04-20  
一项技术要在市场上领跑,有以下几条因素:
1、与同类技术相比有明显的优势
2、简单易用
3、技术的推广和普及

Java的Web框架,从技术层面上来说,大同小异,彼此间没有太大的差距。
易用程度也差不太多。
最终的决定因素在于技术的推广的普及。Webwork为何被Struts招安?无非是要借“Struts”这个黄金品牌翻身。JSF为何有前途,在于当前相关厂商的推广和炒作。
Struts与JSF争霸的关键,还是在于普及的速度。Struts这个民间标准,如果能让1.x的fans们迁移到2.x,继续统治民间当不成问题。但现在推广的努力明显落后于众厂商力捧的JSF;而Sun必须在这个炒作的氛围中真正让“标准JSF”足够好用(不成也将myfaces招安),才能从Struts的阵营中拉足选票。

当前不建议大家再去使用其他的框架(作为爱好研究可以)。一大堆各式各样的框架,难于交流和深入使用,不利于Java Web的发展。
0 请登录后投票
   发表时间:2007-04-20  
最不喜欢JSF.
标签和UI组件混用是其致命的缺陷.用IDE拖拉产生的代码是debug和维护的恶梦.从项目管理的角度来看,要做到view层代码的规范化是很难的.

Tapestry4.0做了几个系统,感觉其完全贯彻的OO的思想.但其封装得太彻底的,对于新手的开发人员的学习成本很大(特别是没有人指导的情况).比较不好的一点就是Tapestry4.0开发只有一个人,没有大厂商的支持.另外Tapestry4.0到Tapestry5.0的变化太大了.虽然Tapestry5.0架构更加的优秀.可是由于不兼容,导致了出现断层的现象,刚好这个时候又是web框架争夺市场最激烈的时候.所以对它能否得到广泛的推广还值得验证.

struts1.x一直都在用,做中小项目居多.虽然很多人说落后什么.可是往往只是从理论上说而已.我们都知道宝马汽车当然比捷达好.但是如果你拥有一个出租车公司有N多辆捷达,公司在不同地方都有捷达的维修点.这个时候如果要全部换成宝马似乎不现实.即使新买宝马也值得慎重考虑,要考虑秏油问题,考虑司机驾驶问题,考虑维修成本问题.

struts2.x还在观望中,不了解,所以也不好评论.

现在对spring MVC开始有点兴趣,如果结合FreeMaker,Velocity也是个很好的选择.
0 请登录后投票
   发表时间:2007-04-20  
JSF看了一个星期,放弃了...内部实现机制过分复杂,而且一看又是一堆的jsp tag,马上头皮发麻。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics