[quote="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社区其实有很多事情可以做,而且难度也未必很大,但很奇怪的是,为什么社区显得如此沉寂呢?没有创新性的产品出来呢?我也想不明白。 [/quote] 其实楼主最后的疑问自己已经部分回答了。 java开源框架担心在升级的过程中不断的迷失自己,丧失用户。 以Tapestry为例,实际上Tapestry并不是迷失自己。Tapestry5是个跨越性的发展,其作者想用质变的方式做一个优异的开源框架。但不幸的是因为跨越的幅度太大了,所以丧失了用户。很显然hibernate和spring很清楚这种后果,所以不敢对框架做大的改动。 用哲学的道理来看很清楚。量变的发展而导致质变。质变的结果是产生新事物。旧事务必定会对新事物的发展起阻碍作用。但新事物必定会产生,旧事物必定会被抛弃。 所以,再过一年或者两年,spring和hibernate必定会被抛弃。即使保留下来,也只是类似sturts2.0那样的品牌名字而已。
分享到:
相关推荐
"Java发展历程" Java是一种广泛应用于互联网的编程语言,其发展历程可以追溯到1990年。该语言的诞生离不开Sun公司的工程师Patrick Naughton和James Gosling等人的努力。他们为了开发一种新的基础平台技术,启动了一...
【公元2020年-2130年】这段...这些遐想揭示了科技进步对人类生活方式、社会结构、环境互动以及伦理道德的深刻影响,同时也提出了许多挑战和机遇。随着科技不断发展,人类文明将持续演进,探索未知,创造新的可能性。
《互联网+体育:未来无限遐想》一书由郑元男编写,由浙江大学出版社在2018年出版,对“互联网+体育”的发展模式进行了深入探讨,并分析了“互联网+”技术与体育产业融合发展的途径。 书中首先阐述了“互联网+”的...
遐想 一个社交网络,使用户能够打印其朋友的数据。 特征: 1.)用户身份验证。 2.)通过电子邮件重置密码。 3.)发布,查看,编辑,删除文章。 4.)分享文章。 5.)在其他用户上添加/关注请求。 6.)删除一个...
【技术发展概述】 随着时间的推移,科技在人类文明发展中起着越来越重要的作用。从公元2020年开始,三维全息电视的引入改变了人们的娱乐方式,而氢燃料电池技术则引领了交通运输领域的革命,推动了环保汽车的发展。...
总的来说,"TEAM论坛 绿色遐想"提供的模版资源为网页设计师和开发者提供了一个便捷的起点,让他们能够快速创建出具有专业外观的网站,同时也能激发他们的创新思维,推动他们在网页设计领域不断探索和发展。
JAVA思维导图,便捷整理思路,JAVA语言三大块、JAVA特点:、JAVA的加载与执行、注释、输出语句
【标题解析】:“吉林省延边二中高中语文‘感悟青春品味成长’征文优秀作品十八岁的遐想素材扫描版”这个标题揭示了这次活动的主题,是面向高中学生的语文征文比赛,聚焦于“感悟青春”与“品味成长”。其中,“十八...
- **第十章:OSGI框架前瞻**:展望未来OSGI的发展方向和技术趋势。 - **第十一章:OSGI带来的遐想**:作者对未来OSGI应用的一些思考和想象。 - **第十二章:参考文献**:列出了一些重要的参考资料和书籍,供读者...
JAVA多态思维导图,便捷整理思路,多态的好处、多态的语法格式、多态中的两种类型转换:向上转型、向下转型
JAVA方法思维导图,便捷整理思路,方法的定义以及分类:、方法的基本语法格式、方法的调用、方法重载、break、continue、return区别
JAVA运算符思维导图,便捷整理思路,算数运算符、连接运算符、赋值运算符、扩展赋值运算符、三目运算符、逻辑运算符、关系运算符
随着科技的飞速发展,CPU(中央处理器)作为计算机系统的心脏,其进化历程一直是IT领域关注的焦点。本文将深入探讨多核心CPU的发展趋势、技术原理及其对现代计算性能的影响。 多核心CPU是指在一个物理封装内集成两...
"短视频产品竞品分析与教育短视频的一些遐想" 以下是对短视频产品竞品分析与教育短视频的一些遐想的详细...只有通过深入了解短视频产品的竞品选择和教育短视频的一些遐想,才能更好地发展短视频产品和实现教育目的。
关于生活吞星的遐想,好的flash作品,值得下载
JAVA基础思维导图,便捷整理思路,Public与Class的区别、Classpath、JAVA关键字、字符编码、字面值、命名规范
JAVA类之间的关系思维导图,便捷整理思路,泛化、实现、依赖、关联、组合、聚合……
JAVA数据类型思维导图,便捷整理思路,变量、变量操作、变量的分类、数据类型、变量的内存分析图、类型之间转换
云计算带来无限遐想.pdf
这两部分的计算同样运用了黄金分割比例,目的是在不同时间框架之间找到平衡点。 最后,`(M60+0.618*M120+0.382*M240)/2` 计算了60日、120日和240日的成本平均,这代表了更长期的趋势判断。这一部分的计算同样遵循了...