写点什么

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

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

关注

评论

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

生成式AI在金融行业的创新应用

百度开发者中心

金融 文心大模型

用低代码实现企业敏捷运营

力软低代码开发平台

专家老师带教!现场答疑!阿里云实时计算 Flink 版线下训练营北京站来啦!

Apache Flink

大数据 flink 实时计算

Apache Dubbo 云原生可观测性的探索与实践

阿里巴巴云原生

Apache 阿里云 云原生 dubbo

【学习课程送福利!】InfoQ最新Java开发课程喊你来领奖品!100%中奖!

SoFlu软件机器人

ASR 语音识别接口封装和分析

非晓为骁

AI 语音识别 ASR AIGC

智能标签系统如何助力智能推送服务

MobTech袤博科技

前端开发 消息推送 APP开发 前端开发工具

Office 2019 for Mac v16.77 beta中文激活版

mac

office办公软件 苹果mac Windows软件 office 2019

解决并发冲突:Java实现MySQL数据锁定策略

高端章鱼哥

Java MySQL 数据库

免费物联网平台好用吗?物联网平台卷蒙圈了,集体不要钱,白嫖的到底能不能用?

Geek_a6511e

物联网平台 物联网 物联网低代码平台 物联网平台选型

生成式AI:数字医疗前瞻的新引擎

百度开发者中心

医疗 百度文心一言

LeetCode题解:617. 合并二叉树,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

对线面试官 - TCP 经典面试题

派大星

Java 面试题

TDengine 3.1.0.0 版本成功发布,涉及五大板块功能更新!

TDengine

tdengine 时序数据库

Apache 官方限定社区周边,Community Over Code 亚洲大会参会礼包抢鲜看!

Apache IoTDB

“这对我个人能力的认可意义重大”!数据库“小白”到 Apache IoTDB committer 的心路历程!

Apache IoTDB

火热的低代码和无代码赛道

互联网工科生

软件开发 低代码 无代码 应用开发

一个好用的低代码平台应具有哪些素养?

树上有只程序猿

低代码 零代码 应用开发

生成式AI:引领我们进入零信任世界

百度开发者中心

文心一言

Python 运行 shell 命令的一些方法

互联网工科生

Python Shell Shell命令

如何唤醒潜在用户?选择智能化推送系统的重要性

MobTech袤博科技

前端 前端开发 APP开发 前端开发工具

低代码平台技术分享官丨工作流应用场景之动态驳回

inBuilder低代码平台

什么是业务敏捷,如何实现业务敏捷?

CODING DevOps

敏捷开发

盘古开天、AI落地,走进华为看AI如何重塑千行百业

彭飞

Waves 14 Complete for Mac(后期混音效果全套插件)v2023.08.09激活版

mac

苹果mac Windows软件 Waves 14 Complete 后期混音效果全套插件

【名师代练】带你玩转 RocketMQ,角逐「RocketMQ 首席评测官」

阿里巴巴云原生

阿里云 云原生 Apahce RocketMQ

云原生 AI 工程化实践之 FasterTransformer 加速 LLM 推理

阿里巴巴云原生

阿里云 AI 容器 云原生

什么是主数据管理?企业主数据管理方法论

优秀

主数据管理 主数据

如何落地复杂系统的架构治理?

码猿外

架构设计 软件架构治理

华为开发者大会2023:云空间筑牢鸿蒙生态“云基因”

HarmonyOS SDK

HarmonyOS

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