紧跟着早前发布的关于模块化JDK的声明,Mark Reinhold宣布Jigsaw项目成为OpenJDK的一部分。下面的内容援引了其声明:
为了在接下来的几年中能够模块化JDK 7,同时也为了更好地宣传JSR 294的工作,Sun打算不久之后在OpenJDK社区中创建Jigsaw项目。
该努力必然会创建一个简单、低层次的模块系统,其设计将聚焦于模块化JDK这个目标。开发者可以在自己的代码中使用该模块系统,Sun也会全力支持该系统,但它并不会成为官方Java SE 7平台规范的一部分,也不一定会得到其他SE 7实现的支持。
如果未来的Java SE平台包含了特定的模块系统,那么Sun将提供一种方式来移植Jigsaw模块以使之符合相应的标准。同时,我们还会积极地寻求与其他模块系统交互的方式,尤其是OSGi。
模块化JDK这个目标应该是可以实现的,尤其是Apache Harmony已经证明了JDK是可以被模块化的(使用OSGi)。然而这个目标却因另一个原因而变得更加有趣:它将在JCP外实现。
由于缺少可视化的发展过程,再加上闭门造车的实现,对于大多数人来说很难参与进JSR 277,更别提对其献计献策了。通常这会导致标准的误入歧途,使得标准过于关注实现的细节而忽视了通用性。不仅如此,这还会导致标准成为事后诸葛亮——想解决问题时(例如奇数的版本号)却发现已经太迟了。根据声明所述,JSR277还处于“领导地位”,但它实际已死。
从JSR277中分离出的JSR294(以前可是个庞然大物,不过现在已经模块化了)是个很大的进步;它将引入一些语言上的变化,这会使得模块化的实现独立于任何特定的模块化进程。
从声明中看到的激动人心的事情还有OSGi已经成为模块化的事实上的标准了,这种合作是件好事。但这不一定意味着它将基于OSGi实现,事实上,它只是建议最好与OSGi而不是其他方式合作:
JSR
277的JAM模块系统并不适合作为模块化JDK的基础,那么OSGi框架如何呢?该模块系统非常成熟、稳定和健壮。其核心甚至已经在Java虚拟机中实
现出来了,也就是Apache Harmony。OSGi并没有与Java语言集成,相反,它构建在Java SE平台之上而不是其中。
这最后的问题也能解决。Sun现在计划直接与OSGi联盟合作以便OSGi框架的未来版本能充分利用JSR 294的特性进而能和语言集成的更加紧密。
我相信未来的OSGi标准会使用JSR 294的模块,尽管还有一些建议的改变。不管怎么样,下周在Devoxx 08举办的Modularity in Java讲座应该会对Java的未来做出一些有趣的预言。
posted on 2008-12-25 00:15
墙头草 阅读(1407)
评论(1) 编辑 收藏 所属分类:
业界资讯