其实在我写的“第三只眼”系列文章中,都是在对这些框架进行较为细致的研究才得出的结论,而且所写的也完全是事实,至少到现在还没有哪一个当事人可以说我乱写了他们的东西吧。
很多人都说我只是盲目地夸国内的开源同仁们,没看到他们的不足,不客观,但是大家是否又看过我文中指出的这些开源项目中不足方面的内容呢?比如下面一些摘要:
“SpringSide的不足其实是很明显的,首先在软件界,没有真 正的最佳实践,各种技术都是可选的,一个看似笨拙的东西,只要跟上一个搭档,本来是缺点也会得到弥补,比如EJB之于Spring,对于一个企业来说,现 前最佳的肯定就是大家最熟悉而且又能解决问题的东西。“
“可以说JFox只是实现了JPA1.0中的一小部分。JPA最核心的是什么?对象及关系映射,而难度最大的环节面向对象的查询(EJBQL)以及各种对 象关系及表关联的处理,比如OneToMany、ManyToMany。由于JFox是基于iBatis这样一个sql mapping的框架实现的 JPA容器,所以说功能上受到了一定限制。”
“技术的进步是永无止尽的。Jdon框架的设计仍然还存在着很多的问题。比如,要求用户领域模型继承Jdon的Model类或实现ModelIF接口,添 删改查的业务实现类中要包含类似createXxx(EventModel em)这样的方法,导致整个框架对业务层的东西侵入性太严重,不符合实际应 用。另外,过多与Struts1.x紧密绑定的设计也不可取。”
“虽然已经形成了江南、CAC、差沙等组成的核心团队,但代码及文档产出上却基本上仍然是一个人;代码是开源项目的生命所在,而这样的项目要做好,要做成中国的AppFuse决定了这是一个人不可能完成的任务,因此离成功就会很远。”
“如果是开发Web应用,如果要用到EJB,而又不能支持分布式,我们又为何还选择EJB?Spring、Jdon、Guice甚至EasyJWeb 这 些框架里面都有包含了IOC容器。而且更加POJO,为何还要选择用EJB及JFox呢?因此,这一方面我不知道这样的设计及限制是对JNDI的创新,还 是因为JFox设计的局限性所导致。”
“虽然Struts1.x的市场仍然还是很大,但我们应该清醒地看到,今天已经有很多正在逐渐取代Struts1.x的Web框架出现,比 如 webwork(或struts2)、easyjweb、operamasks(jsf)、grails等。Jdon作为一个应用框架,要能获得更多 的应用支持,必须支持与这些框架进行集成,提供更多的支持,让开发者有更多的选择权。”
“SpringSide不善于合作,比如国内已经有很多优秀的开源项目或框架出现,比如operamasks、JFox、JDon、easyjweb 等,通过最近的深入研究,我发现他们都很不错。但在springside项目及文档里,没有一点与这些开源项目相关的!”
我觉得,中国的开源要做好,不但需要很多像我文章中介绍的这些开源斗士们的坚持不懈,更需要更多的人来使用这些开源,尝试这些开源,把使用心得在开源社区中进行学习、交流,更需要能客观地指出这些开源项目技术上的不足、问题方面的文章,而不是一棒子打死。
Simpleframework 经过多年的发展,选择开源,目的是对现有框架(如Struts)的业务性补充。利用Filter机制和XML格式的业务描述来实现请求的可配置扩展处理,并将Struts等框架中的一些公共功能以组件的形式提供(如AjaxRequest、Submit等),基于组件来实现UI和业务(逻辑)功能,逐步形成了一套基于Filter“后处理”技术的完整的MVC2和组件化的WEB应用开发模式 ,形成了核心组件库、基本组件库、业务组件库和扩展组件库。而这些功能,是一个做技术的心血积累。