写点什么

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:002341
用户头像

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

关注

评论

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

秒验 客户端SDK返回码

MobTech袤博科技

sdk 客户端

英特尔Josh Newman: 真正满足用户所需,让人们享受专注与互联的PC体验

科技之家

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

京东T8纯手码的Redis核心原理手册,基础与源码齐下,吃透全部知识点

Geek_0c76c3

Java 程序员 架构 面试

2022年阿里最新开源: Java 面试权威指南(泰山版),涨薪 30%不在话下

Geek_0c76c3

Java 数据库 开源 程序员 架构

Photoshop软件应用项目(一)

张立梵

设计师 ps 10月月更

英特尔Josh Newman:英特尔多设备协同技术的意义在于真正革新PC体验

科技之家

一文读懂 MySQL 锁

说故事的五公子

MySQL 数据库

阿里资深架构师把大厂高频 2000+ 道 Java 面试题全部总结出来了,分分钟拿捏面试官

Geek_0c76c3

Java 数据库 开源 程序员 开发

更新:为 NGINX 配置免费的 Let's Encrypt SSL/TLS 证书

NGINX开源社区

nginx 更新 SSL/TLS 协议

STM32L051测试 (三、I2C协议设备的添加测试)

矜辰所致

stm32 I2C STM32CubeMX STM32L051 10月月更

Github已星标54k,美团大牛强推JDK源码笔记,从多线程基础开讲,太全了

Geek_0c76c3

Java 开源 程序员 架构 框架

全网首发!阿里内部出品Spring Security项目实战搭建+思维脑图

Geek_0c76c3

Java 数据库 开源 程序员 开发

ironSource ROAS 智能优化工具大升级,用户现可查看每日 KPI 数据及趋势走向

极客天地

OpenKruise v1.3:新增自定义 Pod Probe 探针能力与大规模集群性能显著提升

阿里巴巴云原生

阿里云 云原生 OpenKruise

大杀四方!腾讯强推599页Netty进阶神技,彻底解析Netty

Geek_0c76c3

Java 数据库 程序员 架构 开发

【IT运维】自动化运维和普通的运维的区别是什么?哪个好?

行云管家

运维 IT IT运维 自动化运维

私有云运维管理系统是什么?哪款软件好?

行云管家

云计算 私有云 多云 云管理

leetcode 219. Contains Duplicate II 存在重复元素 II(简单)

okokabcd

LeetCode 数据结构与算法

仅靠这份Java性能调优实战宝典,薪资暴涨13k,理论+实践7个模块整整15w字

Geek_0c76c3

数据库 开源 程序员 开发

真的香!Github一夜爆火被各大厂要求直接下架的面试题库也太全了

Geek_0c76c3

Java 数据库 开源 程序员 开发

开发者嘉年华|博客马拉松挑战,记录学习进程,分享你的知识!

Jina AI

开源 工程师 技术博客 1024

移动端IM产品RainbowChat[专业版] iOS端 v6.0版已发布!

JackJiang

网络编程 即时通讯 IM

阿里巴巴最新发布的Java架构六大专题面试宝典,都是些大厂的面试真题汇总,还不赶紧收藏

Geek_0c76c3

Java 数据库 程序员 面试 开发

仅凭这份Java高级面试题合集(附面经),成功解决阿里5面,拿下offer

Geek_0c76c3

Java 数据库 开源 程序员 面经

太全了!华为大神珍藏版SpringBoot全优笔记,首次分享

Geek_0c76c3

Java 数据库 开源 程序员 架构

假如问:你是怎样优化Vue项目的,该怎么回答

bb_xiaxia1998

Vue

熟读阿里总结的Java10w字总结,15天拿下5个大厂offer(阿里,美团,字节...)

Geek_0c76c3

Java 数据库 开源 程序员 开发

GitHub star过万!仅靠这份图解算法进阶指南,成功拿下字节offer

Geek_0c76c3

Java 数据库 开源 程序员 架构

2022全网独一份Java面试题整理,包含30个技术栈, 1575 道Java 架构师面试题

Geek_0c76c3

Java 数据库 开源 程序员 开发

【导航】ESP32-C3 入门教程目录 【快速跳转】

矜辰所致

目录 ESP32-C3 10月月更

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