[转载]回顾与展望,2006与2007的Java 技术
与以往不同的是,2006年对于Java是具有决定性意义的一年。对于Java命运最重要的是Sun决定以GPL许可方式发布其Java实现,它已经发布了HotSpot VM、javac编译器、Java ME。而更多的源代码将会逐渐在明年开放..这是许多人在一年前不敢想像的,更没有人想到Sun会选择GPL。
但未来会怎样?这是一个大问题。尽管今年发生了如此多的大事,但这些事情将会如何引导发展方向? 似乎并不明显。在这篇文章中,我们将列出这些主要事件,并指出它们在2007年的发展预期。[@more@]开放源代码Java
2006:Sun采用GPLv2发布其Java VM和编译器
2007:期待类库、关注衍生版Java
采用GPL发布Java编译器和VM表明Sun对于开放源代码Java是认真的,但要判断它的结果还为时过早。其一,Sun发布的是早期版Java SE 7,Sun不希望开放源代码影响在12月初发布的Java SE 6。Sun发布的代码还缺乏打造一个有用的Java环境所需要的类库。
提供类库的挑战之一是,必须从数百万行代码中找出Sun可以在Java中使用、但无权以GPL方式发布的代码。其中一些代码已经有了开放源代码版替代品,但是,Sun还必须重新许可、编写、放弃一些代码,这是不可避免的。
除此之外的一大问题是,在采用GPL后,人们会如何“处理”Java。除了与在一些版本的Linux中包含Sun的JVM所牵涉的“政治性”问题和将JVM移植到Sun没有兴趣这么做的平台上外,人们还会做出一些不可预测的事来。HotSpot的动态运行编译器会服务于其它语言的runtime吗?开发人员会通过修改编译器或者增添和删除功能构建多种不同版本的Java语言吗?这样的语言可能不能再叫Java了,但它叫什么呢?Java可能被用于某些特定域相关的语言, 使用"J"开头进行命名。
2006:Sun制定并推广Java分销许可(Distro License for Java,DLJ)
2007:Java分销许可还有用吗?
如果你是一家Linux分销商,Sun现在无疑给了你当头一棒。在选定GPL前,Sun向Ubuntus和Debians推荐了Java分销许可,它使平台开发商能够以对它们的平台有意义的方式封装Java SE,使用户能够象apt-get那样获得JVM,而无需人工安装。
有了GPL版Java,DLJ似乎就再无用武之地了,用户能够方便地修改类库、JVM。因此,只有在GPL Java被封装为.dpkg软件包时,DLJ才是必需的。
Java平台
2006:Java SE 6发布
2007:开发人员何时会采用它
Java SE 6在12月中旬发布,比原定计划略微晚了一些。Java SE 6提供了包括XML Digital Signature在内的一些新API,更新了JDBC 4.0和JAXB 2.0等API,重新设计了图形渲染管道,提高了Swing的Windows的精度GTK。
但是,由于开发人员、部署人员、用户在采用新版Java方面的动作比较缓慢,Java SE 6能够立即吸引人们吗?除非需要一些特定的新功能,安装全新的JVM值得吗?尽管性能有所提高━━特别是对于桌面应用软件而言,但在进入2007年时,SE 6不会成为许多人的缺省Java版本。
2006:Java SE 6支持Java之外的其它语言
2007:我们会在JVM上运行什么语言?
Java SE 6中最有趣的变化是它内置地支持脚本语言。新的javax.script API使我们能够在Java中使用脚本语言引擎,在脚本语言和Java之间交换数据。Java SE 6提供了对JavaScript的内置支持,第三方厂商肯定会增添更多的脚本语言。
由于Sun在9月份招聘了JRuby的开发人员,最可能的“下一种语言”是Ruby。很显然的是,Sun还在吸引Perl和PHP等其它脚本语言的开发人员。
2006:JDK 7开发工作启动
2007:与closures有关的争论达到顶峰
JDK 7的开发已经在进行,但功能清单的发布还需要一段时间。JDK 7中最有争议的语言功能是在Java语言中增添closures。
在这一问题上有二种观点。其一是closures是否有必要,或者说closures带来的复杂性是否超过了它带来的好处。考虑到closures提供的一些功能已经能够由inner类完成,closures能够减轻的“痛点”可能只不过是证明另一种语言结构是不必要的;第二种观点与closure的语法有关,即它对简洁的期望是否会使Java closures不容易理解。
2006:Java EE 5发布
2007:EJB 3能够重新赢得开发人员的青睐吗?
Sun在今年夏季发布了Java EE 5以及EJB 3.0企业对象框架。
2007年值得关注的是EJB 3.0能否重新赢得放弃了EJB 2.x的开发人员的青睐。
2006:Java ME在手机上非常普及
2007:GPL ME会改变什么吗?
在三大Java平台中,Java ME最不引人注目,但由于被应用到了手机上,它的应用比SE或EE要广泛得多。尽管有了一个开放源代码CLDC/MIDP平台,是否有人采用它还是个问题。手机制造商可能会选用当前的许可协议,但GPL ME对于其它领域的初创厂商是非常理想的。