OracleJava平台小组的首席架构师Mark Reinhold 在OpenJDK邮件列表中的一条消息中宣布Java 9的时间表将推迟到2017年7月时,他声称Project Jigsaw 是该版本的最重要功能 , “需要更多时间。”
随着发布日期的临近 ,一些人似乎对Jigsaw项目及其带来的变化有所怀疑。 红帽公司的Scott Stark以及其他Java执行委员会(EC)成员在一封公开信中透露,他们对JSR-376 Java Platform Module System规范以及该规范的Jigsaw实现有些担忧。 根据该文件,“就目前的优点而言,不应将拼图视为一个可以接受的完整解决方案。”
他们声称,尽管“许多问题可以在很短的时间内解决,但其他问题可能需要更多的时间才能解决。” 结果,他们认为“如果选择的解决方案不能涵盖所有用例,那么稍稍延迟就是值得的。 也可能会添加其他挂钩,第三方代码可以利用这些挂钩来改善体验。”
拼图真的是布吉人吗?
根据JPMS公开信,“在某些情况下,在Jigsaw中引入的模式即使在以后的发行版中也很难修复,并且会产生向后和向前兼容的问题,而这些问题将很难解决。 ”
结果是,随着使用Go之类的语言的大量使用,服务器空间中发生快速变化时,Java生态系统将被削弱。
此外,他们说,缺乏足够的互操作性功能和不必要的限制将导致Java社区的分裂。
Java软件开发可能会有两个世界:Jigsaw世界和“其他”世界(Java SE Classloader,OSGi,Java EE等)。 图书馆开发人员将需要选择支持哪个领域或应对混合策略的负担。 缺乏等效的用例覆盖范围将阻止迁移,从而延长影响。
长话短说,拼图可能无法提供以下好处:
R3 CEV的首席平台工程师Mike Hearn是其中的一员(他说,由于写了一封带有建议的电子邮件),但这并不意味着他完全同意这封信的内容,尤其是因为公开信中包含了一些有关Jigsaw竞争对手的工作的人员(例如 JBoss Modules 和 OSGi )。
还请参见: 阐明了Java 9功能:JDK 9 Early Access文档已发布
Hearn在博客文章中写道:“ 我们必须削减Oracle团队的 工作量, 因为 他们正试图为大众构建模块系统。”
我不相信,如果Jigsaw只是OSGi或JBoss Modules的克隆,则此过程会更容易。 要使开发人员模块化他们的应用程序,仅制作模块系统是不够的。
这到底是多少?
根据公开信,“提议的Jigsaw实现是模块系统的无尘室发明,该模块系统在任何实际应用程序部署情况下都完全未使用。 在Jigsaw下无法实现今天广泛实施的许多用例,或者需要进行重大的重新架构。” 但是,这部分使Hearn感到不安,因为将Jigsaw称为“无尘室”意味着“ 它是与外界隔离开发的。” 实际上,Jigsaw项目已经经历了“多年的开发和反馈期,在此期间,其他模块系统创建者的观点一次又一次地导致了重大的设计变更。”
此外,作者指出,使用二进制模块描述符是错误的,因为这些格式“被认为是架构回归。 使用标准工具,基于文本的描述符格式更易于阅读,修改和编程操作。” Hearn声称这只是个人观点,并认为“基于文本的配置格式和协议有很多缺点,在这里可以忽略不计。”
Hearn揭穿的其他“神话”包括版本控制和kill开关,这并不像阅读公开信后会想到的那样麻烦。 该文档也没有提及Jigsaw带来的新的[主要]功能。
尽管Hearn同意“模块化Java生态系统将花费数年的时间,并且涉及破坏过程中的多个问题”,但情况并没有听起来那么糟糕-应当给Jigsaw项目一个公平的机会。
前往Mike的博客并阅读他的帖子。 在下面的评论中,让我们知道您对拼图项目的讨论有何想法!
翻译自: https://jaxenter.com/jigsaw-fragment-java-community-133373.html