BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Jigsaw——JSR277的丧钟?

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2008年12月24日. 估计阅读时间: 3 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

紧跟着早前发布的关于模块化JDK的声明(InfoQ之前曾报道过),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的未来做出一些有趣的预言。

查看英文原文:Jigsaw - the death knell of JSR277?

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT