“Java产生于网络”,这是几年前java程序员一直津津乐道的话题,伴随着互联网的蓬勃发展,Java也曾有一股气吞山河,一统天下之势。然而今天,我们看到PHP占领全球网站应用的大半市场,Microsoft的ASP及.net占领了很大一部份市场(看看国内的各种网站、看看中国的党政网),还有其它Web开发语言也占据了一部份,最后剩下给Java可谓寥寥无几。PHP正在以他深得人心的简易开发优势快速扩张,如今又冒出个新贵Rails/Ruby在后面耀武扬威宣称要替代Java、消灭Java。我们不禁感叹:Java路在何方?
成也萧何,败也萧何。我们认为,造成Java今天之局面的一个主要因素是Java技术的极度灵活,Java技术领域的“有组织、无纪律”。动不动JCP就给你搞一个Specification,管你怎么去实现;Java开发社区TTS及sourceforge.net每天都有新的框架或开源产品发布,最终这些技术及产品到其使用者(软件企业及程序员)手里时,他们根本不知道该如何选择。你不跟潮流别人就会笑话你古董,而且最让java程序员烦恼的莫过于昨天才辛辛苦苦掌握并引以为豪的新技术、新框架,今天就被别人嘲笑你所学会的东西已经落伍、老掉牙。
另外,Java技术的“强大功能”及其“复杂性”也是造成Java应用步履蹒跚,举步为艰的一个不可忽视的因素。功能的强大是以技术的复杂作为代价,一个功能强大的系统总是由众多简单的小系统堆积而成。我们以为:“简易、实用才是硬道理”!再强大的功能也要以实用为基础,脱离了实际应用便是空谈乌托邦。如果实际应用中不可能用到,那我们又何必花那么多的精力煞费苦心地去搞那么多的设计及构架,(又何必点灯熬油挥汗如雨地去建一个很难登上的空中楼阁呢?)纵观今天java技术的应用,复杂得有点离普。一个简单的Web应用动辄就要戴上N层高帽,Web使用Struts(JSF)、持久层用hibernate(JDO/Entity Bean)、还引入了Spring或EJB,要IOC、AOP、支持任意数据库、支持任意存诸方式、支持组件对象关系任意配置、支持Web Service……如此琳琅满目的技术,如此强大的功能,想不复杂?难啊!时至今日,又有谁能象当年IBM总裁郭士纳一样让Java这个庞大,复杂的大象也能跳跳舞呢?
Java在国内不能得到很好应用的一个主要原因是国产Java技术落伍。在Java世界,开源、优秀的东西很多很多,但基本全是泊来之品。也只有那些技术牛人、大型软件企业、外资企业,才有实力研究并很好运用。当前还有众多的中小型软件企业停留在JSP+Java Bean的时代,很多中小企业甚至老牌软件企业的CTO或者项目经理到现在还常理直气壮的说:"客户不就是要求J2EE平台吗?我们的JSP、Tomcat、JBoss不全是J2EE技术吗?”是的,软件嘛,能解决问题就行,好不容易花了两三年搭建起来的技术体系,说换就换,哪有那么容易啊!于是,软件越来越难以维护,越来越难以扩充,更加无法满足客户的新需求。
再看国内很多比较知名的软件企业提出的一些新开发构架、开发体系、中间件及工具等,其基础核心仍然是国外引进的东东。比如很多软件公司开发的快速开发工具,构件开发等,都是以Struts、Spring、Hibernate等为基础,也就是要用他们的工具,开发东西还得要学Struts、Hibernate等。对于国内很多的初级开发者来说,学习这些框架的难度曲线太大。技术本土化不仅仅是把一门语言翻译成另外一门语言,更重要是思想的本土化、核心内容的本土化。
说到技术及框架,一个国外的先近技术框架,都是别人先尝试用了N久证明了它的先进以后,我们国内才有一部份人拿进来开始慢慢学习,然后再宣传普及,等我们大部分人刚刚学会并以此为荣,奔走相告的时候,人家又搞了一个更加先进的出来。汗颜啊,难道我们只能疲于奔命地被人家牵着鼻子走吗?
。。。。。。
(本文摘自《EasyJWeb简易教程》,作者为大峡、眸宽、stef等EasyJF开源团队成员,转载请保留作者声明!)
http://zjq100.spaces.msn.com/blog/cns!B72C9A75779F3479!579.entry