与以往不同的是,2006年对于Java是具有决定性意义的一年。对于Java命运最重要的是Sun决定以GPL许可方式发布其Java实现,它已经发布了HotSpot VM、javac编译器、Java ME。而更多的源代码将会逐渐在明年开放..这是许多人在一年前不敢想像的,更没有人想到Sun会选择GPL。
但未来会怎样?这是一个大问题。尽管今年发生了如此多的大事,但这些事情将会如何引导发展方向? 似乎并不明显。在这篇文章中,我们将列出这些主要事件,并指出它们在2007年的发展预期。
开放源代码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才是必需的。