Friday, November 9, 2007

Java 之现状

先说IDE,目前毫无争议Eclipse是主流,而其他商家都以eclipse为基础开发插件,包括SAP,IBM,JBoss,BEA,Borland,Business Object等。有一天你突然发现开发工具都变成eclipse了。--似乎Eclipse自从IBM出来就风光起来。Eclipse open source组织开发了基础的JDT(Java Development Tools),PDE(Plugins Development Environment),WTP(Web Tools Platform),GEF(Graphical Editor Framework),EMF( Eclipse Modeling Framework)等。
商业公司从开发更好的插件赚钱。从支持最新标准JavaEE5,包括JSF,JPA,EJB3,Web Service等看来eclipse并没走在前面,对于提高JEE开发效率做得还不够,第三方插件毕竟是商业的。免费的功能毕竟有限吧。而SUN支持的NetBeans,Oracle的JDev studio感觉不错。插件没那么多,插件多也麻烦,不同插件可能基于eclipse不同版本。NetBeans, JDev只要一次下载,为你提供除了JavaEE5,UML等更多支持,性能也不错.毕竟他们是最早通过JavaEE5 compatible certification的--SUN Java Application Server, Glassfish, Oracle OC4J,& SAP NWCE, later, Apache Geronimo,BEA Weblogic 10, IBM WAS.金蝶也是最早通过认证之一的.而红极一时的JBoss虽然是参与制定JPA标准的重要厂家之一,也支持EJB3,不过还没通过认证.
目前最流行大头都是IDE, Application Server, Database整合在一起,比如SUN的NetBeans+GlassFish再绑定pointbase/Derby,BEA Application Server老大很早就在weblogic server里绑定workshop IDE和DB,不过现在workshop变成eclipse版了.而database老大Oracle则绑定OC4J和免费的JDeveloper.如同microsoft的DotNet platform,SQL server, IIS, SDK,Visual Studio集成在一起.而SAP除了封闭的ABAP Workbench也推出自己的NetWeaver CE Server和IDE.但SAP并没有说要用Java取代ABAP,那样做商业意义少于成本.对于ERP通过Web Service重用.不可否认SAP新技术都是基于Java的,比如portal,XI,Web Dynpro,CAF,甚至ERP2005的安装程序也是Java的.
至于Java framework,struts,hibernate, spring,我想这些东西会让小项目变复杂,而不易于重用,重构,当JavaEE5足够流行的时候会被人们遗忘.
真正计算成本,数据库是否易于管理,MySQL虽然有免费的phpmyadmin web管理工具,还是比较复杂的.对于企业用户当然可以什么都选好的,自己买服务器,租宽带,买Oracle, Weblogic,带来的维护和管理成本也是很高的.
Derby就是一个很小的数据库,engine+JDBC Driver只有2MB,也是IBM贡献的开源软件.JDK6也把它整合进去了.
前面说到各厂商把应用服务器,IDE,DB整合在一起,就是改变以前分了web container, business logic,middle ware,Database等几个层次,让人们集中在业务开发,忘掉复杂的技术问题.
--
28,Oct.
JavaEE Running Times
Geronimo v2.02, Apache software foundation, JavaEE5 certified,不可避免以后会用得很多。管理界面很清凉,类似Weblogic,Sun Java Application Server, 但deploy几个apache开源框架竟然失败,Tomcat下运行成功的,汗。放一边凉快。
JBoss5.0是支持JEE5的,虽然尚未认证,但是比较成熟的。为什么被Redhat收购呢,一定被打压,慢慢遗忘掉。
Sun Java system app server, or Glassfish,实质是一个东西,挂两个名字,拿两个认证。安装后移到另外一个文件夹,要修改十几个配置文件,太弱智了,还算是Java吗。不过和NetBeans亲兄弟,况且Sun JavaEE tutorial都是默认用自家的东西。只是tut sample用了一大堆build.xml,这样子把问题隐藏到ant build里,恐怕不太好。
BEA Weblogic10 JavaEE5 certified,老大没得说,只是小心要收licence fee.workshop10是eclipse做的,大缩水了。万一被Oracle收购了……
Oracle OC4J,JavaEE5 certified,压缩包不到100M,其实JDeveloper, Oracle DB都绑定的有。感觉还不错。其实Oracle还算开放的,技术很标准,不像SAP,混杂个性异类。
SAP NetWeaver J2EE engine, or CE7.1,很难把它看作像其他App Server一样,不稳定,而且另类。我虽然看了所有文档但还是不明白。CE developer Studio基于eclipse3.2,终于好多了,eclipse2真得很弱,是N年前的玩意。7.1以composite application为中心,突出VC,CAF,GP,WD,JavaEE5,portlet,这一点虽然不意外,但还是很震撼,CAF基于EJB3更明显。不过能否流行还要等很久,完美的东西往往适用范围很窄。大部分基于现成的eclipse功能,配置Netweaver App server还是那么别扭。使用SAP特性提示不能deploy到其他app server上,没有SAP特性提示不能deploy到NetWeaver,为什么不像其他app server一样呢?搞什么特殊!流行的管理界面都是web的,它却是swing,只能本地管理。
尽管都是认证的,但目录和jar都不一样。
说到IDE的功能,其实都是从Java project开始,支持jsf,ejb3,jpa不过是加一些jar,build,deploy其实都是ant能力范围之内的。图形化的开发,比如jsp, javascript , jsf, struts, jpa,提供UI或向导工具,本质都是coding。
-----
这两天一两点才睡,昨晚在本本上装了SAP NetWeaver CE Server7.1,启动用了快一个小时。改进很多,只有Java Stack,还是有portal, VC,增加了WS Navigator等。色调变深,JavaScript性能似乎优化了。
SDN上问了很多人,对比起来 NetWeaver和其他JEE Server区别很大。7.0通过J2EE1.3认证,而CE7.1通过JavaEE5认证,但应该用的很少,而且不是一个完整的NetWeaver platform,SAP是要推出新版本还是说以后只有让Java独行?肯定的是SAP 通过JavaEE5认证应该花了不少功夫。说到JEE的升级不知道害了多少人,EJB的区别很大的,EJB3虽然美妙,但意味着升级。而open source的hibernate (即pojo)在servlet container里都可以跑,肯本不存在升级问题,这点白痴都知道。EJB3和hibernate很像,只不过EJB3(JPA)利用JDK5 annotation feature 把mapping 写在Javacode里。昨天用ant build axis2还行,但让产生的Web Service给Web Dynpro用,可能还有点问题。不用JavaEE5的Application Server运行JPA,JAXWS应该有问题。

Oct. 2
做了个hibernate的例子,然后用axis2实现Web Service,用Web Dynpro有点问题。

No comments: