Blog chevron_right Java

Java 专家探讨 Java 的现状和未来

State of Java Survey Confirms Majority of Enterprise Apps Are Built on Java

Azul 的《2025 年Java 现状调查与报告》内容涵盖组织使用的发行版和版本、Java 在云中的使用以及人工智能的发展。三位 Java 专家共同针对调查结果展开讨论,并对 Java 的未来做出了一些预测。

Watch the on-demand webinar to learn more about the future of Java.

Azul 的《2025 年 Java 现状调查与报告》是一项针对 2,000 多名 Java 专业人士开展的研究,收集了有关组织如何使用 Java 的信息。研究参与者回答了有关 Java 版本、Java 在云中的使用以及人工智能发展的问题。Expedia Group 的杰出负责人 Freddy Guime、evolutionnext 网站的所有者兼 Java Champion 称号获得者 Daniel Hinojosa 和 Azul 开发者关系副总裁 Pratik Patel 受邀于 2025 年 2 月共同讨论和分析了本次研究的结果。

为简洁起见,以下采访记录已经过编辑。您可前往 azul.com 观看完整的采访视频

新旧 Java 版本使用广泛 

近一半的调查参与者使用最新的长期支持 (LTS) Java 版本 Java 21 或之前的 LTS 版本 Java 17(或两者兼用)。同时,19% 的人使用分别于 2006 年和 2011 年发布的 Java 6 或 7(或两者兼用)。 

Pratik让我印象深刻的是 Java 的稳定性和向后兼容性,以及 Java 生态系统或 Java 虚拟机的所有优点。 

Daniel我们已经使用 Java 8 很久了,但我认为 Spring 已在一定程度上将人们引向未来。我认为这也是件好事。我现在看到更多人在使用 JDK 17。 

Pratik下面我来为观众快速讲解一下。Daniel 指的是 Spring Boot 的 Spring 框架。Spring Boot 的 3.2 版本必须使用 Java 17 或更高版本才能运行。因此,如果您目前在使用 Spring 2.x,除非将所使用的Java 升级到 Java 17 或更高版本,否则将无法使用 Spring 3.2。对吗?你指的就是这个吧。 

Freddy企业环境中通常是新旧版本共存,但我认为较新的 JDK 版本明显更受欢迎。现在所看到的小部分旧版系统基本上都是很难改变的系统,因为它们的影响根深蒂固,就像opera。这在金融领域更为常见,要迁移这种代码库很难……这些系统通常是隔离运行的,因为……你不想让它们有任何数据暴露风险。

观看关于正在使用的 Java 版本的视频片段。

Java 未获使用的云计算能力尚可接受

在调查中,71% 的 Java 开发公司有超过 20% 未得到使用的云计算能力。三位专家一致认为这是可以接受的水平。 

Daniel:20% 其实没问题。也许我们可以做到 10%。 

Freddy当公司发展到规模足够大的时候,我认为公司应该考虑找一个专门从事这种优化工作的人员。据很多文献指出,例如 Netflix 已经在使用预测合作伙伴来预先进行自动扩展。 

Pratik过去没有这样的流程。在 2020 年代初的高速发展时期,我们都不得不困在家里,所有的软件技术都在迎来爆发式发展,因为一切都要为在线化而扩展,成本也随之增加。购买所需的所有东西,或者尽可能租用更多服务器。购买能买到的最大数据库,等等。所有其他业务软件和计算本质上都是一种周期性业务。我们在两三年前达到了顶峰。现在回过头来想,也许我们在云平台上投入的成本太多了。你们公司内部有所谓的 FinOps 组织吗? 

Freddy“一旦开始对云平台进行大量投资,最好设立一个部门来帮助管理成本,这很有必要。

观看有关 Java 和未获使用的云计算能力的视频片段。

人工智能

在调查中,50% 的 Java 用户使用 Java 开发 AI 功能,这个比例超过任何其他编程语言。

Daniel我通常会先从说明目标开始。这是我需要做的全部事情。这个方法在这方面的效果非常好。 

Freddy:如果完全按自己心意而大量使用 ChatGPT 会涉及到法律问题。一旦你在那里粘贴代码,除非你有某种许可的保护,否则他们就会认为“我们可以随便拿你的东西来重新训练我们的模型”。 

Pratik等一下。这是相反的方向吧?因为很多人都担心,如果我使用某个 AI 代码助手,让它为我生成代码,然后我将这些代码放到我的代码库里,我会想 AI 是否是从 GPL 或其他来源获取这些代码片段?但你说的是相反的方向,如果将公司的一些专有代码放到 ChatGPT 中,它将来会用这些代码来训练自己的模型。 

Freddy我认为这将改变软件工程师的定义。如果你是一名工程师……你就需要提升自己的知识水平,不仅要让自己成为编码者,更多是要成为系统设计师和企业架构师。因为这些将是 AI 无法做到的事,因为 AI 可能无法发现这些工作所需的权衡,这其中需要你有自己的观点,你要去输入自己的想法。 

Daniel我从去年就开始尝试让初级程序员参与进来,今年依然如此。不要用 AI 取代他们。你需要他们,因为他们对你的业务非常了解。计算机科学知识能让一个人获得更长远的发展。 

但令人遗憾的是,很多刚走出校门的年轻开发者的这些知识储备还远远不够。你必须将计算机科学知识与另一个领域结合起来才能发挥作用,无论是运输还是旅游等。我认为这将成为现实,很多东西都可以在工作中进行学习。这就是初级开发者的作用。他们会学习你的领域,并精通于此。 

还有一点就是数据。科学家们喜欢 Python,比如机器学习科学家。他们喜欢 Jupyter Lab 或 Jupyter Notebook,并且对那套工具无比精通。我们能做的顶多是构建嵌入式模型。换句话说,就是 Java 应用程序所在的 Pod,或者对机器学习模型提供所谓的“服务”,让模型作为主机、RESTful 端点,对其输入内容。我们将等待向量、API、Java 和外部函数内存模型 FFM 等内容,并学习如何将其结合起来,更深入了解一些。因此,我们希望通过良好的迁移,使用这些内容在 Java 中开展机器学习。 

Pratik这将构建出函数、内存 API,使 Java 开发者能够编写库,并能够做很多 Python 库可以做的事……但具有讽刺意味的是,对于 Torch 和 NumPy 等 Python 库,以及所有其他用于构建 AI 模型的东西,Python 代码实际上只是对低级 C 库的一些“包装”。开发者们在这方面已经有领先优势,而且多年来一直在开发这些库。

观看关于 Java 和 AI 开发的视频片段。

您可前往 azul.com 观看采访视频。立即观看未剪辑的完整采访。 

2025 年《Java 现状调查与报告》现在也可在 azul.com 上获取。立即阅读完整报告