写点什么

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

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

关注

评论

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

如何确保度量过程中收集到的数据是有实际意义的?

思码逸研发效能

研发效能 数据研发 研发效能度量 研发效能管理

【论文速读】| APOLLO:一种基于 GPT 的用于检测钓鱼邮件并生成警告用户的解释的工具

云起无垠

探讨京东商品 API 接口:运用及收益

科普小能手

API 接口 API 测试 京东API接口 京东API 京东商品API

豆包MarsCode 助力:Canvas 上的素描变色魔法✨

豆包MarsCode

程序员 AI 开发 代码 可画

鸿蒙Flutter实战:02-Windows环境搭建踩坑指南

少湖说

flutter 鸿蒙 HarmonyOS

【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit

HarmonyOS SDK

HarmonyOS

nPlayer for Mac功能强大的视频播放软件

Mac相关知识分享

大语言模型鼻祖Transformer的模型架构和底层原理

Zilliz

nlp Transformer 大模型 Zilliz LLM

Premiere Pro 2025 for mac(adobe pr 2025) 特别版

你的猪会飞吗

mac破解软件下载 pr2025下载

亚太地区人工智能应用加速,战略数据管理仍是关键

财见

Sketch for mac专业矢量图形设计软件中文版

Mac相关知识分享

达摩院发布八观气象大模型:精度达1小时1公里,率先落地国网山东省调

新消费日报

怎么在国内运营tiktok账号?

Ogcloud

云手机 tiktok云手机 tiktok运营 TikTok矩阵运营 tiktok运营干货

TDengine 签约蘑菇物联,改造通用设备工业互联网平台

TDengine

数据库 tdengine 时序数据库

从热数据到冷数据:TDengine 多级存储如何助力智能数据管理

TDengine

数据库 tdengine 时序数据库

Mac 桌面管理软件Royal TSX for Mac(强大的远程管理软件)

Mac相关知识分享

打造理想开发环境!双十一硬核装备与云资源全攻略【必备收藏清单】💻🌐

申公豹

程序员

哪些开源项目管理工具值得尝试?8款功能对比

爱吃小舅的鱼

开源项目管理工具

实时防护,清洗服务可用性达99.95%,江苏杰邦芜湖DC安全基地正式上线

江湖老铁

团子东子开奖了,这泼天的富贵!

王磊

ABB宣布收购Aurora Motors

财见

Need 3 WiFi Radios? Meet the Game-Changing 3-in-1 Solution!

wallyslilly

QCN9074 QCN9024

低代码,而不是低能力,低代码能成为企业降本增效的神器吗?

积木链小链

低代码 低代码开发

如何预测市场趋势和潜在价格变动?请收好这份「加密货币蜡烛图」解读指南

TechubNews

怎么对ppt进行批注?2个PPT制作干货分享!

职场工具箱

效率工具 PPT 办公软件 高效办公 AI生成PPT

万界星空科技汽车零部件MES解决方案

万界星空科技

mes 万界星空科技mes 汽车行业数字化转型 汽车零部件 汽车零部件mes

TikTok封号原因有哪些?怎么解决?

Ogcloud

TikTok 云手机 海外云手机 tiktok运营 tiktok封号原因

度量数据是人工凭感觉录入的,产生的偏差如何解决?

思码逸研发效能

DevOps 研发效能 效能度量 研发效能管理

MySQL 8.0 执行COUNT()很慢原因分析

GreatSQL

Playwright:掌握Web自动化测试的新利器

霍格沃兹测试开发学社

研发团队管理中的常见挑战与解决方案

爱吃小舅的鱼

团队管理

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