技术开发 频道

JSF会不会重蹈EJB的覆辙



2. 惊人相似的历史,是否又会重演

    之所以提到Hibernate和EJB,不是为了特意褒贬一通,而是为了说明Sun在技术推广的策划上是如何掉以轻心的。仔细研究JSF技术,然后看看Java Web社区对JSF的抱怨,你就会发现,今天的JSF和当年的EJB,处境如出一辙。

    首先,和EJB一样,JSF也是一项超前的技术。试图建立一个Java Web的UI框架,模糊Java桌面编程和Web编程的界线,让大批程序员在桌面编程中积累的经验,可以原封不动地应用到Web编程中,这是任何其他Java Web框架所没有想到过的;

    其次,和EJB一样,JSF也有着极为复杂的概念。在JSF“简化Java Web开发”宏伟目标的背后,是JSF空前的技术复杂性。HTTP协议的无连接本性,以及请求响应处理模式,注定了Web编程的复杂性,尤其是Form处理的繁琐,是不可避免的。既然在JSF下,程序员不用面对这些复杂性和繁琐,那么,框架必须面对。这就是JSF变得复杂的原因。当然,基本的JSF编程相当简单,但要深入到JSF的内部,就需要掌握包括JSF请求处理生命周期在内的诸多复杂概念;

    再次,和EJB一样,JSF也缺乏工具的支持。当我们用各种IDE方便地编写桌面程序时,估计很难想象,缺乏这些工具支持,回到20年前,编程会是怎样一番景象。工具的重要性如何强调都不为过。JSF被设计成面向工具,但是,JSF推出时,可用的工具少得可怜,即使现在,可视化的JSF页面编辑器也不多见;

    最后,和EJB一样,JSF也是拙劣商业推广策划的牺牲品。没有及时推出,推出后又未处理好和JSP的关系,也未见大规模的商业推广,JSF仅仅靠自己的技术优势,在和竞争对手周旋。

    当年的EJB有Hibernate与之抗衡,今天的JSF则有Struts等在旁边冷笑。历史总是惊人地相似,而惊人地相似的历史,又常常一如既往地重演。EJB的命运不堪回首,JSF会重蹈覆辙吗?Sun,请告诉我们答案!
0
相关文章