 |
| 利用 Java EE 进行开发已经变得困难 |
|
variable 原创 更新:2008-06-05 09:19:18 版本: 1.0
|
|
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能掌握得了吗?
Java社区要有改观,这样散乱下去Java就成了怪物。
|
|
|
评论人:vedadou
|
发表时间: Thu Jun 05 10:46:45 CST 2008
|
不知道你想说啥 既然前面说了j2ee复杂,又说造出来那么多蓝领,自相矛盾
|
|
|
评论人:zhousx18
|
发表时间: Thu Jun 05 11:58:18 CST 2008
|
|
越是困难越显水平!J2EE是真正能拉开档次的技术;
|
|
|
评论人:raptorcn
|
发表时间: Fri Jun 06 09:41:09 CST 2008
|
对你的看法表示赞同,尤其是1.5后的Anotation,鸡肋 java已经变得越来越复杂了,框架还是适可而止好,我用jsp+javaBean一样能开发出相当健壮的系统,而且越是底层的东西运行效率越高,所以现在还是用我的1.4.2
|
|
|
评论人:javamonkey
|
发表时间: Fri Jun 06 23:23:13 CST 2008
|
首先很欣赏作者研究JavaEE的热情,毕竟象这样的标准,认真看待的人不多--都去研究框架和工具去了。 不过我认为从此文能看出作者对JavaEE的不了解以及对现在用人单位需求的迷惑。我针对的每一点进行说明如下: 对于第一点,Java还是改进了很多(提醒一下,这并不是你要说的JavaEE,而是JavaSE),如虚拟机的性能,如并发编程等。Generics在我看来算是语言的巨大进步,这也不是java一家搞出来的。还有回复贴里说的Annotation,其实相对于配置文件来说,也是很不错的,解决了代码和配置不在一起,难以维护的问题 第二点,EJB进步是巨大的,EJB2.1以前需要继承,现在的EJB就是一个Pojo类,另外,JPI和EJB结合使用,取代了以前的EntityBean. 第三点:我向来反对使用Spring,但是用人单位要用,那也只好去学习,但我个人觉得Spring如果只是用IOC,那他会有消失一天的,还是JavaEE一统天下,如果他不想这么消失,那他只好绑定无数的工具,最后成为你学习的累赘 第四点:JavaEE从来没有提到什么Framework,你说的Struts,Spring并不是必须的,但现在用人单位好像非要掌握这些框架不可,我跟你一样同样也很无奈。太多的精力去掌握不同的框架,没有时间去深入某一个技术。 第伍点:javascript/css这些都不是JavaEE技术,别混淆了。另外单元测试,代码管理也不是JavaEE技术,不要把你在项目中遇到的麻烦归结于JavaEE里。从Web应用来讲,这些都的却是需要掌握的技术。除非你去做个嵌入式的开发,打交道的就是那几种芯片。
开发JavaEE程序,的确是存在用的过于复杂现象,没有办法啊
|
|
|
评论人:lgx522
|
发表时间: Tue Jun 10 17:56:01 CST 2008
|
Java社区最大的特点就是自由民主,由此成就了Java的繁荣,也造成了Java的混乱。
很多Java的开发者长期承受着这种混乱所带来的?徨和痛苦,本人也曾经在这条漫长之路多次摇摆不定。最近又回到Java社区,在此谈一点经验吧。
在当今的各种语言中,Java是适应度最高的,缘于其一贯的中庸主义,使得Java达到开发效率-性能的最佳平衡。这也就是说,论开发效率,Java不高不低;论执行效率,Java不快不慢,这其实意味着它可以让我们在大多数情况下搞定问题。
所以学习应用Java,要相当的专心和耐心,因为它是那种值得我们使用数十年的语言。大家一定要深入掌握基础,好好吃透“Core Java”和“Think in Java”,而后根据应用的场景选择合适的技术,深入学习掌握。 Java最大的好处是“有选择”,最难的地方在于“如何选择”。这个问题要经过很多年的实践才会明明白白。这一点上,笔者认为最好还是从简到难,循序渐进,要想一口吃成胖子是不现实的。想当年笔者就是JSP入手不久后就直进EJB,后来折腾Spring和Hibernate,最后还是要转过头重温SDK和JSP。主要还是盲目跟风,受那几年的风潮影响,其间浪费了太多的时间精力,实在是教训。
所以劝大家要静下心,沉住气。千万不要搞那些过度设计、华而不实的东西。用得着多少就用多少,不要为技术而技术,贪多贪大嚼不烂,早晚是要吃苦头的。
|
|
|
评论人:Jegg
|
发表时间: Fri Jun 13 09:51:47 CST 2008
|
文章写的有一定的道理,作为一个开发人员的确学要掌握很多的技术,我想不管是java也好.net也好,都要掌握a bunch of skills 才能完成任务,这个并不稀奇。java 变得越来越大也是java世界变得更加繁荣和丰富多彩的象征,当然这个也有一些副作用,比如给开发者带来了很多新东西,要花费更多的时间去学习,但是作为一个开发者,这个不应该是很大的障碍,因为技术是相通的,只是再学习的时候可能要细细体会并且充分理解该技术的精髓是比较花费时间的,比如我们使用struts如何实现的mvc框架化,hibernate如何实现的数据库对象化,spring 如何实现的对象需求注入等等。这些好的第三方产品和框架的确是天才思想的实现,java 世界有了这个层出不穷的新思想和产品以后才变得如此又生命力。
另外,不用担心java的前途,java 在98年火起来以后已经历经10多年的发展,无数的大的系统都建立在java之上,而且有许多的legacy系统也陆续的会移植到java之上。有兴趣可以到dice.com上分别输入java 或者.net 比较一下工作机会就知道了。
|
|
|
评论人:Jegg
|
发表时间: Fri Jun 13 09:56:07 CST 2008
|
文章写的有一定的道理,作为一个开发人员的确学要掌握很多的技术,我想不管是java也好.net也好,都要掌握a bunch of skills 才能完成任务,这个并不稀奇。java 变得越来越大也是java世界变得更加繁荣和丰富多彩的象征,当然这个也有一些副作用,比如给开发者带来了很多新东西,要花费更多的时间去学习,但是作为一个开发者,这个不应该是很大的障碍,因为技术是相通的,只是再学习的时候可能要细细体会并且充分理解该技术的精髓是比较花费时间的,比如我们使用struts如何实现的mvc框架化,hibernate如何实现的数据库对象化,spring 如何实现的对象需求注入等等。这些好的第三方产品和框架的确是天才思想的实现,java 世界有了这个层出不穷的新思想和产品以后才变得如此又生命力。
另外,不用担心java的前途,java 在98年火起来以后已经历经10多年的发展,无数的大的系统都建立在java之上,而且有许多的legacy系统也陆续的会移植到java之上.有兴趣可以到dice.com上分别输入java和.net 做个比较。
|
|
|
评论人:kevin6
|
发表时间: Mon Jun 16 03:37:42 CST 2008
|
|
good analysis..... Java has to be simple to its original....
|
|
|
评论人:thuang
|
发表时间: Fri Jun 20 09:13:22 CST 2008
|
|
good....good for pojo intro
|
|
|
评论人:jmualen
|
发表时间: Wed Jun 25 14:46:26 CST 2008
|
|
的确是,赞同你的观点。特别是现在JAVA各种开发框架特多,而且把核心的基础技术都封装在内部,让我们都变成了只知道怎么用,不知道为什么这么用的傻子,只知道表层,不知道内部结构。唉,没有办法啊,现在用人单位都要求掌握这些所谓的框架,你要是不去看看那找工作就成了问题,但是我觉得最底层的技术才是最牢靠的,这些所谓的框架就像是花拳绣腿,只有掌握了深厚的内功才能走遍江湖,称霸一方。
|
|
|
评论人:0505010218
|
发表时间: Wed Aug 20 00:32:19 CST 2008
|
java大的有点吓人了. "Java最大的好处是“有选择”,最难的地方在于“如何选择”。" 从c++到java,这点感触最深.
|
|
|
|
|
 |