技术开发 频道

JDK 1.4用户依然固守 JavaSE6.0大幅攀升

  JDK平台的升级是个难题

  JDK1.4的应用依然占据较大份额,从整体上看还是反映了当前的Java项目还处于谨慎发展的状态,更多的应用还是基于原来的系统进行维护和扩展。

  JavaLobby上曾经有两篇文章再讨论升级Java平台的问题,一篇是It seems that Java 1.4 is good enough,一篇是When Do you Plan to Switch to Java 6?。在第一篇中作者Yakov Fain说:

  “Java 1.5已经发布两年了,但是我们的许多客户仍然在使用1.4.x,我认为这就意味着Java语言的新功能并不真正需要。有其他解释说企业升级Java不是一个简单的过程,人们只是不想冒这个险。......”

  另一篇文章是一个调查,大部分受调查者急切的希望转移或者已经转移到新的Java6平台上,但是不难看出由于所在公司或者项目的限制,只能望洋兴叹。

  两篇文章从评论中看,大部分开发者个人还是急切的希望尽早升级到Java6平台上的,但对于那些要负责维护已有系统的人并不希望或者公司不允许升级到更高版本的Java上。目前大型企业使用的Java平台还是主要停留在Java1.4.x上,由于现存系统的原因,即使Java 5和Java 6提供很多新的功能和性能提高,由于担心升级带来的问题,大多数准备保守的停留在Java 1.4甚至1.3上。

  那么阻碍JDK升级的技术因素究竟有哪些呢?

  首先,企业应用运行的应用服务器所依赖的Java版本升级比较缓慢。许多公司部署的企业应用是J2EE应用,所部署的应用服务器如BEA的 WebLogic和IBM的 WebSphere,这些应用服务器的版本相对比较老,而这些厂家最新的应用服务器版本支持Java仍然比较低。企业应用实际上依赖于两层平台,第一层是Java平台,第二层应用服务器。一个语言版本的稳定需要至少一年以上的周期,而应用服务器的稳定也需要有一定的时间,况且应用服务器提供商诸如IBM、BEA等往往有成套的开发和部署工具,这些工具往往需要和应用服务器同步稳定,这也需要一定周期。

  其次是JDK兼容性问题。许多应用在开发的时候,由于开发人员使用非标准API,使得Java平台升级时造成兼容的问题。比如Java的sun.misc.BASE64Encoder 和sun.misc.BASE64Decoder是内部API,如果程序中调用这些接口,就会将应用绑定在某一特定的Java平台。另外,还有对API接口语义误解,造成非正确的挪用等等。

  最后,新语言特性的学习和适应也需要一个过程。这主要表现在Java1.5的升级上。Java1.5新增了许多新的语言特性:Generic、Annotation、Autoboxing、enum、variable args、foreach、static import等,这对于开发者需要有一定的学习和使用时间。尤其是generics,虽然有很多支持者,但是也不乏很多抱怨者,觉得它很难学,甚至就不打算用它。

0
相关文章