2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Reinhold 就 Jigsaw 投票一事向 JCP 提交公开信

  • 2017-05-11
  • 本文字数:1184 字

    阅读完需:约 4 分钟

Oracle Java Platform Group 的首席架构师 Mark Reinhold 向 JCP 执行委员会提交了一封公开信。在公开信中,他表示对 IBM 投了 JSR 376 反对票一事感到震惊,并争辩说,Red Hat 之所以也投反对票,是出于“保护他们自家的非标准模块化系统,而这个系统在 JBoss/Wildfly 之外的生态系统并没有多少用武之地”。他进一步辩解说:

在你们考虑如何投出你们手中宝贵的一票之前,我建议你们先对这一规范的价值做一个考量,并仔细考虑你们的投票将会对未来带来的深远影响。

因为专家组缺少统一的意见就投反对票,这无异于在反对 JCP 本身。JCP 的存在并不是为了强制达成统一意见,它需要正当充分的理由。它赋予规范制定者充分的决策权,防止专家组成员因为自己的个人兴趣而妨碍到整个进程。如果你们放弃了你们的权利,那么未来的 JSR 就变成了“专家团”的自我表演。

很多失败的技术都是这么来的。

我不希望 Java 的未来会是这个样子。

作为回应,来自 Red Hat 的 David Lloyd 提出了一些比较突出的问题,简单概括如下。

  • 在运行时允许模块间存在环。
  • 模块原始补丁(虽然很小)会被重新计算(在必要情况下进行分阶段)。
  • 在模块路径间提供了包命名隔离。

Lloyd 补充说:

我们担心针对反射所做的变更对于社区来说太过剧烈,而且还有可能对执行委员会和专家组造成很大影响。我认为,在专家组达成一致意见之前,我们还是保持现状。

在模块路径命名方面,Reinhold 提交了一个更新提案 #AutomaticModuleNames,为了更好地与 Maven 兼容,如果 JAR 包里包含了 pom.properties,可以将 Maven 的 group identifier 包含进来,这样模块命名就不太可能发生冲突。

#AutomaticModuleNames 允许开发者将他们的代码拆分成多个模块,而无需等待他们所使用的类库或框架支持 Jigsaw。

这一提案的关键之处在于, JAR 包里的一个 manifest 属性 Automatic-Module-Name。当 JAR 被放进模块路径时,这个属性的值会被用作模块的名字。如果模块路径里的 JAR 包没有提供这个属性,那么模块的名字就需要通过基于文件名的算法来计算得出。Reinhold 建议说:

通过这种机制,类库的维护者就可以很方便地维护一个稳定的模块。例如,在 Maven 里,通过 “pom.xml”里的几行代码就可以添加 manifest 属性。类库维护者在一开始就声明一个稳定的模块名,不需要等待它的依赖库实现模块化,而依赖该类库的软件包和应用可以立即实现模块化。

Oracle 已经在 Java 模块系统提案上进行了大量的工作,从 JSR 277 开始,至今已经有 12 年的时间。最初计划在 Java 7 里发布,后来延期到 Java 8,现在是 Java 9。这一提案从一开始就饱受争议。不过,到目前为止,社区方面已经对 Jigsaw 方案达成广泛的共识,Jigsaw 为分解 JDK 提供了必要的方案。问题在于,如果在 Java 9 里加入 Jigsaw,那么很多 Java 工具就无法工作。

查看英文原文: Reinhold Publishes Open Letter to JCP Pleading That JPMS (Jigsaw) Is Approved

2017-05-11 19:002041
用户头像

发布了 322 篇内容, 共 150.1 次阅读, 收获喜欢 148 次。

关注

评论

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

风景如旧

风景壁纸

Controller Manager原理分析

穿过生命散发芬芳

6 月 优质更文活动

STM32配合W5500网卡连接MQTT服务器

DS小龙哥

6 月 优质更文活动

MegEngine 动态执行引擎 Imperative Runtime 架构解析

MegEngineBot

深度学习 开源框架 MegEngine

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

股市老人

消保评级提升指南!保险公司如何高效开展消保工作?

中关村科金

解决方案

主流文件共享平台的传输加密秘密

镭速

DBA 抓包神器 tshark 测评

爱可生开源社区

MySQL 网络协议 TCP协议 抓包工具

MySql性能调优:实用的实践与策略

xfgg

MySQL 6 月 优质更文活动

智能坐席助手如何助力保险集团实现客户服务闭环管理?

中关村科金

企业服务 坐席助手

Generative AI 新世界:过去、现在和未来

亚马逊云科技 (Amazon Web Services)

人工智能 机器学习

3年经验程序员终于把Spring核心容器的面向切面与Spring AOP搞懂了

互联网架构师小马

数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年5月刊

墨天轮

MySQL 数据库 oracle postgresql opengauss

入职新公司,水土不服该怎么破?

Jackpop

语音社交源码知识语音房间功能的实现

山东布谷科技

源码 软件开发 源码搭建 语音社交软件 语音厅平台搭建

难得可贵的Spring依赖注入实战经验,是程序员就该吸收一下!

互联网架构师小马

Java spring

2023-06-16:给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间

福大大架构师每日一题

golang 算法 rust 福大大架构师每日一题

某大厂工作3年,被劣驱良了。。。

Jackpop

Kafka单机搭建(信任认证/口令认证)

Shen-Xmas

kafka zookeeper 测试 搭建 单机

C语言编程语法—语法风格

芯动大师

C语言 语法风格 6 月 优质更文活动

大牛一次带你彻底搞懂Spring核心容器的动态代理机制与SpringAOP

互联网架构师小马

Kubernetes Scheduler原理分析

穿过生命散发芬芳

k8s 6 月 优质更文活动

软件开发人员必须阅读的20本书

越长大越悲伤

架构 微服务 软件开发

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

西柚子

FP&A转型,企业全面预算管理发展的催化剂

智达方通

全面预算管理 企业全面预算管理

医疗虚拟仿真和虚拟现实有什么区别?哪个更好?

3DCAT实时渲染

虚拟仿真 实时渲染 云仿真

还没毕业,就“被毕业”,太惨了!

Jackpop

PoseiSwap 即将在 6 月 18 日开启 IDO,白名单申请者超 14000 人

BlockChain先知

Reinhold就Jigsaw投票一事向JCP提交公开信_Java_Charles Humble_InfoQ精选文章