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

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



分享到:
评论
13 楼 kldwq2002 2007-05-23  
为什么总是盲目的听信所谓的软件开发常识,而从不去想这些东西到底对不对,在我来看,大家常挂在嘴边的一些常识,其实很有问题。
12 楼 kldwq2002 2007-05-23  
对重复发明轮子的例子是不适用于软件开发的,我们需要的是更好更强的工具与框架,旧轮子会磨损,破旧,不适用新的车子。同样的事没准会一直有人重复去做,我们需要得到新的轮子,新的材质,新的工艺,让我们的软件大车走的更好更稳。
11 楼 kldwq2002 2007-05-23  
说实话,这些框架,有时就会让你感觉吃到了苍蝇。
10 楼 calmness 2007-05-23  
始终不太喜欢Annotation,灵活是灵活了,但是遇到大型项目的时候,将会成为比XML更麻烦的负担,这也是不使用GUICE的主要原因,java如今确实很少亮点,让人挺郁闷的,反而富客户端越来越受重视,用户体验的重要性再次上升到一个新的高度,应用开发从服务器端技术主导也转向客户端用户体验主导,这也是趋势。在没有革命性的服务器端技术出现的前提下,富客户端技术将成为研究趋势,应用将更加面向客户,在某一程度上来说,这是必然的结果,也算是一个好的趋势。
9 楼 klyuan 2007-05-23  
javaconfig!!
spring用来解决xml配置复杂问题的子项目!使用也非常的简单
8 楼 差沙 2007-05-23  
SSH取得了垄断地位后就走稳妥路线了,也许只有这样才会造就后来者。

但是这段时间确实是太少亮点出现了。

WW就这样被Struts吞没了么,太能改进的和发挥的地方太多了~~~ 唉~~。

现在也改去研究标准和模式去了。

PS: sg552: IBM怎么可能做JBPM的产品演示?是JBOSS吧?
7 楼 losing_fox 2007-05-23  
最近web这块都不太热

比较High一点的新闻都集中在富客户端了

像Apollo,silverlight和JavaFX

web热闹了这么久,也该休息休息了
6 楼 诺铁 2007-05-23  
其他都同意,不过我认为JSF是有前途的.
另外,我很期待javaFX的发展.
5 楼 jianfeng008cn 2007-05-23  
各位牛人能否自己来弄一下,某些让你们觉得重要,也不是很困难的事情呢,相对那些成功的开源,牛人们是否也为自己的赫赫声名所累? 
4 楼 giscat 2007-05-23  
三十年河东,三十年河西
  java已经红火过了,也不枉来走一遭了
     虽然不再火暴,依然看好,还指望她挣口饭吃呢
3 楼 yingqing 2007-05-23  
积累多了也就成立包袱,技术的先进性并不代表推广的广泛性,如果放下包袱,在技术上是可以走得更远,可以现在不是还有很多人对诟病T5对T4的不兼容吗
2 楼 sg552 2007-05-23  
谢谢ROBBIN,学习了。

现在的JAVA 开发,我觉得很多地方都在重复造轮子。

前些天参加BEA的JBPM产品展示,让我深有感触。想实现一个业务逻辑,不用写什么XML, JAVA,用鼠标拖,点几下,就结束了。

JAVA,需要一个行如此类的代码自动生成“框架”(称谓也许不太合适)。不知道有生之年能否得见了。
1 楼 nihongye 2007-05-23  
做商业是利益驱动;做开源的是兴趣,时间驱动,struts模仿RoR,大概觉得没意思吧。struts2.0,明显冲着struts1的用户群去的,应该算是完成任务,时间长了点。MVC,事件驱动...轻量级各式各样开源或是标准的框架都有得选,开始进入平淡期了...

相关推荐

Global site tag (gtag.js) - Google Analytics