为了JSF,Sun攘外必先安内
【IT168 专稿】与JSP相比,JSF所处的竞争环境要复杂得多。JSP只有ASP和PHP两个对手,JSF却面临着Struts、Spring、WebWork和TapeStry等众多Java Web框架的挑战。为了推广JSF,Sun本应妥善处理JSP和JSF的关系,可惜Sun的举措恰恰把JSP和JSF对立起来了。不明白“攘外必先安内”的道理,Sun将置JSF于何地?
1. JSP三国鼎立,JSF却是群雄纷争
与JSP相比,JSF所处的“世道”似乎更为惨烈。JSP的竞争对手毕竟有限,点得出名的,也就Microsoft的ASP以及Andi Gutmans与Zeev Suraski创立的PHP,即使三分天下,也够满足各自的胃口了;JSF就不那么幸运了,其诞生之日,正是Java Web框架的战场上八仙过海、各显神通之时。Struts、Spring、WebWork、Tapestry等等,哪一个不是声名显赫,家道殷实?或占山为王,或割据一方,Java Web的餐桌上,早已宾朋满座,杯盘狼藉!
外面的世界有多少对手虎视眈眈,暂且不说,甚至Sun公司内部,也有欲与JSF一争高下的技术,那就是前文提到过的,大名鼎鼎的JSP。Sun公司的市场策略实在是让人不放心,与Microsoft相比,Sun更像一个能干的工程师,而不是一个精明的商人。Sun开发了无数的技术,有阳春白雪曲高和寡的,也有下里巴人妇孺皆知的,Java程序员经常被Sun层出不穷的技术和术语弄得疲惫不堪。如果不是Java“Write Once,Run Anywhere”的深厚功底在支撑门面,也许很多程序员早已重回Microsoft的旗下了。
Sun不停地撒下技术的种子,在Java的土地上,到处是一棵一棵营养不良的小树苗;而聪明的Microsoft只种了ASP.NET一棵树,现在已经长成栋梁之材了。JSF已经出生快3年了,从1.0到1.1到现在的1.2,Sun一直沉浸在不断升级的快感中,从来没有看到他们为JSF进入程序员的视野做过什么事情。
2. 攘外必先安内,Sun应调整策略
在一个产品内,应该尽量避免开发相互竞争的两项技术,这是一般人都会坚持的一项原则。当然,我们处在一个快速多变的时代,夫妻反目,父子成仇,神圣的家庭伦理道德观念尚且屡被践踏,何况区区商业原则乎,因此,很多时候,坚持原则并不容易。比如Microsoft,就做过很多放弃原则的事。当然,Microsoft足够精明,他们给“放弃原则”取了一个新的名字,称为“升级”,所以,Microsoft一直都很成功。
Sun也很聪明,但显然不够精明,尤其是在处理JSP和JSF的关系时。在Sun的所有文档上,每提JSF必先提JSP,好像没有了JSP,JSF就不能独活。在技术上,JSF确实是建立在JSP技术之上,默认情形下,JSF和JSP页面具有同样的文件名后缀,都是.jsp,而且和所有JSP页面一样,JSF的页面也要被容器翻译成Servlet,经过编译然后才被执行,也就是说,在容器看来,JSF页面其实就是JSP页面,但他们的联系仅此而已,既非永结同心的夫妻,也不是情深似海的恋人。虽然形式上,JSF是JSP生下的一个蛋,但钱钟书不是早说过了吗:“假如你吃了一个鸡蛋觉得不错,又何必要认识那下蛋的母鸡呢?”,我一直没有弄明白,Sun难道还嫌JSP的光环不够耀眼,非要再摆到台上供起来吗?
作为一项新的、与JSP并列的Java Web开发技术,甚至在Sun的入门文档J2EE Tutorial上,也被排在了JSP之后。我相信,很多Java Web的新手,在阅读这份文档时,首先看到的会是JSP技术,并且很快被JSP容易上手的特性吸引,进而陷入JSP的泥沼里,不能自拔,后面的JSF技术再精彩,谁又看得到呢?
3年前我就是这样被JSP诱惑了,在JSP的迷雾里转悠了3个月,与JSF失之交臂。Sun公司这样的版面安排方式,是典型的技术专家风格,讲究先来后到,严守长幼尊卑;商人多半不会这样,什么东西好,就摆在最显眼的地方,有时还要加上漂亮的包装。
JSF本身已经很出色,即使没有漂亮的包装,也足以吸引程序员挑剔的目光,可惜被Sun摆在了角落里,与蛛网和灰尘为伍。古人云“攘外必先安内”,虽然被蒋先生在抗日战争时期错误地运用了,但这句话送给Sun不失为一剂良药。
0
相关文章