Jigsaw被推迟到了Java SE 9

原文:Jigsaw Deferred until Java SE 9


近日,Java Platform Group的首席架构师Mark Reinhold在其博客上宣布添加模块化系统以及模块化JDK的提案被推迟到了Java SE 9

虽然是个艰难的决定,但这么做可以确保将更多的精力放在模块化系统上,从而保证最终的正确性,这么做也不会延误Java SE 8的发布,Java SE 8计划在今年8月发布。

这个决定让人想起2010年的执行计划Plan B,它将Lambdas(即JSR 335)的加入推迟到了JDK 7发布后。这样,JDK 7就在一年半前发布了(2011年7月),距离之前的JDK 6发布过去了4年半。

为了保证稳定性与未来的路线图,JDK将会每两年发布一次版本,同时会有一年两次的Release Train,这类似于Eclipse每年的Release Train——Reinhold表示Eclipse的Release Train的发布时间在夏末,正好是中间的时间点。

这样,大型组织就可以规划何时升级到新版本的JDK上去,并使用敏捷规划技术,根据已经完成的内容来进行日常发布,而不会导致匆忙发布或是延迟发布。

但遗憾的是,这意味着今年8月发布的JDK 8将不会有基于Jigsaw的模块化系统。引入模块化的延迟并不会对一般的开发者造成影响;但随着软件代码量的增长,模块化将会成为软件架构中的必要工具。诸如OSGiPojoSR之类的模块化系统已经为模块提供了运行时支持;模块化已经成为众多构建与运行时系统中的关键组成部分,对于企业应用服务器来说亦如此。

虽然可以在之后添加模块化支持,但随着代码基历史的不断增长(通常并没有使用模块化进行设计),找到适合的模块将成为一件棘手的事情。没多少人认为JavaBeans API需要依赖于GUI;但java.beans.Beans#instantiate()却包含了指向java.applet.AppletInitializer的一个引用,这直接导致依赖了java.awt包。因此,为JDK寻找合适的模块依然是个巨大的挑战;随着包数量的不断增长,这些包之间不经意的依赖也会不断增加。java.lang、java.io与java.net包彼此都包含了循环引用,这使得将其划分到不同模块变得异常艰难。

最后,Jigsaw的延迟引入可以给Oracle与其他模块化专家提供更多的时间来精化提案并使用已有的想法与开发计划。正如Mark在其博客上说到,Jigsaw的延迟并不是因为工作做得不够,也不是因为目前为止所取得的进展或实现不足,而是不想延误事先定好的JDK 8发布计划,也是为了确保JDK平台的模块化实现要成为最棒的实现。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值