写点什么

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

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

关注

评论

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

香港首届Web3人工智能与RWA产业投融生态对接峰会蓄势待发

TechubNews

人工智能 AI

北京大风来,带了什么来

AI时代的一滴水

人生修炼

深入研究:京东商品评论API详解

tbapi

京东商品评论接口 京东API 京东评论API 京东商品评论采集

区块链ETF类APP的开发流程

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

区块链技术 软件外包公司 区块链ETF

Dify Agent 驱动轻量级 MCPserver:联动 Zapier 实现智能搜索高效数据流转

汀丶人工智能

agent MCP

ASP.NET 使用通义灵码 - AI 辅助开发提升效率

阿里巴巴云原生

asp.net

欢迎投稿!Community Over Code Asia 2025 议题征集全面启动!

Apache IoTDB

如何使用通义灵码玩转Docker - AI助手提升开发效率

阿里云云效

Docker

TapData 与 StarRocks 完成兼容性互认证,携手共建实时数据智能生态,联合打造端到端全链路实时数仓解决方案

tapdata

实时数仓 数据集成 StarRocks 实时数据平台 tapdata和starrocks

区块链ETF类APP的上线

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

区块链技术 软件外包公司 区块链ETF

一文读通黑神话悟空游戏更新速度慢、更新失败的原因和解决方法

阿拉灯神丁

游戏加速 网络优化 更新系统 黑神话悟空

如何使用通义灵码玩转Docker - AI助手提升开发效率

阿里巴巴云原生

Docker

2025黑神话悟空更新了什么内容 Mac电脑怎么玩黑神话悟空

阿拉灯神丁

mac电脑虚拟机 CrossOver Mac下载 Mac游戏下载 苹果电脑游戏推荐 黑神话悟空

深入研究:1688商品详情API详解

tbapi

1688API 1688商品数据采集 1688数据采集 1688商品详情API

Laravel 使用通义灵码 - AI 辅助开发提升效率

阿里巴巴云原生

GitHub封锁?推荐5个国产的Git仓库替代平台

程序员晚枫

GitHub 开源

香港首届Web3人工智能与RWA产业投融生态对接峰会蓄势待发

TechubNews

区块链 人工智能 AI

通义灵码助力JavaScript开发:快速获取API与智能编码技巧

阿里云云效

JavaScript

ASP.NET 使用通义灵码 - AI 辅助开发提升效率

阿里云云效

你以为的安全,真的安全吗?——拟态安全,一场关于认知的博弈

权说安全

网络安全 零信任

《Operating System Concepts》阅读笔记:p629-p635

codists

操作系统

区块链 ETF 类 APP 的主要功能

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

软件外包公司 区块链ETF ETF软件

通义灵码助力JavaScript开发:快速获取API与智能编码技巧

阿里巴巴云原生

js

AI与无人驾驶汽车:如何通过机器学习提升自动驾驶系统的安全性?

天津汇柏科技有限公司

人工智能 无人驾驶 AI人工智能

昆仑万维开源7B和32B最强数学代码推理模型,同规模下性能超越阿里QwQ-32B,对齐DeepSeek-R1

新消费日报

AI测试革命:当OpenAI砍掉安全测试周期,软件测试人如何破局?

测试人

人工智能

Easysearch S3 备份实战

极限实验室

S3 easysearch

性价比很高的智能工单管理系统推荐:轻帆云工单管理效率翻倍,运营成本直降50%!

云智慧AIOps社区

ITSM ITSM软件 工单管理 AI智能客服

百吋电视,被海信重新发明

脑极体

AI

区块链ETF类APP的技术难点

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

区块链技术 软件外包公司 区块链ETF

Laravel 使用通义灵码 - AI 辅助开发提升效率

阿里云云效

laravel

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