【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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

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

关注

评论

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

TS中type和interface在类型声明时的区别

不叫猫先生

6 月 优质更文活动

LRU缓存策略

不叫猫先生

LRU 6 月 优质更文活动

了解 Dubbo:分布式服务框架的基础知识

Apifox

程序员 gRPC dubbo RPC 开发

解密云商降本之谜:揭开AWS账单的真相,实现Finops的关键数据

jinjin

AWS 降本增效 spotmax FinOps 节约成本

软件测试|Python绘图神器——Matplotlib使用教程(一)

霍格沃兹测试开发学社

阿里云微服务引擎负责人李艳林:云原生网关当道,会带来哪些改变

阿里巴巴云原生

阿里云 微服务 云原生

什么是无服务器架构技术?

天翼云开发者社区

服务器 架构设计

边缘计算简介

天翼云开发者社区

云计算 边缘计算

图文详解丨iOS App上架全流程及审核避坑指南

雪奈椰子

软件测试|Python操作Excel制作报表,不要太方便

霍格沃兹测试开发学社

软件测试|一文教你flask路由配置

霍格沃兹测试开发学社

索信达携手华为联合发布智能营销标签平台解决方案

索信达控股

AIGC时代,基于云原生 MLOps 构建属于你的大模型(上)

York

云原生 大模型 MLOps AIGC ChatGPT

iOS App的打包和上架流程

雪奈椰子

关于GDPR体系文件介绍,介绍GDPR体系文件的内容和意义

镭速

头部大模型公司进京赶考,向量数据库成为应考神器

Zilliz

Milvus Zilliz AIGC 向量数据库 zillizcloud

低代码平台满足企业对软件开发工具的智能化需求

这我可不懂

低代码 数字化 JNPF

软件测试|码农必会的git操作(一)

霍格沃兹测试开发学社

一文快速了解微服务架构

穿过生命散发芬芳

微服务 6 月 优质更文活动

推动高校教改:如何面向人文社科教授数据分析

ModelWhale

数据分析 学科交叉 人文社科 教学经验 高等教育

潮流地标美罗城焕新活力,智图赋能传统商业经典延续|MobTech观察

MobTech袤博科技

软件测试|pyecharts绘制NBA球星得分能力对比图

霍格沃兹测试开发学社

软件测试|一文带你了解Flask框架

霍格沃兹测试开发学社

帮您了解CDN节点如何做到访问加速与安全防护

天翼云开发者社区

云计算 CDN 内容分发网络

镭速用心打造,新版本发布,为用户实现更多可能

镭速

云原生中间件套件,如何为企业数字化转型提供支撑

金蝶天燕云

云原生 中间件 信创

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式

阿里巴巴云原生

阿里云 RocketMQ 云原生 AIGC

软件测试|必须遵循的UI自动化设计军规

霍格沃兹测试开发学社

软件测试|教你轻松解决pip安装下载超时问题

霍格沃兹测试开发学社

javaScript实现动态规划(Dynamic Programming)01背包问题

不叫猫先生

动态规划 JavaScrip 6 月 优质更文活动

2024深圳电子展

AIOTE智博会

电子展

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