新一代Java Web开发框架JSF访谈实录(1)(3)
JSF渐入佳境
51CTO:现在Java的Web开发框架很多,Struts、WebWork、Tapestry、Spring等等,开发中使用Struts框架的好像多些。JSF目前的占有率怎么样? Sun在JSF的推广上有哪些策略?
麻地河:这个问题我认为用数据来说话最有说服力。两年前,我发表第一篇介绍JSF的文章时,为了比较JSF的流行程度,我在google上搜索JSF和Struts这两个关键字,用搜得的网页数量作为流行与否的一个参考,当时得到的结果是:英文网页,JSF与Struts的比例是的60:100;简体中文网页则是40:100。两年之后的现在,我在google上做同样的搜索,这个两个比例已经分别上升为104:100和79:100。这两组数据说明,经过两年的时间,JSF在国外已经和Struts平起平坐,甚至略有超出,而在国内,JSF的流行度虽然还不如Struts,但比值由40上升到79,足足翻了一倍,可见势头惊人。粗略估计,不论是国内还是国外,JSF平均每年有20%的增长率,目前国内79:100的比例,相当于国外一年前的比例,这也印证了国内在新技术上一般与国外存在大约一年的差距这样一个主观感受。所以,参考国外的趋势,JSF的流行,包括在国内流行起来,是毋庸置疑的。
数据只能说明结果,如果我们尝试分析这一结果背后的原因,可以罗列出以下几条理由:
1)随着Java EE 5的发布,JSF由替补变成主力,成为官方规范的强制部分,所有Java应用服务器,现在必须提供对JSF的支持,这使得JSF身价倍增,自然而然成为万众瞩目的焦点;
2)JSF的开发工具渐入佳境,以NetBeans为首的一批支持JSF可视化编程的集成开发环境正在改变人们编写Java Web应用的习惯。NetBeans拖放式的Web界面开发,都给程序员留下了深刻印象;
3)Java EE 5最重要的使命是简化Java开发,为此,Sun连续使出了三大绝招,一是推出JSF,二是推出EJB3,三是推出JPA。明眼人一看就知道,这三大技术分别涵盖了三层体系结构中的表示层、业务层和数据层,虽说不能一统天下,但在规范层面建立一个完整体系的目的非常明确。规范是技术的制高点,只要Sun不倒,JSF就有足够硬的后台支持它的发展。
51CTO:在Java框架方面,很多人会拿Sun主推的EJB和轻量级的Hibernate做比较,甚至有人说Hibernate是赢在轻量和简单;你如何看待JSF和Struts这两项技术的前景?
麻地河:很多人喜欢把JSF和Struts对立起来,但我不这样看。Struts无疑是最优秀的Java Web表示层框架技术之一,不过,任何技术都有其生命周期,就像Struts的前辈Servlet和JSP一样,出道之时无不光芒四射,震撼人心,但随着时间的推移,技术的进步,Struts头顶的光环褪色,老态渐显。新陈代谢是不可避免的自然规律,单纯就技术而言,Struts的淡出和JSF的登场,只不过是新技术替代老技术而已。我本人并没有使用Struts的经历,因此,无法从细节评估JSF和Struts的优劣。关于JSF和Struts的对比,网络上有很多讨论,大家感兴趣的话可以搜索一下看看。
大家知道Struts的架构设计和开发者是Craig R.McClanahan,但可能不知道,他也是JSF规范专家组的领导之一。Craig R.McClanahan的双重身份说明,JSF和Struts不是对立的,相反,它们是一脉相承的,JSF既借鉴了Struts的成功经验,也实现了质的飞跃。当然,相比从Servlet到JSP再到Struts的飞跃,Sun三年才磨出JSF这一剑,这次的飞跃无疑来得更大一点。
51CTO:感谢麻地河老师做客今天51CTO嘉宾访谈,和大家一起探讨JSF开发技术,让我们对JSF面向组件、基于事件驱动模型的Web开发技术有了一个初步的认识;麻地河老师还向大家介绍了JSF的学习方法、Java开发框架的技术前景和发展趋势。再次感谢麻地河老师。
用户点评