`
robbin
  • 浏览: 4821402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
377a9ecd-1ea1-34ac-9530-9daa53bb2a7b
robbin谈管理
浏览量:137058
社区版块
存档分类
最新评论

Java开源框架发展的遐想

    博客分类:
  • Java
阅读更多
上周末在杭州网侠大会做演讲的时候,我说:Java开源框架的革命浪潮已经结束了,未来几年,将是Java语言级别的革命。说实话,自从03年Hibernate火爆,04年spring流行之后,Java开源领域实在太缺乏亮点了。但是,Java的主流开源框架真的一点改进的余地都没有了吗?

先来说说Hibernate吧。Hibernate确实功能强悍,但是Hibernate不够易用,而且有一些明显的缺陷:one-to-one必须通过bytecode enhancement才能lazy loading;不支持多态关联;怪异的inverse配置和维护;DetachedCriteria有明显的bug;many-to-one的eager fetch设置不够灵活,让Hibernate的使用者真是又爱又恨,使用起来战战兢兢,如履薄冰阿。Gavin King同学是个很刚愎的人,他似乎从来不觉得这些问题是问题,而且他已经把自己的主要精力放到JBoss Seam产品上面去了,也许我们只好继续忍受了。那么JPA呢?JPA标准就像是Hibernate模子里面刻出来的一样。但是为什么人们总是在忍受Hibernate缺陷的同时,却没有去努力改进这些问题呢?

我想,问题的关键在于一些缺陷的改进需要对Hibernate整个源代码架构进行伤筋动骨的改动,但是对于Hiberante今天所取得的垄断地位来说,显然Hibernate的开发者们已经缺乏足够改进的勇气和魄力了。


Springframework,简直如日中天,定义了轻量级Java企业应用开发的事实标准。但是spring真的很完美吗?我们已经听到太多对于spring的xml bean配置文件的抱怨。也许配置文件不是太大的问题,spring已经开始尝试引入annotation。但是spring的致命问题是无法方便的对动态创建的bean进行依赖注入。Google Guice的出现让我们看到了其实prototype的bean和动态创建的bean其实也可以很容易的管理。spring自身的缺陷事实上造成了很难进行rich domain model架构的实现。

Rod Johnson创办的interface21公司专职从事spring的咨询,最近已经得到了1000万美元的风险投资,是没有足够的资源去改进spring吗?当然不是。是因为spring今天所取得的垄断地位使得spring的开发者们没用足够的勇气去推翻spring现在的架构,进行重大的改进。


Java的Web框架领域这两年非常令人失望:Tapestry在升级的过程中不断的迷失自己,丧失用户;webwork和struts合并了两年了,结果只搞出来一个完全webwork版本的struts2.0.6,毫无改进;JSF叫嚣的厉害,却没有前途;wicket叫好却不叫座;当年令人眼前一亮的stripes两年来一直小修小补。

web框架没有改进余地了吗?其实我们稍微想一下,就发现web框架大有改进余地。例如以struts2.0为例,完全可以仿照RoR,大量使用annotation和CoC,完全消除action的配置文件,完全消除validations配置文件,但是struts2.0叫嚣了两年的Zero Configuration,却干打雷不下雨。

是的,struts2.0有一个叫做restful的actionmapping,但只是徒有其表。我们想一下,只需要稍微修改一下struts2.0的URL Mapping机制,扩展一下FilterDispatcher,再扩展几个URL的JSP Tag,让Struts2.0完全支持REST架构风格,完全不是什么难事。为什么struts2.0两年以来毫无动静?实在让人无法理解。

所以Java社区其实有很多事情可以做,而且难度也未必很大,但很奇怪的是,为什么社区显得如此沉寂呢?没有创新性的产品出来呢?我也想不明白。



分享到:
评论
33 楼 chinawomen 2011-09-13  
众口难调。想方便使用自己拓展定制去吧 用别人的东西总是有感觉不爽的地方
32 楼 radar 2007-05-25  
不甘寂寞的人太多!
想从中获取点名利的人太多!
有思想的人太多!
无尝奉献的人就少了!


dlee是我见过最无私的人!期待java rest,但不是很看好。
框架热已经过去,
期待与行业紧密关联的技术方案多点,成熟点。
31 楼 cctvx1 2007-05-25  
其实说白了就是一句话:

   国内的普遍现象 就是说的多做得少,说起来天下无敌,做起来却有四肢无力。

   包括偶自己,不过还好,现在低调做人,高调做事的人也开始多了,毕竟

在说多了之后大家也都烦了。

   
30 楼 大愚弱智 2007-05-25  
要是都倒退回到CLI的时代多好,省掉了许多麻烦
29 楼 yingjie000 2007-05-25  
做了一年的java开发,
感觉,java应该向自动生成代码发展。
28 楼 diandidemeng 2007-05-25  
说白了,各个方面的考虑的因素太多,开源这一块,没有一个强大的社区来统领,组合几大框架的优点,很可能进一步的迷失方向,不管是那个框架,还要注意被ms吞没的市场.
27 楼 ken1984 2007-05-25  
替楼上回答一下,大家都认为那些框架不难,没什么技术含量,自己写又觉得烦琐,浪费时间,所以就不写了。
26 楼 johnnyhg 2007-05-25  
光说没用,Struts不是开源的吗?
也可以自己去修改,符合自己的使用习惯啊。既然如此简单的话。
25 楼 林秋枫 2007-05-25  
robbin 写道
上周末在杭州网侠大会做演讲的时候,我说:Java开源框架的革命浪潮已经结束了,未来几年,将是Java语言级别的革命。说实话,自从03年Hibernate火爆,04年spring流行之后,Java开源领域实在太缺乏亮点了。但是,Java的主流开源框架真的一点改进的余地都没有了吗?

先来说说Hibernate吧。Hibernate确实功能强悍,但是Hibernate不够易用,而且有一些明显的缺陷:one-to-one必须通过bytecode enhancement才能lazy loading;不支持多态关联;怪异的inverse配置和维护;DetachedCriteria有明显的bug;many-to-one的eager fetch设置不够灵活,让Hibernate的使用者真是又爱又恨,使用起来战战兢兢,如履薄冰阿。Gavin King同学是个很刚愎的人,他似乎从来不觉得这些问题是问题,而且他已经把自己的主要精力放到JBoss Seam产品上面去了,也许我们只好继续忍受了。那么JPA呢?JPA标准就像是Hibernate模子里面刻出来的一样。但是为什么人们总是在忍受Hibernate缺陷的同时,却没有去努力改进这些问题呢?

我想,问题的关键在于一些缺陷的改进需要对Hibernate整个源代码架构进行伤筋动骨的改动,但是对于Hiberante今天所取得的垄断地位来说,显然Hibernate的开发者们已经缺乏足够改进的勇气和魄力了。


Springframework,简直如日中天,定义了轻量级Java企业应用开发的事实标准。但是spring真的很完美吗?我们已经听到太多对于spring的xml bean配置文件的抱怨。也许配置文件不是太大的问题,spring已经开始尝试引入annotation。但是spring的致命问题是无法方便的对动态创建的bean进行依赖注入。Google Guice的出现让我们看到了其实prototype的bean和动态创建的bean其实也可以很容易的管理。spring自身的缺陷事实上造成了很难进行rich domain model架构的实现。

Rod Johnson创办的interface21公司专职从事spring的咨询,最近已经得到了1000万美元的风险投资,是没有足够的资源去改进spring吗?当然不是。是因为spring今天所取得的垄断地位使得spring的开发者们没用足够的勇气去推翻spring现在的架构,进行重大的改进。


Java的Web框架领域这两年非常令人失望:Tapestry在升级的过程中不断的迷失自己,丧失用户;webwork和struts合并了两年了,结果只搞出来一个完全webwork版本的struts2.0.6,毫无改进;JSF叫嚣的厉害,却没有前途;wicket叫好却不叫座;当年令人眼前一亮的stripes两年来一直小修小补。

web框架没有改进余地了吗?其实我们稍微想一下,就发现web框架大有改进余地。例如以struts2.0为例,完全可以仿照RoR,大量使用annotation和CoC,完全消除action的配置文件,完全消除validations配置文件,但是struts2.0叫嚣了两年的Zero Configuration,却干打雷不下雨。

是的,struts2.0有一个叫做restful的actionmapping,但只是徒有其表。我们想一下,只需要稍微修改一下struts2.0的URL Mapping机制,扩展一下FilterDispatcher,再扩展几个URL的JSP Tag,让Struts2.0完全支持REST架构风格,完全不是什么难事。为什么struts2.0两年以来毫无动静?实在让人无法理解。

所以Java社区其实有很多事情可以做,而且难度也未必很大,但很奇怪的是,为什么社区显得如此沉寂呢?没有创新性的产品出来呢?我也想不明白。


其实楼主最后的疑问自己已经部分回答了。
java开源框架担心在升级的过程中不断的迷失自己,丧失用户。

以Tapestry为例,实际上Tapestry并不是迷失自己。Tapestry5是个跨越性的发展,其作者想用质变的方式做一个优异的开源框架。但不幸的是因为跨越的幅度太大了,所以丧失了用户。很显然hibernate和spring很清楚这种后果,所以不敢对框架做大的改动。

用哲学的道理来看很清楚。量变的发展而导致质变。质变的结果是产生新事物。旧事务必定会对新事物的发展起阻碍作用。但新事物必定会产生,旧事物必定会被抛弃。

所以,再过一年或者两年,spring和hibernate必定会被抛弃。即使保留下来,也只是类似sturts2.0那样的品牌名字而已。

24 楼 pig345 2007-05-25  
robbin一针见血阿,指出了hibernate和spring的硬伤!

由于这两个框架的问题(hibernate的映射多态支持有限,不能够进行复杂的OO设计,spring不能管理new的对象),导致用他们实现RichDomainObject设计的确比较麻烦。

不知道有没有其他的替代框架,可以弥补他们在这方面的不足?
23 楼 ronghao 2007-05-24  
我倒是认为页面上应该出现一套完整的AJAX的框架。现在的AJAX框架也很多,但与我想象的不太一样,我更愿意称它们为组件。比如说数组件、表格组件、列表组件等等,它们是分离的、破碎的,互相之间缺乏一种强有力的通讯或联系,需要有一个总的框架把页面中所有的这些组件联系起来。就像rcp中那样。这样也就不存在页面的跳转了,one page one application
22 楼 江南白衣 2007-05-24  
ESB/SOA现在越来越多实质性的开源方案,可以结合ESB/SOA/J2EE搞一把后台业务处理服务器,里面涉及挺多东西:)

不过,的确是用户太少,使用者比SSH差了两三个数量级不止,想想还是没有信心自己做这方面的开源。
21 楼 blogbin 2007-05-24  
除了Web, Spring和Hibernate之外,不少Java开发人员致力于其它领域的开源项目的开发。比如在测试,工作流,搜索领域等等,不过目前为止没能具有前者那么广泛的影响力。可能是采用前面提到的三大件就可以解决国内大部分信息化系统的建设,因此其它领域关注的开发人员较少的缘故。

blogbin
20 楼 江南白衣 2007-05-23  
如果可以,跳开WebApp搞点别的嘛。
19 楼 Julien 2007-05-23  
轮子这个比喻是错的,前面的人已经说过了
不是重复发明轮子,而是要不断的发明橡胶轮胎,防扎轮胎,自补轮胎等等等等。
既然有了stuts,为何还要webwork?这不是重复发明轮子么?
C++好好的,干嘛要发明java?这不是重复发明轮子么?
18 楼 YuLimin 2007-05-23  
看到轮子,我想到了这个
http://blog.csdn.net/jiangtao/archive/2007/05/23/1621960.aspx

中国的公司和美国最大的不同,缺乏合作和整合, 所有产品希望全部自己做,大量人员做重复的工作。
有人把这形象比喻为麻将思维,:“各自为营”第一:“要看死上家”,第二:“要抵死对家”,第三:“要卡死下家”,最后是要洗白三家,只活自己我一家。
17 楼 ahuaxuan 2007-05-23  
robbin 写道
leisure 写道
robbin大牛,搞个国产的框架吧


我到是很有兴趣改造改造webwork,添加REST功能的,但我实在没有时间。dlee可能最近要自己搞一个开源的Java REST框架,可以关注一下。

有兴趣能否参与啊
16 楼 robbin 2007-05-23  
leisure 写道
robbin大牛,搞个国产的框架吧


我到是很有兴趣改造改造webwork,添加REST功能的,但我实在没有时间。dlee可能最近要自己搞一个开源的Java REST框架,可以关注一下。
15 楼 leisure 2007-05-23  
robbin大牛,搞个国产的框架吧
14 楼 ahuaxuan 2007-05-23  
对于hibernate,不觉得还能创新什么,要创新就不是改hibernate,而是重新做一个orm框架,思想大不一样的框架,就如有人在说bob大叔在做
而对于web框架来说目前比较需要而且有用的改动应该就是coc,coc应该是趋势了,而是否是用annotation来做配置估计并不是很重要,即使使用xml也没有问题,为什么,coc之后,需要配置的东西已经不是很多了,在class中配置还不如在xml来得简单明了,尤其是通用性的东西

相关推荐

    与Java相关的四十个响亮的名字

    "Java发展历程" Java是一种广泛应用于互联网的编程语言,其发展历程可以追溯到1990年。该语言的诞生离不开Sun公司的工程师Patrick Naughton和James Gosling等人的努力。他们为了开发一种新的基础平台技术,启动了一...

    人类文明发展的遐想.ppt

    【公元2020年-2130年】这段...这些遐想揭示了科技进步对人类生活方式、社会结构、环境互动以及伦理道德的深刻影响,同时也提出了许多挑战和机遇。随着科技不断发展,人类文明将持续演进,探索未知,创造新的可能性。

    人类文明发展的遐想.pptx

    【技术发展概述】 随着时间的推移,科技在人类文明发展中起着越来越重要的作用。从公元2020年开始,三维全息电视的引入改变了人们的娱乐方式,而氢燃料电池技术则引领了交通运输领域的革命,推动了环保汽车的发展。...

    TEAM论坛 绿色遐想

    总的来说,"TEAM论坛 绿色遐想"提供的模版资源为网页设计师和开发者提供了一个便捷的起点,让他们能够快速创建出具有专业外观的网站,同时也能激发他们的创新思维,推动他们在网页设计领域不断探索和发展。

    04-JAVA运算符思维导图

    JAVA运算符思维导图,便捷整理思路,算数运算符、连接运算符、赋值运算符、扩展赋值运算符、三目运算符、逻辑运算符、关系运算符

    新年“芯”遐想——探寻多核心CPU进化与发展.pdf

    随着科技的飞速发展,CPU(中央处理器)作为计算机系统的心脏,其进化历程一直是IT领域关注的焦点。本文将深入探讨多核心CPU的发展趋势、技术原理及其对现代计算性能的影响。 多核心CPU是指在一个物理封装内集成两...

    10-JAVA-多态

    JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型

    06-JAVA方法类型

    JAVA方法思维导图,便捷整理思路,方法的定义以及分类:、方法的基本语法格式、方法的调用、方法重载、break、continue、return区别

    flash作品——遐想

    关于生活吞星的遐想,好的flash作品,值得下载

    02-JAVA基础思维导图

    JAVA基础思维导图,便捷整理思路,Public与Class的区别、Classpath、JAVA关键字、字符编码、字面值、命名规范

    短视频产品的竞品分析与教育短视频的一些遐想.pdf

    "短视频产品竞品分析与教育短视频的一些遐想" 以下是对短视频产品竞品分析与教育短视频的一些遐想的详细...只有通过深入了解短视频产品的竞品选择和教育短视频的一些遐想,才能更好地发展短视频产品和实现教育目的。

    12-JAVA类之间的关系

    JAVA类之间的关系思维导图,便捷整理思路,泛化、实现、依赖、关联、组合、聚合……

    03-JAVA数据类型思维导图

    JAVA数据类型思维导图,便捷整理思路,变量、变量操作、变量的分类、数据类型、变量的内存分析图、类型之间转换

    云计算带来无限遐想.pdf

    云计算带来无限遐想.pdf

    05-JAVA程序流程控制三大结构

    JAVA程序流程控制三大结构思维导图,便捷整理思路,顺序结构、选择结构(if、if else if、switch case)、循环结构(for循环、while循环、do while循环)

    月光下的遐想.docx

    《月光下的遐想》是一篇作文教案,其核心目标在于培养学生的想象力和综合运用叙述、描写、抒情、议论等表达方式的能力。通过不同场景的创设和音乐的配合,教师引导学生从多角度观察月光这一主题,并引发他们进行深入...

    (八)冬日的遐想.docx

    (八)冬日的遐想.docx

    春天的遐想作文.doc

    【春天的遐想作文.doc】是一篇以春天为背景,以儿童视角展开想象的作文范文。作者许家瑞通过描述二年级学生军军在公园的所见所思,展现了春天的美好与无尽的遐想。 文章的核心内容是军军在春天的公园中,观察到花朵...

    通达信指标公式源码 成本遐想 主图源码.doc

    这两部分的计算同样运用了黄金分割比例,目的是在不同时间框架之间找到平衡点。 最后,`(M60+0.618*M120+0.382*M240)/2` 计算了60日、120日和240日的成本平均,这代表了更长期的趋势判断。这一部分的计算同样遵循了...

    初中语文文摘励志行走的遐想

    这篇文摘虽然名为“初中语文文摘励志行走的遐想”,但实际上它蕴含的是一份对生活的深刻感悟,以及对自然、人性与内心的沉思。文章并没有直接涉及IT行业的专业知识,而是通过作者对行走的热爱,传达了对宁静、自我...

Global site tag (gtag.js) - Google Analytics