写点什么

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

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

关注

评论

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

从互联网女皇 AI 趋势报告,看融云大模型 API 服务

融云 RongCloud

StoreView SQL,让数据分析不受地域限制

阿里巴巴云原生

阿里云 云原生 sls

融云上线大模型 API 服务,20 万 Token 免费送

融云 RongCloud

大数据-05-Hadoop集群 集群WordCount 超详细 真正的分布式计算 上传HDFS MapReduce计算 YRAN查看任务 上传计算下载查看

武子康

大数据 hadoop mapreduce hive

和鲸科技亮相 2025 河南省人工智能大会,共绘“气象+AI”新图景

ModelWhale

人工智能 科学智能 河南省人工智能大会

融云大模型 API 服务上线,专注业务创新,底层交给融云

融云 RongCloud

HarmonyOS应用闪屏问题性能优化二

李洋-蛟龙腾飞

华为大咖答疑丨金融行业数智化转型需要注意哪些问题?该如何解决?

轶天下事

IPLC/CN2/BGP/CIA与普通网络线路差异对比

Ogcloud

BGP 企业组网 企业网络 IPLC 国际IPLC专线

AI 技术在出版社信息化中的应用

北京木奇移动技术有限公司

软件外包公司 AI技术应用 出版社

BOE(京东方)控股子公司武汉京东方回购少数股东股权 归母权益进一步提升

爱极客侠

还在用 Jmeter 做压测?试试 oha 吧!你会毫不犹豫的爱上它!

左诗右码

为什么架构师都在偷偷练系统思维?

秃头小帅oi

Linux下如何使用perf/gdb/pstack分析性能与问题排查

天翼云开发者社区

弹性负载均衡

为什么数字化转型失败率这么高?

积木链小链

数字化转型 数字化 智能制造

618特惠 | 全场75折、免费领500MB动态流量,更多福利叠加、零门槛领取!速来!

kookeey代理严选

静态代理 代理IP 跨境电商 动态代理IP 618特惠

EndNote 2025 :全新的 AI 功能,加快研究发现流程

Rose

CAD面积如何快速测量?详细步骤来了

在路上

cad cad看图 CAD看图王

《长安的荔枝》中隐藏的“算法思维”

博文视点Broadview

AI API、AI 聊天助手,融云两大 AI 服务助力应用智能化转型

融云 RongCloud

HarmonyOS应用闪屏问题性能优化一

李洋-蛟龙腾飞

HarmonyOS应用闪屏问题性能优化三

李洋-蛟龙腾飞

专业的Mac菜单栏管理工具 Bartender 5

Rose

Topaz Video AI v7.0.1 一键激活版 AI视频无损缩放增强

Rose

大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI

武子康

大数据 hadoop mapreduce hive

从互联网女皇 AI 趋势报告,看大模型 API 服务

融云 RongCloud

vivo Pulsar万亿级消息处理实践(1)-数据发送原理解析和性能调优

vivo互联网技术

Java 大数据 后端 服务器 消息队列

网络安全自动化:最需要自动化的 12 个关键功能

天翼云开发者社区

安全

DataGrip2025中文激活版 附DataGrip永久许可证

Rose

华为开发者空间 - 自主编程之Cline×DeepSeek的智能融合探索

华为云开发者联盟

人工智能 华为云ModelArts 华为开发者空间

iptables- MARK与CONNMARK目标

天翼云开发者社区

网络

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