技术开发 频道

年度回顾:JavaSE 7值得期待之处

  动态语言支持

  JSR 292:Java平台动态语言支持(Supporting Dynamically Typed Languages on the Java Platform),开始引入一个名为invokedynamic的新JVM指令,以更好的支持动态语言。John Rose已经使用这个JSR作为一个公式来进行了大量的JVM改进,可以大大提高JVM上所有语言的功能。

  这方面的工作研究在2008年9月举行的第一届JVM语言峰会上达到顶点,在这次峰会上讨论了诸如尾部调用优化(tail call optimization )和接口注入(interface injection)等功能。对于大量使用递归的函数语言来说,尾部调用优化非常重要,可以避免堆栈空间溢出,Scala在编译器上解决了这个问题。Clojure则增加了模仿尾部调用的语言支持,而且最近增加了跳跃语言支持功能,以支持多重递归。如果尾部调用优化可以被增加到JVM中,Scala和Clojure可以简化或移除这些功能。

  Mark Reinhold在JVM语言峰会上表示,JSR 292将被包含在Java SE 7中。在JSR 292是否还包含invokedynamic之外的任何功能,目前还不确定。

  Java SE 7和Java未来

  我相信在2009年可以看到Java SE 7平台JSR,它将包含本篇文章所讨论的多数JSR,但是语言本身的改变可能会比较少。按现在的计划,它将继续集成所有这些工作到OpenJDK版本中,并在2010年发布Java SE 7。

  有些人质疑人们是否真的需要使用Java SE 7。不过,即使出现很多替代性的JVM语言,Java依然将会是我们今天所使用的重要编程语言之一。Java拥有如此巨大的用户基础,在目前还看不到被淘汰的迹象。诸如294、310和203等JSR对核心API进行了改进,这些对于企业软件开发者都是非常值得关注的。同时,我们现在正在进入多核时代,JSR 166和JVM性能的改进也是颇具吸引力的。

  我认为,Java SE 7的普及速度或许不会很快,但却会稳步上升。如果这个平台在2010年初发布,有望在2011年获得可观的市场份额。在Java SE 6发生的一幕或将在它身上重演。J2SE 1.4在2008年11月份已经结束了服务支持周期,J2SE 5.0将在2009年底加入支持范围。届时,多数进行Java应用部署的企业都将考虑在Java SE 6上的部署。按现在的情况来看,如果Java SE 7语言变化非常小,许多企业甚至有可能跳过J2SE 5.0而直接升级到Java SE 7。

  查看原文:http://www.javaworld.com/javaworld/jw-12-2008/jw-12-year-in-review-2.html

0
相关文章