写点什么

Java 平台模块化系统(JSR 376)通过公开测评复议投票

  • 2017-07-09
  • 本文字数:2401 字

    阅读完需:约 8 分钟

Java 平台模块化系统(JPMS,Java Platform Module System)亦称为 Jigsaw 项目 JSR 376 。尽管在两个月前 JPMS 未通过最初的公开评测投票(Public Review Ballot),但是这次 Java 标准制定组织(JCP,Java Community Process)执行委员会(EC,Executive Committee)以压倒性多数通过了复议投票 InfoQ 在前期曾报道过,有一系列的原因导致 EC 成员 IBM 和 RedHat 在首次公开评测投票前就公开宣称将会投反对票,并在报道中推测 Twitter 和 Java 伦敦社区最终也将会投反对票。

在复议投票中,除 Red Hat 以外的所有 EC 成员都投了赞成票。Red Hat 在投票中弃权。Red hat 对自己的投票原因做出了如下解释:

Red Hat 此次投了弃权票,尽管我们认为自上次投票以来为在 EG 内达成一致已经取得了积极的进展,我们也相信那些影响当前建议被社区更广泛采纳的条目是可以在发布的 30 日扩展期内得以解决的。虽然如此,我们并非想要拖延 Java 9 的发布,并很高兴看到有规范牵头人和 EG 对随后的 Java 版本提出了更积极的规划建议,因为理解未来更改是否需要并将会在哪里发生,关键是获得在模块化系统上的真实世界反馈。我们希望项目领导者和 EG 会继续对来自于更广泛 Java 社区的输入保持开放态度,就像过去 30 天中所做的那样,并期待由来自于 OpenJDK 之外的用户和社区数据所驱动的 Java 演化。

Twitter 在首轮投票中投了反对票,但在复议投票中改投了赞成票。Twitter 的JVM/GC 工程师 Tony Printezis 博客中给出了如下解释:

JSR 376 专家组(EG,Expert Group)已经努力澄清了一些模糊之处(#RestrictedKeywords #CompilationWithConcealedPackages #ResolutionAtCompileTime ),并在修订的 JSR 376 规范中做了一些重要改进(#ModuleNameInManifest )及放松了强封装

考虑到上述工作,我们决定对 JSR 376 公开测评复议投票投赞成票。

通过去除了一个重要的障碍,放松的强封装默认会有助于 JDK 9 的采纳,至少在短期内会是如此。考虑到这些改进,当前在 EG 内基本一致地认为,JPMS 已准备好在 JDK 9 中发布。

伦敦 Java 社区在首轮投票中也投了反对票,并在复议投票中改为赞成。就这一最新投票结果,Java 伦敦社区的联合创始人及jClarity 的CEO Martijn Verburg ,以及 IBM 资深技术人员 Tim Ellison 接受了 InfoQ 的采访。

InfoQ:你们如何看待 Red Hat 选择投弃权票?

Verburg: 首先要声明,这是我个人的看法和猜测。我认为 Red Hat 之所以这样投票,是因为它认为投赞成票将会让它的客户产生错觉,认为当前形式的 Jigsaw 已准备好提供所有用户的全部用例使用。Red Hat 清楚地表明了自己的态度,即虽然当前形式的 Jigsaw 是一个可接受的基础,但是尚未对所有用户和用例准备好。

Red Hat 正寻求解决的一些 Jigsaw 条目,已经推迟到稍后的日期。我们当前仍不确定对这些问题的解决是否将会出现在 Java 9 的更新版发布或是 Java 10 中。

InfoQ:自 5 月 8 日投票后,还做了哪些更改?

Verburg: 非常多!详细技术细节记录于如下会议记录中:

其中需要特别强调指出的是:

  • 在版本命名格式上取得了一致。
  • 在自动模块命名(Automatic Module Naming)规则上取得了一致,并给出了最佳使用指南(这对 Maven 生态系统非常重要)。
  • 同一模块的多版本处理问题将会延期解决。
  • 在将放宽强封装作为默认上取得了一致(这意味着更少的应用将会打破常规,而是给出告警)。
  • 整理了部分关键字的使用方法(支持 Eclipse 编译器工作)。T

InfoQ:为使 JSR-376 投票通过,是否还实现了一些其它的改进和贡献因素?

Verburg:事实上,规范牵头人和 EG 间通过电话会议联系,并为改进相互之间的通信和协作而做了大量的工作,这是尤其至关重要的。

Ellison:在 5 月 8 日投票关闭后,还完成了一系列的改进【1】。其中部分改进是一些相对较小的 API 改进,这些改进早就应该完成,即便规范那时已经进展到建议最终草案(Proposed Final Draft)状态。其它的一些改进是提供了新的功能,包括支持已有代码更容易的迁移,以及支持 Java 9 概念在已有软件库和应用中更宽泛的采纳。作为专家组,我们聚在一起(虚拟的)并探讨了一些突出的问题,决定了哪些问题应在最初版本中“必须解决”,哪些问题可以推迟到稍后的 Java SE 版本中,以及哪些问题应该在当前阶段被抛弃。

对于通过增加平台发布节奏而确保提升 Java SE 技术的生命力和步伐的做法,在 JCP 中存在着一些讨论。这必须实现于多年来一直对 Java 工作良好的标准化过程中,并且具有一个能为商业利益提供富有成效协作的论坛。

综合这两个方面的因素,我希望有 JSR 维护版本专家组能尽快重新考虑一些被推迟的 JPMS 条目。而且通过提交一个最初版本,任何更进一步的提升将会受益于一些真实世界经历。

对于这个话题,我在一篇博客文章【2】中做了详解介绍。其中的突出问题列出于文档【3】中。

[1] https://www.jcp.org/en/jsr/results?id=5959

[2] https://developer.ibm.com/javasdk/2017/05/26/building-consensus-jsr-376-java-platform-module-system/

[3] http://openjdk.java.net/projects/jigsaw/spec/issues/

InfoQ:你们希望在 JSR-376 中能看到哪些更进一步的改进?

Verburg:我希望能有更多的工作围绕着版本控制和版本支持开展。当前,挑出问题的责任依然落在构建工具上,但我们希望 Jigsaw 能对此提供强大的引导作用。

Ellison:模块化并非一次性设计。我们认为它将随人们的使用而不断进化,给出我们以前从未看到过的问题,我们从来没有预先考虑到的用例,并不断地采纳业界的改进(例如云、微服务、无服务器等)。我一直关注着如何与社区共同工作,如何了解我们客户的利益,意在确保当前代码并未落后于 Java SE 的演化,并且很好地支持新的框架和编程模型。

查看英文原文: Java Module Platform System (JSR 376) Passes the Public Review Reconsideration Ballot

2017-07-09 19:003077
用户头像

发布了 227 篇内容, 共 86.6 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

代码生成之外,AI 提效研发的“最短路径”在哪里?|DevChat Tester 产品手记

思码逸研发效能

研发效能 API测试 智能测试 API测试工具 思码逸

“他她它”深度体验:京东的“万能”工具箱,装进一个有趣的“灵魂”

Alter

出海社交 AI助手

告别复杂代码!用Dify+Bright Data,可视化搭建高可靠AI数据抓取流水线

阿Q说代码

工作流 dify 亮数据

局域网聊天工具,一体化安全办公轻松管理

BeeWorks

即时通讯 IM 私有化部署

HSV - RGB 来点实际的

Miracle

如何使用极限网关实现 Elasticsearch 集群迁移至 Easysearch

极限实验室

elasticsearch Gateway 数据迁移 极限网关 easysearch

新闻速递丨Altair 与美国威奇托州立大学国家航空航天研究所签署战略备忘录,加速航空航天领域创新步伐

Altair RapidMiner

数字孪生 仿真 CAE hyperworks 航空航天

哈尔滨等保测评:核心知识与实践要点

等保测评

黑龙江二级等保:助力区域网络安全水平整体提升

等保测评

让GPU更轻盈 让推理更流畅|焱融YRCache双异步技术激活AI新价值

焱融科技

AI 大模型 推理模型 KVCache

什么是UDFScript用户自定义脚本

天翼云开发者社区

CDN

精彩抢先看!博睿数据将亮相第二十七届GOPS 全球运维大会上海站 !

博睿数据

GPU 网络通信基础,Part 1(横向与纵向扩展;训练中的通信环节...)

Baihai IDP

AI gpu LLM GPU网络通信

城市一张网,以数据之桥擎托未来

脑极体

AI

博睿数据受邀出席东盟人工智能应用生态交流会,以“AI+可观测性”驱动数字化运维模式创新!

博睿数据

鸿蒙应用开发从入门到实战(十五):线性布局案例

程序员潘Sir

鸿蒙 HarmonyOS

大数据-107 Flink Apache Flink 入门全解:流批一体的实时计算引擎 从起源到技术特点的全面解析

武子康

Java 大数据 flink spark 分布式

基于 eBPF 技术打造的 LightAPM 应用监控,效果如何

乘云数字DataBuff

监控 ebpf LightAPM

重复对象:媲美Figma旋转复制,让UI设计更出彩!

职场工具箱

效率工具 设计师 figma ui设计 在线设计工具

智慧化商品运营:数据科学与人类创意的完美融合

第七在线

WPS 365联手小米芯片:守护百万研发文档安全,评审效率提速77%

极客天地

AI 英语口语 APP 开发费用

北京木奇科技有限公司

软件外包公司 AI英语学习

哈尔滨等保测评:新兴技术适配下的安全升级

等保测评

Parameter ‘**‘ not found. Available parameters are [0, 1, param1, param2]解决办法

刘大猫

人工智能 云计算 大数据 算法 物联网

云栖2025 | 人工智能平台 PAI 年度发布

阿里云大数据AI技术

人工智能 阿里云 云栖大会 PAI

观测云产品更新 | 安全监测、监控器、管理、异常追踪、查看器等

观测云

产品迭代

借助人工智能提升工作效率,打造自己的智能体工作流

测试人

区块链Web3系统的开发费用

北京木奇科技有限公司

区块链开发 软件外包公司 web3开发

天润融通ZENAVA重磅发布:让AI成为客服和营销的核心生产力

天润融通

一种CDN动态加速首次访问加速方法

天翼云开发者社区

CDN

Java平台模块化系统(JSR 376)通过公开测评复议投票_Java_Michael Redlich_InfoQ精选文章