EJB用自己的悲剧人生警告Sun,不可对新技术的推广掉以轻心,但Sun还是再次犯下同样的错误。与Microsoft和Intel成功的商业推广策略截然不同的是,Sun 完全没有估量到,JSP作为一项成功技术的价值和影响力,在JSF的推广上,出现了令人痛心的失误。如果JSF以JSP3.0的名义推出,那么JSF的日子恐怕要比现在好过得多。
1. JSF没有站在JSP巨人的肩膀上
前文说过,EJB是Sun的伤心往事,它用自己的悲剧人生,警告Sun,不论技术也好,商务也好,凡事应该有一个全盘的规划,再也不能想到什么是什么了。一项好的技术,如果不加以适当的推广,最后可能逃脱不了被束之高阁的命运,大把的资金投入,自然也难免竹篮打水一场空。
当然,如何进行商业运作,Sun比我高明得多了,似乎轮不到我在这里说三道四,不过,Java已经不单单属于Sun了,Java已经成为全世界的Java,所以,所有的Java程序员,都有发表自己意见的权利。未必都是真知灼见,但Java世界就是因为有这些不同声音的存在,才显得无比的精彩。
其他的技术我不敢妄加评论,就JSF这项技术而言,Sun的商业策略实在是不敢恭维。在JSP已经深入人心的时候,为什么不继续沿用JavaServer Pages的这个如雷贯耳的名称,而要标新立异地推出一个JavaServer Faces的怪物呢?你看人家Microsoft,在ASP流行开来之后,推出ASP.NET,是多么的顺理成章。
暂且不论这两项技术的区别有多大,就冲着似曾相识的名称,Microsoft就让大批的ASP用户,自觉自愿地加入ASP.NET的阵营。没有任何抵抗,Microsoft兵不血刃,不费一枪一弹就完成了从ASP向ASP.NET的过渡。
同样的策略Intel也曾使用过。第一代“奔腾”芯片推出后,获得了巨大的成功,“奔腾”一词,一时间名噪天下。Intel看到了这一点,并且立刻明白了该怎么做,所以,当下一代芯片制造出来时,Intel完全没有在命名上费什么脑筋,直接冠以“奔腾II”的名字,马上令一大批“奔腾”的爱好者趋之若骛。此后,“奔腾III”“奔腾IV”,Intel将“奔腾”一词的所有油水都榨干了,才心满意足地构思下一个名字。
相比之下,Sun则完全没有估量到一项成功技术的价值和影响力。令多少对手眼红的JSP背后庞大的用户群,Sun却视若无物,不知道Sun是没有看到这一点呢,还是不屑利用这一优势。
不管怎样,当JSP如日中天时,不知借JSP之势点燃JSF的大火,反而暴殓天物,另起炉灶,Sun简直就是在自毁JSF的前程。也许Sun主观上并不存在这样的故意性,但客观上造成了这样一种局面,也是不可原谅的失误。
2. JSF唯有一切从头再来
如果JSF没有叫做JSF,而是叫做JSP 3.0,情形会是如何呢?
可以想见,首先,大批的JSP爱好者会蜂拥而至,庆贺JSP的新版本;然后,一批“牛人”们很快发现,JSP的新版本,引入了他们期待已久的组件模型和事件驱动模式,JSP终于有了和ASP.NET抗衡的资本;接下来,“牛人”们必定奋笔疾书,以超凡的热情四处撒播JSP 3.0的种子。
于是,网络上、论坛里,到处充斥着为JSP 3.0唱赞歌的文章,JSP 3.0成为炙手可热的名词,而Sun专家们借JSP 3.0的名义推销的JSF组件模型和事件驱动模式,说不定现在已经成为Java Web编程的新贵。
将JSF以JSP3.0的名义发布,绝非戏言,是完全可行的。从技术上来看,JSF是建立在Servlet/JSP基础之上的,和JSP有着天然的联系,将JSF作为JSP3.0的一个崭新的扩充部分,随JSP3.0一起发布,即符合从JSP到JSF的平滑过渡的要求,同时也能满足程序员对于JSP3.0新特征的期待。
实际上,JSF和JSP融合的趋势越来越明显,例如在JSF1.2版本之前,JSP和JSF各有一套独立的表达式语言(EL,Expression Language),而从JSF1.2开始,这两套不同的表达式语言已经统一为Unified EL,并且从JSF和JSP规范中分离出来,自成一体。所以,让JSF搭上JSP的快车,一起前进,其实是很自然的事。
可惜,这些只能发生在Sun的梦里了。JSP与JSF,一字之差,Sun将一项颇具潜力的Java Web框架技术,亲手打回到娘胎中,让其以一个初生婴儿的身份,光着身子降临到Java Web世界。这个本来可以衣着光鲜地与ASP.NET一起独步江湖的汉子,现在唯有恨恨地抛下一句“君子报仇,十年不晚”,然后黯然离去了。
文章转贴自CSDN:http://news.csdn.net/n/20061225/99906.html
分享到:
相关推荐
JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...
JSF为JAVA的 Web应用用户界面的开发人员提供了标准的编程接口、丰富可扩展的UI组件库(一个核心的JSP标记库用来处理事件、执行验证以及其他非UI相关的操作和一个标准的HTML 标记库来表示 UI组件)、事件驱动模型等...
JavaServer Faces(JSF)是Java平台上用于构建用户界面的Web应用程序框架,它提供了一种组件化、事件驱动的方式来创建动态、交互式的Web应用。Sun Microsystems(后来被Oracle收购)是JSF规范的主要推动者和实现者。...
JSF 的主要优势之一就是它既是 Java Web 应用程序的用户界面标准又是严格遵循模型-视图-控制器 (MVC) 设计模式的框架。用户界面代码(视图)与应用程序数据和逻辑(模型)的清晰分离使 JSF 应用程序更易于管理。...
Java Web JSF + Richfaces + EJB + JPA 航空订票系统是一个综合性的应用,涵盖了多种Java技术,用于构建高效的、可扩展的、易于维护的Web应用程序。在这个系统中,每项技术都有其特定的角色和功能,共同协作以实现...
【Java考试系统Web版】是基于Java服务器页面(JSF,JavaServer Faces)技术构建的在线考试应用。这个系统提供了一种便捷的方式来进行在线测试,包括登录、试题展示、答题和成绩反馈等功能。通过深入理解这个系统,...
Java Web教程和资料电子书是一份宝贵的资源,它旨在引导初学者和有一定基础的开发者深入理解和掌握Java Web开发技术。这份教程涵盖了Java面向对象编程在Web环境中的应用,是提升编程技能的重要参考资料。 首先,...
java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js java+jsf+js
《Sun_JSF2AndAjax.pdf》这份文档深入探讨了JavaServer Faces(JSF)2.0框架中Ajax技术的应用与实践,提供了丰富的示例和技巧,帮助开发者理解和掌握在现代Web应用中如何高效地结合JSF与Ajax。 #### JSF与Ajax基础 ...
《2007年图书:JSP_JSF_Tomcat Web编程从入门到精通》这本书主要涵盖了Java服务器页面(JSP)、JavaServer Faces(JSF)以及Tomcat应用服务器在Web开发中的应用,旨在帮助初学者及有一定基础的开发者深入理解和掌握...
Spring框架,尤其是其子项目Spring MVC,是目前最流行的Java Web开发框架之一。它提供了一整套解决方案,包括依赖注入、事务管理、安全控制以及Web MVC模式等,让开发者能够快速构建可维护、可扩展的Web应用。 ...
Java Web是一种基于Java技术构建Web应用程序的框架和标准,它结合了Java服务器页面(JSP)、Servlet、JavaServer Faces(JSF)等组件,为开发人员提供了强大的后端支持和丰富的用户界面创建工具。本教程将围绕“经典...
JavaServer Faces(JSF)是Java平台上用于构建Web应用程序的一种组件模型框架,由Sun Microsystems(后被Oracle收购)开发并维护。本教程将深入探讨JSF的核心概念、工作原理以及如何利用它来创建高效、可维护的Web...
VisualWebJSF是一种基于JavaServer Faces (JSF) 技术的Web开发框架,它为开发者提供了更加直观和高效的工具来构建动态、交互式的Web应用。这个“VisualWebJSF架构使用教程”压缩包文件包含了关于如何使用该框架的...
**JSF(JavaServer Faces)** 是一种Java平台上的用户界面组件框架,用于构建Web应用程序。它提供了一种声明式的方式来创建用户界面,允许开发者使用HTML、XML(XHTML)和自定义标签来构建交互式的网页。JSF的核心...
《JSF Web应用实战开发》则深入到实际开发中,提供了许多实战案例,让读者了解如何在实际项目中运用JSF。内容可能包括如何处理表单提交、验证用户输入、使用AJAX增强用户体验、以及与数据库交互等。这部分资料会帮助...
《Java Web整合开发完全自学手册》是一本深入探讨Java Web技术的专业书籍,旨在帮助读者全面掌握Web应用程序的开发技能。光盘资料包含了源代码partII,这部分内容通常是为了辅助理解书中的实例,让读者能够动手实践...
JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它简化了创建Web应用程序的过程,特别是那些需要复杂用户交互的应用程序。在提供的压缩包中,有两个重要的jar文件:`jsf-api.jar`和`jsf...