J2SE 推出后,以其跨平台及友好的API迅速获得青睐。J2EE的推出,令Java作为首选的
开发环境迅速占领市场。但好景不长。至今为止,以Java为开发环境的开发越来越变得
复杂艰难。Java EE已经变得臃肿庞大,开发台阶与开发成本提高,开发效率下降,维护
成本提高。
原因很多。
其一,对普通用户来说,Java1.5 与Java1.4相比,并没有实质性的提高。Java1.5
增加了些什莫呢?不论 Auto boxing还是 Generics,对Java本身非但没有实质性的
提高,反而将Java糟蹋得够呛。
其二,Java EE 与 J2EE相比,也没有实质性的提高。EJB3只是将后台的配置转移到了
源代码中,利用Annotation来“修饰”源代码。经过一番“修饰”和相关资源“修饰”
性“注入”后,源代码已经很难看了@@@@
其三,这与Java 社区的演变也有紧密地关系,Java 作为开源平台与开源社区有着千丝
万缕的联系。Spring的出现,将Java开发一劈两半儿。EJB or No EJB 看起来是设计
选择问题,其实是严重影响了Java社区的健康发展:Java社区分裂了。
其四,Framework贻害无穷。Java社区的各种各样的所谓开发框架层出不穷,弊端无数。
主要有四:一是推高了Java开发人员的入门门槛,严重加重了Java从业人员的学习负担;
二是各种框架将基本的开发技能封闭在其所谓的框架之内,一般开发人员没有精力,也没
有兴趣研究透彻,失去了学习理解解决问题的基本开发技能的机会,成为真正的软件蓝领;
三是框架的应用,使整个设计复杂化,开发维护复杂困难,效率低下。四是各种框架的配
置复杂,使得开发工作变了味。这配置成了开发工作的拦路虎,到处是XML文件,也不知
道我们是在用Java编程还是在用XML编程。
其五,普通的Java开发人员需要掌握太多技术。以Web Application为例,前台要用框架
提供的标签,另外要懂html,css,javascript,ajax,jsp/servlet;中间流控制要采用框
架的编程接口,还要明白java,jndi,ejb;后台又要用持久化编程接口,又要搞清楚jdbc,
transaction,databases。还要掌握通讯协议,弄清楚满天乱飞的annotation,xml配置文
件;可以想象,一个普通的Java开发人员需要掌握多少技术,熟悉多少API和所谓的框架们
才能干活儿,更别提那各种各样的花钱与不花钱Application Server了?这还没提开发工
具,单元测试及源代码管理,公司业务等等。开发人员一跳槽,这一切都变了:跳不动啊!
你看看猎头公司列出的对Java开发人员的技术要求条件。我的天,谁能掌握甚至精通那些
技术?James Gosling能掌握得了吗?