jigsaw模块化
您是否可以相信围绕Jigsaw项目和Java模块化辩论的所有戏剧? 昨天唐纳德·特朗普总统解雇了联邦调查局局长,淹没了所有Java竖锯指责的推文,并以令人愉悦的140个字符的观点干扰了美国政治,这让我感到非常感谢。
在Java平台模块系统(JPMS)JSR-376上投票时,十三个JCP成员投票否决,十个成员则投票赞成。 与美国大选不同,Java Community Process(JCP)不使用“选举学院”系统,因此使用陈旧的“多数获胜”类型的系统来赢得或丢失选票。
Java拼图的缺失部分
拼图项目的一部分原因是,在JCP对Java模块化进行投票之前,IBM和Red Hat都宣布他们将不支持JPMS,这与传统的礼节有所不同。 JCP成员通常不会在投票之前宣布其意图。 话虽如此,很少有JCP项目像Java的Jigsaw那样引起争议。
IBM的Tim Ellision在4月28日发表的社区电子邮件回复中说:“仍然需要使社区与提议的标准达成一致,这是工作要做的, 社区电子邮件回复了JCP负责人和Java Platform Group备受尊敬的首席架构师Mark Reinhold。在Oracle。 “ IBM也投票否决,这反映了我们的立场,即JSR目前尚不准备超越公开审查阶段,无法继续进行拟议的最终草案。” Ellision引用中的“也”一词是指Red Hat先前宣布他们对Java模块化难题的融合方式不满意。
“ Jigsaw项目的实施最终将需要Java生态系统中的数百万用户和作者面对他们的应用程序和库的重大更改,” Scott Stark在4月14日发表的关于Red Hat认为Java Platform Module System的缺点的放血文章。 “ Jigsaw的实现最终将需要Java生态系统中的数百万用户和作者面对其应用程序和库的重大更改,特别是如果它们以任何方式处理服务,类加载或反射时。”
尽管存在一些犹豫,但所有这些公众的不满导致Reinhold 慷慨激昂地推动Java模块化项目向前发展。 Reinhold说:“我们现在所拥有的并不能解决开发人员面临的每一个与模块化相关的实际问题,但是它满足了商定的目标和要求,并且为将来的工作奠定了坚实的基础。 现在是时候交付我们拥有的东西,看看我们学到的东西并不断改进。 不要让完美成为善良的敌人。”
别有用心和拼图项目
在这些公开讨论中很少说到,大党的JCP争吵背后常常有非常私人的动机。 红帽有自己的开源模块化项目,可在其Wildfly服务器中使用。 JBoss模块一直与Jigsaw竞争。 IBM的WebSphere一直以来都支持OSGi。 谁知道这些私人利益如何与公司的公共利益竞争。
落入“无罪无罚”的范畴,许多投票赞成Java模块化的JCP委员会成员发现自己处于非同寻常的地位,必须捍卫他们希望推动Project Jigsaw前进的事实。 Azul的首席技术官吉尔·泰恩(Gil Tene)前往Twitter为其公司的“是”投票辩护。 “能否建立更好的模块系统? 是。 更好的仿制药系统也可以。 这是一种更好的Lambda表达式。 还有……(原文如此,” Tene发推文。 “有些人将按原样采用JPMS。 许多其他人要等到情况好转之后,才会这样做。 没关系。” 就我个人而言,我有点不高兴,因为几周前我在电话中谈论了Azul的Falcon LLVM编译器 ,所以我应该向他询问有关JCP投票的更多信息。 我们确实谈论过项目Jigsaw,但更多的是关于JVM性能和缩短的启动时间,而不是即将到来的投票。
Java模块化和OSGi规范
几年前,确切地说是2011年,Peter Kriens是OSGi的技术总监,他写了一些有趣的文章,介绍如何在Java中实现模块化系统,其中许多在TSS论坛上引起了激烈的辩论 。 我们几次谈论了Jigsaw项目,尽管我们的对话发生在很久以前,以至于我无法准确地引用他的话,但他给我的印象始终是解决Java中的类加载器问题是一项极其复杂的任务,那些试图用Java实现模块化的人会遇到比他们想象的要复杂得多的意外情况,而且Jigsaw项目的提供者对于构建一个系统的难度或难度有点天真。 JDK内部的模块化。 六年后,似乎已经证明了克林斯人的许多惊ster。
类加载器在Java中是一团糟。 考虑到JDK的发展,它们的存在是可以理解的,但是1996年的情况在2017年进行我们的软件开发时有点尴尬。我完全相信Mark Reinhold这样的人可以获取Java Platform Module系统回到正轨。 希望这会早日发生。
您可以在Twitter上关注Cameron McKenzie: @cameronmcnz
对更多意见感兴趣? 检查这些:
jigsaw模块化