大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

Java 社区计划量化 Java 9 使用情况

  • 2018-06-27
  • 本文字数:1697 字

    阅读完需:约 6 分钟

在发送给 Java 冠军列表的邮件中,伦敦 Java 社区负责人 Martijn Verburg 宣布:

我们想要弄清楚哪些流行的库在与 Java 9+ 相关的工作上落后了,又有哪些以最小化(自动模块)或完全的方式使用了模块系统。

LJC 宣布了一个众筹项目,旨在“资助 Java OSS,最小化 Java 8/9+ 分裂”,新的社区工作将帮助确定 LJC 所开展的这项活动的众筹目标。

这项工作获得了 Java 冠军的支持,包括 Sander Mak、Ray Tsung、Robert Schulte 和 Rabea Gransberger,他们还开展了一项调查,邀请尽可能多的Java 开发人员参与进来,从而对实际的实践活动有一个更好的理解。

为了了解有关这项活动的更多信息,InfoQ 采访了Martijn Verburg。

InfoQ:你们为什么推出了这项新活动?你们在社区里看到了你们认为供应商无法解决的具体问题吗?

Verburg:我们之所以推出这项活动,是因为 Java 9 带来的变化需要一些库和框架对代码做大幅的修改,而且,Java 新的发布节奏也需要一些库和框架为了保持兼容性而做修改。

Oracle 清晰传达 Java 9 的变化和新的发布节奏已经有段时间了,他们已经协助完成了许多升级流行库和框架的工作。

不过,我们相信,仍然有许多的库和框架没有正确地开展与 Java 9 相关的工作,或者,他们由于维护者 / 志愿者少或者缺少商业支持而无法跟上新的发布节奏。

因此,我们希望找出那些项目,帮助他们实现兼容,以便应用程序迁移时可以依赖于这些流行的库和框架。

InfoQ:您是否已经发现什么重要的 Java 技术在向模块迁移上可能存在问题?

Verburg:这个问题其实可以分为三个部分:

1. 这项重要的技术是在 Java 9/10 上运行吗?

有许多总要的技术是这样的。例如,IntelliJ 是,Apache Maven 是(需要修改 POM),JUnit 5 是,Spring 5 也支持,诸如此类。不过,也有一些值得注意的疏漏。

Java EE / Jakarta EE 就没有提供开箱即用的支持,有多个 Apache 通用库也是还在添加这种支持,等等。

我们会扫描 Maven 中央仓库,通过一连串的测试查看它们的兼容程度(尤其是流行项目)。我们推测,结果会不错,而且兼容性会稳步提高。

2. 这项重要的技术是使用 Automatic-Module-Name 在模块路径上运行吗?

等我们完成对 Maven 中央仓库的数据挖掘后,我们可以给出更好的答案,但是,据我们推测,这个数值虽然不大但会不断增加。

3. 这项重要的技术是使用 module-info.java 完全采纳了模块系统吗?

我还得说,等我们完成对 Maven 中央仓库的数据挖掘后,我们可以给出更好的答案,但是,据我们推测,这个数值不大,而且增长缓慢。Oracle 以及我们中的大多数都参与了这项工作,恰当的模块化很难!

InfoQ:自动模块呢?您觉得那是库的一种长期可行的解决方案吗?或者更多地,我们只能把它们视为权宜之计?

Verburg:它们本来就是权宜之计,但是,我担心,由于程序员默认是“懒惰的”,大多数库和框架的维护者会仅仅添加自动模块,而不考虑使用模块系统模块化它们的应用程序(利用模块系统带来的好处)。

我个人认为,我们需要更多的最佳实践和工具支持,帮助开发人员在日常的工作中针对高难度的模块设计做决策及重构。如果我们都依赖的流行的依赖项完全模块化,那么我们很可能就会看到应用程序跟进,否则就不可能。

显然,模块系统对于 JDK 本身及供应商都是一个重大利好,他们可以由此派生出更小的客制化打包特性。不过,在应用开发人员的日常工作中,它可能不会获得很大的心理份额或者很多的使用,时间会证明一切。

InfoQ:您是否觉得 Java 社区也面临着“Python 2/3 的问题”?

Verburg:我认为,Java 会遇到一点 Python 2/3 的挑战,有两个原因:

1) 使所有通用 / 流行依赖项都兼容 Java 9+ 的工作。这显然是一个可以解决的问题,我们会加速前面提到的众筹工作。

2) 市场对 Oracle JDK LTS 支持计划的反应未知。在此提醒一下, 即使是 LTS 版本,公共更新也会在 6 个月之后停止。之后,如果你希望技术停留在 Oracle 的那个 LTS 版本上,并获得安全和稳定性修复补丁,就需要付费来获得 Oracle 提供的(Oracle JDK)技术支持,否则就得在 6 个月的窗口期之后迁移到 Java 12,诸如此类。

Java 9 使用情况调查现已开放,欢迎参与。

查看英文原文: Java Community Aims to Quantify Java 9 Adoption

2018-06-27 02:382286
用户头像

发布了 1008 篇内容, 共 442.3 次阅读, 收获喜欢 346 次。

关注

评论

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

化学绘图神器 ChemDraw for Mac破解版 兼容m/intel芯片

Rose

ChemDraw破解版 ChemDraw化学绘图 ChemDraw下载安装

有了MES、ERP,质量管理为什么还需要QMS?

万界星空科技

万界星空科技 QMS 质量管理QMS系统 生产质量管理 产品质量管理

5年质保!英特尔宣布:为第13和14代酷睿台式处理器延长2年保修

E科讯

Autodesk Maya 2025.2中文版最新浮动许可证 maya2025安装教程分享

Rose

Maya 2025中文版 Maya 2025安装教程 玛雅2025破解版 Maya 2025浮动许可 三维动画

CleanShot X for mac:屏幕全域截图、窗口截图、屏幕、标注、滚动截图

Rose

mac截图工具 CleanShot X for mac CleanShot X下载 CleanShot X截图

(价格准确)淘宝推荐引擎揭秘:商品详情页API背后的智能算法

代码忍者

API 安全 API 文档 API 测试

开发者必看:Temu商品列表API接口详解应用

tbapi

temu temu API temu商品列表接口 关键词搜索temu列表接口

阿里云实时计算Flink在多行业的应用和实践

阿里云大数据AI技术

大数据 flink 实时计算

FlowJo 10 for Mac 流式数据分析软件 破解版安装教程

Rose

FlowJo 10下载 FlowJo破解版 FlowJo安装教程

LLM智能体工程落地思考

数由科技

人工智能 低代码 数据科学 LLM AI Agent

科学文献管理endnote 21激活码(endnote 21大客户授权版许可证)

Rose

endnote 21激活码 endnote 21大客户授权版 科学文献管理

科研数据绘图分析 GraphPad Prism10激活版 for mac/win

Rose

GraphPad Prism 10 GraphPad Prism破解版 GraphPad Prism下载 科研数据绘图

淘宝商品详情数据接口:价格数据实时获取方法

tbapi

淘宝API接口 淘宝商品详情接口 淘宝商品价格接口 淘宝实时价格接口

修改手机定位软件--AnyGo中文激活版 AnyGo永久激活破解安装

Rose

Mac软件 AnyGo 虚拟机定位

WebStorm 2024 mac中文永久密钥 WebStorm安装教程 支持M1/M2/M3

Rose

WebStorm中文版 WebStorm 2024下载 WebStorm 2024破解版 WebStorm密钥

(优惠券数据)京东商品详情API深度解析:品牌与分类信息的智能检索与应用

代码忍者

API 安全 API 文档 API 测试

3D渲染和动画制作KeyShot 2024.2 中文版 for mac/win破解版下载 含许可证文件

Rose

渲染 动画制作 KeyShot 2024许可证 KeyShot 2024.2安装教程 KeyShot 2024 破解下载

【附源码+教程】基于华为云物联网设计的人工淡水湖养殖系统

DS小龙哥

8月月更

结束了~

XIAOJUSURVEY

开源 程序员 代码 贡献者 活动运营

从知识图谱到 GraphRAG:探索属性图的构建和复杂的数据检索实践

可信AI进展

人工智能

Topogun 3 for mac安装教程(强大的模型拓扑工具)v27840激活版

Rose

Java社区计划量化Java 9使用情况_Java_Ben Evans_InfoQ精选文章