写点什么

IBM 和 Red Hat 会对 Java 模块系统(Jigsaw)投反对票

  • 2017-05-06
  • 本文字数:1778 字

    阅读完需:约 6 分钟

InfoQ之前曾经报道过JSR 376(Java 平台模块系统)的开发现状,它通常被称为“Jigsaw 项目”。现在,有一件不太寻常事情,IBM 和Red Hat 都公开表示,将会对Jigsaw 目前的状态投反对票。

这个项目试图为Java 提供一个标准化的模块系统,它最初的计划是在Java 7 中实现,在Mark Reinhold宣布B 计划之后,转移到了Java 8 中。2012 年7 月,Oracle 再一次推迟了这个项目,将其转移到了Java 9 中。即便如此,这个项目依然再次延期,这主要是因为Jigsaw 的复杂性而且它需要进行广泛的测试。

Jigsaw 的范围是非常广泛的,它不仅想要模块化庞大的 Java 运行时,还想强制进行强封装,这样的话 Java 代码只能通过公开的接口去访问平台库。模块化的代码不能随心所欲地进入另外一个模块的内部。

不仅如此,Oracle 希望模块系统不仅用在 JDK 本身中,还要用在应用程序的代码中。为了实现这一点,JSR 376 专家组(Expert Group,EG)曾经讨论过应用级别模块化与 JDK 模块化的各个方面。

除了标准流程之外,目前已经有两个主要的模块实现,它们与 Jigsaw 的范围有些重叠,这两个方案就是 JBoss Modules 和 OSGi,前者来自 Red Hat,而后者由一个厂商所组成的联盟来管理,这些厂商中包含 IBM。

Red Hat 和 IBM 都是 Java Community Process 执行委员会的成员,这个委员会有 25 个成员,它们要负责批准所有的 Java 新标准,包括“平台释放版本”要包含哪些的内容,比如 Java 的主版本。这样的释放版本必须要取得三分之二席位的支持。

来自 IBM 的 Tim Ellison 在 OpenJDK 邮件列表中宣布了他们的决定,他这样评论到:

IBM 也会投反对票,这反应了我们对这个 JSR 的态度,我们认为眼下它还没有超出 Public Review 阶段的要求,并不适合继续推进到 Proposed Final Draft 阶段。

JSR 376 专家组和公众已经针对规范当前的 public review 草案提出了很多合理的问题和关切,这些问题应该进行进一步的讨论并得到妥善解决。我们倡导专家组的所有成员继续协同工作,解决邮件列表中所记录的问题。

在将规范推至下一阶段之前,IBM 希望在整个专家组中形成更紧密的共识。

Ellison 的表态似乎是对一个私下交流的回应,这个交流是在 Ellison、Mark Reinhold 和 Scott Stark(Red Hat)之间进行的,Stark 是这样评论的:

目前,Red Hat 将不会投票批准 JPMS 的 public review 草案,因为它并不能实现 Java 社区的最佳利益。

有个问题在于 IBM 和 Red Hat 所提供的已有的模块系统很难与 Jigsaw 便捷地进行互操作。不过,这两个系统都没有在市场上占据支配性的地位,尽管被影响者会比较痛苦,但是大多数的 Java 项目并不会受到这种不兼容性的影响。

但是,Jigsaw 的问题并不局限于 OSGi 和 JBoss modules。在 Java 世界中,主流的代码打包和分发系统是 Maven,Jigsaw 并没有为基于 Maven 的项目提供一个清晰的升级路径,Maven 会将代码打包到 JAR 文件中,Jigsaw 并没有提供将其打包到模块中的升级途径。

这种关切在一篇联合文档中进行了详细描述,这篇文档是由Red Hat 和外部的Maven 专家共同编写的。Maven 的核心关注点是所谓的“自动化模块(Automatic Modules)”,对社区中的很多人来说,Maven 所关注的情况要比与各厂商的模块系统间的兼容性问题要严重得多。

Martijn Verburg 是伦敦 Java 社区的领导者(同时也是 JCP 执行委员的投票成员),他这样告诉 InfoQ:

作为 EC 成员,这么早就阐明其投票立场并且采用如此公开的方式,实在有些不同寻常。这表明,在 Java 生态系统中,主要的参与者对 JPMS 和 Jigsaw 这一实际实现有着很严重的担忧。尽管目前的模块规范和实现为 Java 带来了许多重要的安全和简洁(compact)运行时提升,但是它(还)没有弥合与其他通用模块系统的鸿沟,也没有处理好它们所依赖的构建工具,无论正确与否,Java 平台恐怕会经历 Python2/3 这样的分裂。

在 Java 新版本的开发周期中,临近结束时,出现如此明显的分歧甚至敌视是前所未有的。尽管这只是一个 Public Review 投票,而不是最终批准投票,但这是一个明确的警告信号。

如果考虑到其他厂商和社区的观点,Oracle 对 Java 9 的交付时间点似乎会出现冲突。到底 Oracle 会改变方向(这样的话,有可能会造成 Java 9 的再次延期)还是坚持自己的观点(即便主要的厂商和社区参与者有反对意见),尚有待继续观察。

查看英文原文: IBM and Red Hat to Vote “No” on Java Modules (Jigsaw)

2017-05-06 19:551770

评论

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

如何在 Zadig 上玩转自动化测试,为业务质量保障提供最大价值

Zadig

云原生 软件测试 CI/CD 软件交付

招聘 | 多家区块链项目招募开发者!

One Block Community

区块链 招聘 波卡

CESS:波卡生态去中心化数据存储的未来

One Block Community

区块链 云存储 去中心化存储 CESS

低代码平台常见的安全隐患,J2PaaS低代码平台如何解决?

J2PaaS低代码平台

低代码开发 低代码平台 企业级低代码平台 J2PaaS低代码平台

行云管家荣膺《中国网络安全行业全景图(第九版)》收录

行云管家

网络安全 行云管家 安全牛

【IT运维】国内优秀的IT运维企业有哪些?

行云管家

云计算 运维 网络运维 IT运维

企业怎样有效地进行文档管理

小炮

企业 文档管理

MacOS 系统如何把PHP版本升级到 7.4或者更高的版本呢,今天教程来啦

CRMEB

波卡动态 | Moonbeam 上第一个3D NFT项目宣布合作

One Block Community

区块链 以太坊 polkadot 波卡 Moonbeam

恒源云(Gpushare)_新功能上线,你确定不进来看看?

恒源云

GPU服务器 GPU算力

3分钟了解Vue开发小程序的技术原理

FinClip

如何在云端重塑内容生产?来看这场虚拟人主持的发布会

阿里云CloudImagine

阿里云 音视频 视频剪辑 智能生产 视频云

Moonbeam 漏洞赏金计划,最高奖金 100 万美金!

One Block Community

区块链 波卡 Moonbeam

FinClip 与 uniapp:轻应用平台与前端开发框架

FinClip

基于云服务器ECS搭建网页游戏《浪剑天下》

阿里云弹性计算

玩转ECS 游戏服务器

EMQ 映云科技 & 阿里云推出“一站式工业数字化解决方案”,共建产业数据湖生态圈

EMQ映云科技

阿里云 开源 物联网 IoT emq

能让程序员涨薪5K的Hystrix核心工作原理,你真的不打算学吗?

Java工程师

Java 程序员 互联网 微服务 科技

写作社区 2 周年,全员狂欢燥起来!

InfoQ写作社区官方

热门活动 InfoQ写作社区2周年

大数据培训-Hive高频面试题分享

@零度

hive 大数据开发

Zadig 基于 OPA 实现 RBAC 和 ABAC 权限管理技术方案详解

Zadig

云原生 CI/CD 软件交付

TiDB 6.0 发版:向企业级云数据库迈进

PingCAP

Pulsar—新一代云原生消息平台

中原银行

分布式 pulsar 中原银行 分布式消息

幸运哈希值竞猜游戏系统开发方案

薇電13242772558

区块链 哈希值

OneBlock | 区块链人才聚集地,面向全球的Substrate 开发者社区

One Block Community

技术社区 #区块链#

真的是最全的一致性hash环讲解了

Java工程师

Java 架构 分布式 算法 hash

为什么都是技术合伙人被踢出局?

方云AI研发绩效

团队管理 研发管理 CTO SaaS

解决两大难题,TDengine 助力亿咖通打造自动驾驶技术典范

TDengine

数据库 tdengine 物联网

Redis Stream 专为队列而生,别再用 List 实现队列了

码哥字节

Redis Stream Redis 数据结构 4月月更

领域驱动设计(DDD)理论与方法

Java工程师

Java 程序员 互联网 DDD 架构设计

一文搞懂Netty发送数据全流程 | 你想知道的细节全在这里

bin的技术小屋

网络编程 Netty Java’ 4月月更 Reactor多线程

2022年3月国产数据库大事记-墨天轮

墨天轮

数据库 TiDB 国产数据库 KingBase gbase8a

IBM和Red Hat会对Java模块系统(Jigsaw)投反对票_Java_Charles Humble_InfoQ精选文章