中国开发网: 论坛: 程序员情感CBD: 贴子 520498
haitao
JavaEE到底忽略了什么?
JavaEE到底忽略了什么?
读了Sun中国工程研究院的黄健昌的blog:
与大家分享——JavaEE5与Glassfish应用服务器

感觉JavaEE仍然忽略了一些非常重要的东西。JavaEE中的Web表现层仍然是与服务器端牢牢地绑死在一起的,在Ajax和各种RIA技术异军突起的今天,显得相当落伍。当然我不是想说任何Web应用都应该将表现层前推到客户端来做,我们需要具体问题具体分析。但是可以肯定,大部分Web应用都可以将表现层完全前推到客户端。表现逻辑在客户端执行,可以带来更好的响应能力、更好的性能、更好的服务器端可伸缩性、更好的交互设计,这些已经是不争的事实了。Java在Web表现层开发方面是很弱的,现在已经成为了一个共识。因为Java没有办法统治桌面,所以只能在服务器端打转转,这是他们最无奈的一件事情。想靠JSF来救赎,只能是一种幻想,JSF并没有这样神奇的魔力。
JavaEE为何没有采纳这些业界的趋势呢?因为JavaEE传统的三层架构(在《J2EE核心模式》中有详细的描述)就是假设所有的工作都应该在服务器端完成,客户端是不具有智能的Thin Client。他们至今仍然顽固地坚持这种假设,只要闭上眼睛,就好像世界上什么都没有发生。
事实上,世界已经变了。比Ajax、RIA更加重要的可能是REST,这种架构风格必然将重新塑造Web表现层开发技术的面貌。RoR已经拥抱REST了,JavaEE呢?短期内不可能,因为这个REST架构风格对于传统的JavaEE的三层架构来说是具有很大的破坏性的。尽管事实上REST是简化Java Web开发的良药,但是良药苦口,看来他们现在还不愿意吃这味良药。在REST架构风格中,服务器端分层的设计并不是最重要的,最重要的是在资源(用URI来标识)的定义和HTTP通信语义的定义,也就是在REST风格Web服务的API的设计上面。同时,在REST架构风格中,客户端并不是Thin Client,而是具有高度智能的Rich Client或RIA应用。

JavaEE仍然在自己的小圈子里面打转转,在保持整体架构不变的情况下对自己做一些局部的优化和调整。却忽视了Web开发技术的发展趋势,长此以往,被M$玩死是很有可能的。

其实大部分Web开发者,包括基于B/S方式的企业应用的开发者,都非常渴望简化Web表现层的开发、得到令人赏心悦目的交互设计,传统的Java Web开发技术对此提供的支持是很初级的。Web表现层开发的工作量,在很多中小型项目中常常会占到整个项目开发工作量的一半以上。而后台往往只是一个普通的关系数据库。显然,这并不是什么火箭科技,然而,以善于建造火箭科技闻名的一些公司和团体却无法解决好这些初级的问题。让使用Java做这些初级的工作变得异常复杂。

Richard Monson-Haefel在去年宣告JavaEE已死,
http://www.infoq.com/cn/news/2007/04/Java-EE-Demise-Report
Bruce A. Tate也在《超越Java》对Java的前景发出了严重警告。JavaEE5显然在简化方面还做的远远不够。丧钟已经鸣响,是为谁而鸣呢?


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1635127







# qichunren 发表于2007-06-04 12:48:35 IP: 222.180.22.*
那怎么解决这一问题呢?看到这里有些不开心啊


那怎么不说一下.net在这方面的表现呢?



# user2008 发表于2007-06-04 13:21:54 IP: 222.66.166.*
都觉得傻瓜相机好用,可是用傻瓜相机的有几个是摄影师?
说java ee死亡仅仅是厂商为了利益的互相攻击,如果java ee真的像你所期待的那样了,那java ee才是真正的死亡。
对于你们这些外行来说,你们仅仅以好用不好来衡量,用一些所谓的流行来批判,充分说明了你们对技术的无知。如果连你们都觉得java ee好,才java ee才是死了。




# xiangtianxiao 发表于2007-06-04 13:44:25 IP: 222.240.162.*
这么严重的事啊,我也是java的崇拜者



# tonyyl 发表于2007-06-04 15:14:25 IP: 59.108.104.*
我不认为b弄得像c似的就好,也不认为那样就是趋势,即便是,那样的东西用java也是能实现的啊



# key232323 发表于2007-06-04 15:43:48 IP: 165.229.191.*
一边在捧中间件,一边又捧富客户端,
分层设计才是硬道理,支持不好只是因为没有人去写两者的接口



# key232323 发表于2007-06-04 15:46:17 IP: 165.229.191.*
支持下user2008

讲究紧耦合的一堆邦定别以为java没有,很多公司内部的框架多地去了,只是不开源而已。



# stevech 发表于2007-06-04 18:25:41 IP: 222.214.210.*
文中似乎提了两个问题:1、JavaEE在Web表现层不够好;2、所有的计算都交给了服务器端。
就目前而言,Web表现层基本上是交给HTML和JavaScript来处理的。HTML负责表示,JavaScript负责运算,这样的结合其实已经是很不错的了,JSP只不过是提供动态内容的HTML而已。不过,HTML生成的表示,绝敌不过Flash生成的表示,这个问题不能算在JavaEE的头上。
另一方面,JavaScript并没有很好地被发挥出来,像JSF中很多的内容验证器,比如数据的格式、范围等,其实应该由客户端的JavaScript来执行。不过这是Web开发者的问题,而不是JSF的问题。
对于RichClient,Java其实有两个非常优秀的技术:经典的Applet(以及JApplet)和Java Web Start,这两个技术其实完全解决了客户端计算问题,但是,1 MS铁了心跟Java过不去 2 JRE过于庞大(相对于Flash和没有耐心的Internet用户) 只有在企业内部,才可以大量地使用这两个技术。



# stevech 发表于2007-06-04 18:36:46 IP: 222.214.210.*
另外,该试试JavaFX了

有JavaFX (F3)经验的来说说
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录