Java教程

Java开发生态2024年度总结报告

本文主要是介绍Java开发生态2024年度总结报告,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1 关键要点

  • 尽管数据显示 Java 17 是最常用 JDK,但其用户占比并未超过半数。根据 New Relic 2024 Java 生态系统状态报告,Java 17、11 和 8 的用户比例分别为 35%、33% 和 29%。
  • New Relic 数据中所谓“快速采用”指 Java 21 的采用率仅为 1.4%。虽相较 Java 8 以来的所有LTS,增长速度更快,但这比例仍较低。
  • Java 已超越了其“缓慢”和“过时”的传统形象,当前正显现出明显创新动力。
  • 2024 年初关于 AI 的“狂热探索期”现象有所平息,但 AI 仍然是热点话题。现在态度更冷静,认为 AI 并非“万能锤”,而是需根据具体问题合理应用。
  • 一个名为 Commonhaus Foundation 的新非营利组织致力于开源库和框架的可持续发展,为自主管理的开源项目提供继任规划和财政支持。
  • WebAssembly 在 Java 领域终于开始获得关注,逐渐赶上 Go 和 Rust 等语言的生态系统。

本报告总结了 InfoQ Java 编辑团队对 Java 语言及其相关生态的观察,包括 Java 核心技术的进步、新版本的采纳情况,以及 Spring Framework、Jakarta EE等框架的演进。

还可收听由 Karakun 高级开发者 Ixchel Ruiz 和 Decodable 软件工程师 Gunnar Morling 主持的播客讨论,获取关于 2024 Java 趋势的更多见解。

本报告有两个主要目标:

  • 帮助技术领导者做出中长期技术投资决策。
  • 帮助个人开发者选择学习和技能发展的重点领域,合理分配宝贵的时间和资源。

这是第六份 Java 趋势报告。自 2006 年以来,我们已开始内部追踪 Java 和 JVM 的趋势,并对此进行了广泛新闻报道。

为帮助读者更好理解当前和未来技术趋势,采用了 Geoffrey Moore 在其同名书籍中提出的“跨越鸿沟”模型。试图识别出符合 Moore 所定义的“早期市场”的创新:“这一市场主要由技术爱好者和愿景者组成,他们希望抢占先机以抓住机会或应对紧迫问题。”

正如 2023、2022、2021、2020、和 2019 的 Java 趋势报告中所做的一样,为 2024 年提供了以下内部主题图:

  • 计划于 2024 年 11 月正式发布的 Jakarta EE 11 进入 创新者类别,因为其 16 项规范目前正在积极开发,并已在今年通过了审查。自 2024 年 6 月发布 Jakarta EE 11-M4 版本以来,开发者已经可以尝试 Jakarta Security 4.0、Jakarta Validation 3.1、以及 Jakarta Data 1.0 等新特性。
  • 因此,2022 年 9 月发布的 Jakarta EE 10、2020 年 12 月发布的 Jakarta EE 9 和 2019 年 9 月发布的 Jakarta EE 8 分别移动至 早期采用者早期多数晚期多数类别。
  • GraalPyGraalWasm 进入 创新者类别。这两个项目在 GraalVM for JDK 23 发布后,已被视为稳定且适合生产使用。
  • 随着更多框架(如 Spring、Jakarta EE 和 Helidon)以 Java 21 为基础,Java 21 转至 早期采用者类别,同时 Java 17 进入 早期多数类别。
  • Helidon 和 Vert.x 框架在最新版本中实现了虚拟线程服务器,虚拟线程框架(Helidon Nima 和 Vert.x) 被转移至 早期采用者类别。
  • 由于 Helidon 支持虚拟线程并发布了 Helidon 4.0,Helidon 移至 早期多数类别,而 Helidon 3.0 和 2.0 仍支持反应式服务器。
  • 由于 Scala 3 开发进展缓慢,2021 年 5 月发布的 Scala 3 移至 晚期多数类别。
  • Azul 和 BellSoft 实现了 CRaC 技术,快速 JVM 启动(CRaC) 转至 早期采用者类别,同时 快速 JVM 启动(GraalVM) 被转至 早期多数类别。

2 AI 与 Java

AI 在过去一年发生了重大变化,仍然是一个热门话题。越来越多的工具和集成正在帮助 Java 开发者更高效地完成代码开发。

虽然 2024 年初的 AI 热潮有所缓解,但相关讨论依然热烈。开发者已从“必须切换到 Python”转变为“仍然可以用 Java 进行 AI 开发”。像 LangChain4j 这样的库大大提升了 Java 在 AI 开发中的可用性。

3 Commonhaus基金会

Commonhaus基金会,一个专注于开源库和框架可持续发展的新非营利组织,于 2024 年 Devnexus 大会上首次向 Java 社区亮相,旨在为自主管理的开源项目提供继任规划和财政支持。

其使命是:

通过共同管理和社区协作,赋能多元化的开发者、贡献者和用户群体,共同创建、维护和发展开源库和框架,确保其长期增长和稳定。

创始人 Erin Schnabel、Ken Finnigan 和 Cesar Saavedra 分别担任主席、秘书和财务主管。

Java 开源项目正经历动态变化。一些知名项目转向商业源代码许可(BLS),但与此同时,Commonhaus Foundation 则展示了更开放的新趋势。

很高兴像 Hibernate 和 JBang 等项目得到了基金会的支持,这将确保它们长期发展,为开发者提供更多信心。

Commonhaus 提供了云时代的开源模式,帮助解决关键项目的资金问题。

4 Spring Framework 6 和 Spring Boot 3

Spring 6 和 Spring Boot 3+ 的采用率显著提高。在我们公司中,几乎所有应用都已经迁移到了 Spring Boot 3+。Spring Boot 和 Quarkus 似乎正在成为云原生应用开发的首选框架。

Quarkus 的崛起势不可挡,其市场份额逐渐从 Spring Boot 手中夺过,并巩固了微服务框架中的第二名地位。

5 Java 17 及更高版本

过去一年中,Java 的改进更加关注现代应用需求,包括提升云环境中的性能和加强安全性。围绕启动时间改进的技术(如 Liberty 的 InstantOn、CRIU 和 CRaC)尤其令人瞩目,使 Java 应用更加适合云端和无服务器计算。

虚拟线程的引入为 Java 并发编程带来了重要突破,尽管该技术仍在持续改进中,并且在某些场景下存在 性能挑战。在安全性方面,支持最新 FIPS 140-3 标准的加密模块的普及,使 Java 在受监管行业中的应用更加广泛。

随 Oracle JDK 17 的免费商业使用授权在今年 9 月结束,用户需迁移至 Oracle Java SE Universal 订阅以继续使用,这对用户成本产生了一定影响。许多用户因此转向基于 OpenJDK 的 Java 替代品,如 IBM Semeru Runtimes,其最近已支持最新的 FIPS 140-3 标准。据 Azul 报告,70%以上 的受访者正在考虑非 Oracle Java 替代品。观察这些授权变化如何影响开源 Java 的发展和创新将是非常有趣的。

Java 已经超越了“缓慢”和“过时”的刻板印象。Java 现在显现出明确的创新动力,同时保持了强大的向后兼容性和修复能力。之前对“破坏性变更”的恐惧已被一种平衡的创新方式取代,这种方式既推动进步,又不牺牲稳定性。此外,Java 正在增强与其他生态系统的兼容性,使其与不同语言和技术的交互更加轻松,从而提升了灵活性和吸引力。

Java 21 的快速采用令人瞩目,尽管多数公司仍在使用 Java 17。然而,与往年相比,现在有更多公司开始从旧版本的 JDK 迁移到新版本。

Java 17 正在成为新的基线,其流行度持续增长。过去,项目可能以 Java 8 为最低兼容版本;如今,这一角色正越来越多地被 Java 17 取代。虚拟线程、新模式和后续特性正在逐步推出(尽管目前仍是预览版)。

6 Jakarta EE

在 Jakarta EE 领域,有大量努力致力于 JDK 21 的采纳。因此,人们对 Jakarta EE 11 的期待非常高。

为即将发布的 Jakarta EE 11 所做的更新工作极其庞大,共涉及 16 项 Jakarta EE 规范。在此次升级中,移除了对已弃用 SecurityManager 类的引用,并引入了对 Java Records 的支持。

我期待以 Garden State Java 用户组 的代表身份参与 2024 年 7 月成立的 Jakarta EE Future Directions 兴趣小组。该小组的目标是开展研究并制定优先建议,这些建议将及时提交给 Jakarta EE 和 MicroProfile 工作组,以抓住市场方向带来的机会。

7 Java 社区的声音

AI 在 Java 社区中主导了许多讨论。我们应该如何在 Java 中利用 AI?AI 能为我们编写多少代码?另外,关于 Project Leyden 的讨论也非常热烈,这是一个具有潜在重大性能提升的有趣架构。

关于 AI 的讨论仍然非常活跃,既涉及技术层面,也探讨了它对开发者的影响。目前,更多的讨论集中在如何使用这些新工具,而不是像年初那样担忧 AI 会取代开发者的工作。

Java 社区和技术行业一样,对 AI 的热情高涨。Java 正在不断适应并在 AI 领域发现新机遇。新的工具正在涌现,使得 AI 在 Java 应用中的集成更加方便。凭借多年的技术积累,Java 有能力迎接未来的挑战,并在多种场景中保持价值。

关于虚拟线程的讨论非常活跃,许多公司开始采用 JDK 21 并分享了各种用例。尽管反馈大多是正面的,但也存在一些问题,例如 Netflix 曾遇到过类似死锁的情况。

关于 OpenTelemetry 的讨论越来越多,它不断壮大,并巩固了自己作为 Java 领域领先可观测性技术的地位。

Java 社区中有许多令人兴奋的趋势,但我特别喜欢 Gunnar Morling 发起的 十亿行挑战。这项挑战要求用 Java 编写程序,从全球气象站获取温度数据并计算每站点的最低、最高和平均温度。在 164 个参赛作品 中,由 Thomas Wuerthinger 团队完成的时间仅为 1.5 秒多一点,获得最快成绩。

8 新的令人兴奋的发展

LangChain4j 是一个令人激动的新工具,它意味着开发者不需要学习 Python 就能利用 AI,并大幅减少与不同 AI 提供商的专有 API 集成所需的工作量。

平台工程的崛起为 Java 开发者引入了新的工具,如 Backstage 和 Red Hat Developer Hub,这些工具帮助简化应用交付并减轻开发者的认知负荷。某些项目进一步推出了针对特定运行时和框架的 SaaS 服务,期望通过减轻开发团队的压力来应对不断扩展的开发生命周期任务。

AI 的迅速崛起超出了预期。尽管年初时似乎没有什么比 AI 更重要的事情,但到下半年,这种热潮有所降温。

六个月的 Java 发布周期已成功稳固,这打破了对变化的恐惧,并激发了整个生态系统的创新浪潮。库和框架维护者借此模式更加积极地采用新特性和改进,同时在需要时保持稳定性。

JDK 21 和虚拟线程的采纳正在推动 Jakarta EE 社区加快拥抱 JDK 21 的步伐。

JSpecify 1.0.0 的发布及 Java 语言层级即将引入空指针标记是开发者的长期愿望。OpenTelemetry Profiling 达到实验阶段也令人关注。

JEP 465(字符串模板)的撤回令人意外,但其撤回背后的原因表明了团队对开发者需求的谨慎考量。

9 Java 社区

Java 社区正在通过更多合作不断壮大,例如 OpenTelemetry 标准的扩展及 MicroProfile 和 Jakarta EE 的共同项目。这种合作提升了开发效率,并推动了社区的发展。

10 结论

本报告应被视为 Java 生态系统方向讨论的起点,期待您的参与和反馈,共同塑造 Java 的未来。

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
  • LLM Agent应用开发
  • 区块链应用开发
  • 大数据开发挖掘经验
  • 推荐系统项目

目前主攻市级软件项目设计、构建服务全社会的应用系统。

参考:

  • 编程严选网
这篇关于Java开发生态2024年度总结报告的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!