导读:Oracle 的 Java 25 试图消除长期以来阻碍编程新手的令人生畏的语法障碍,同时增加了以 AI 为中心的功能,为学生的现代级开发工程师职业做好准备。
Java一直以对新手程序员来说有些学习困难而闻名,但随着本周Java 25 的发布, 人们看到Oracle对此有所回应。
比如Python可以让学生在一行中编写他们的第一个程序,而 Java 传统上迫使他们通过一系列令人困惑的语法才能打印“ Hello World ”。
Oracle 的 Java 25 尝试解决了这个问题。
核心内容是JDK 增强提案 (JEP) 512 紧凑源文件和实例主方法,它消除了public static void main(String[] args)几十年来困扰初学者的难题。
学生们现在可以从以下方面入手:
void main() {
println("Hello World");
}
这不仅仅是删除字符那么简单。甲骨文这样表示说:“学生们可以以简洁的方式编写他们的第一个程序,而无需了解为大型程序设计的语言特性。”古斯塔夫·埃菲尔大学的雷米·福拉克斯 (Rémi Forax)称 JEP 是一个颠覆性的变革。
他在一份声明中表示,JEP 512“大大简化了 Java 初学者的学习过程,使他们能够编写无需传统样板代码的程序”。
Oracle 在预览版的基础上做出了一项重要调整。最初,他们会自动导入 IO 方法,以便简化操作,但后来又取消了这项功能。
Oracle Java 开发者关系副总裁Chad Arimura这样解释说:“我们觉得,为了去掉那几个字符,把这个功能隐式隐藏起来,这样当你想扩展程序时,就不得不后退一步。”
这一目标是创建 Oracle 所称的“平滑入门”——帮助初学者入门但不会随着程序变得越来越复杂而成为障碍的功能。
“JEP 512 背后的想法不仅仅是减少样板代码,尽管这是它的一个很好的副作用,但它使 Java 语言对于学习 Java 的人来说更加简洁,在人们需要学习第一行代码或屏幕上的第一个 Hello World 的概念方面没有太多的开销,”Arimura 说。
该公司表示,除了学生之外,可能不是 Java 专家的系统和 IT 管理员也可以减少编写脚本和命令行实用程序等小程序的正式性。
Futurum Group 分析师Brad Shimmin说: “我喜欢 Java 25 以更易于访问和表达的方式改进语言的方式,消除了语言中一些繁琐的方面。”
“例如,你不需要将所有内容都包装在源文件中的类中,也不必在构造函数的开头包含super()或this()调用函数,”他说。“这些可能看起来微不足道,但鉴于目前有如此多的开发者友好型系统和后端语言可供选择,Java 需要不断发展以提供新功能,而不会让开发人员陷入开销的泥潭。这是一项艰巨的任务,但仅从这两个例子就可以看出,语言维护者正致力于让 Java 易于采用且使用起来令人愉悦。”
支持学习生态系统
与此同时,甲骨文通过教育基础设施支持编程语言的变革。该公司与美国大学理事会合作更新了AP计算机科学A课程,确保高中生学习最新的Java语言,而不是过时的版本。Arimura表示,不少的学校仍在使用Java 7和8进行教学。
他表示,该公司还推出了Learn.java,这是一个专门面向编程初学者的网站,与专注于开发人员的Dev.java门户网站截然不同。Java Playground 现在包含代码片段共享功能,教师可以创建编程练习,学生无需安装任何程序即可直接在浏览器中运行。
Forax 指出:“学生现在可以从简单的程序开始,随着他们的成长逐渐扩展他们对更高级概念的理解,从而创建从基本编程概念到完全面向对象编程的平滑学习路径。”
此外,美国圣何塞州立大学名誉教授凯·霍斯特曼表示,他看到了更广泛的优势。
他在一份声明中表示说:“Java 25 中我最喜欢的部分是紧凑的源文件、实例主方法和模块导入声明,因为这些特性为初级程序员创建了一个轻松的 Java 入门通道。它们也使经验丰富的程序员受益,将 Java 的应用范围扩展到日常的小任务。”
随着 Java 即将迎来第四个十年,Oracle 似乎认识到语言的采用不仅取决于企业能力,还取决于最初的编程经验。
尽早培养人工智能技能
Java 25 的初学者重点也延伸到了 AI 开发。虽然 Python 在机器学习 (ML) 研究中占据主导地位,但 Java 对于企业级生产 AI 系统仍然至关重要。
Arimura 概述了 Java 与 AI 工作相交叉的三种模式:
首先,AI 工具越来越多地生成 Java 代码。像Oracle 的 Code Assist这样的服务以及带有 AI 功能的热门编辑器可以帮助开发人员更快地编写 Java 代码。“现在有很多 Java 代码是由 AI 构建和生成的,”他说,“我们需要确保这些代码始终保持一流的质量。”
其次,现有应用程序需要添加 AI 功能。“也许你的 CEO 会说,我们现在需要让所有应用程序都集成 AI,”Arimura 开玩笑说。“在 Oracle,我们对此并不陌生。” LangChain4J和Spring AI等框架(最近都发布了 1.0 版本)使这种集成变得更加容易。
第三,专业团队利用 Java 的性能特点和生态系统,构建定制的 ML 系统。
简化的语法尤其有助于 AI 脚本编写和原型设计。JEP 511 模块导入声明使得一次性导入整个模块变得更加容易,Arimura 指出这“对于将 AI 推理和来自流行库的工作流整合在一起的简单应用程序非常有益”。
此外Arimura 表示道, Java 21中引入的虚拟线程在 AI 工作负载中得到广泛采用,因为 ML 推理通常涉及许多不需要完整 OS 线程的并发操作。
从课堂到职业
从适合初学者的 Java 到 AI 就绪型 Java 的路径正变得越来越清晰。
从简单语法入手的学员可以逐步学习更高级的功能,例如模式匹配——JEP 507 模式中的原始类型、instanceof 和 switch将其扩展为 Java 25 中的原始类型,而JEP 505 结构化并发和JEP 508 矢量 API则用于优化计算以及 AI 推理和计算场景。
此外,Oracle 的 VS Code 扩展插件弥补了这一差距,目前这个应用下载量接近 400 万次,评分高达 5.0。
Arimura 指出,增长“是因为有很多新开发人员加入,有很多人在学习 Java,而且人工智能领域也有很多工作正在进行。许多人工智能开发环境都以VS Code为中心,将 Java 开发人员引入该生态系统。”
该版本还包含对 AI 工作负载至关重要的性能改进。莱登项目 (Project Leyden ) 的提前编译功能(JEP 514 提前命令行人体工程学和JEP 515 提前方法分析)无需更改代码即可加快应用程序启动速度。JEP 519 紧凑对象头 (Compact Object Headers)通过缩小对象头来减少内存使用量。这些优化有助于 Java 应用程序在资源效率直接影响成本的云环境中高效运行。
JDK 25 与 AI 相关的 JEP 包括:
模式中的原始类型、instanceof 和 switch JEP 507,使得将业务逻辑与来自 AI 推理的原始类型集成变得更加容易。
模块导入声明JEP 511,以便更轻松地将业务逻辑与 AI 推理、库和/或服务调用集成。
Vector API JEP 508,常用于AI推理和计算场景。
结构化并发 JEP 453,用于通常涉及并行运行多个任务的 AI 开发。
范围值JEP 506 支持在线程内和线程间共享不可变数据,与线程局部变量相比,其空间和时间成本更低。
Java 生态系统正在加速发展
Arimura 指出,Java 加 AI 生态系统已经取得了许多进展,包括 LangChain4j 发布 1.0 GA 版本,引入虚拟线程、模型扩展、代理模式、增强推理支持、多模态等。
此外,Spring AI 发布了 1.0 GA 版本,具有模型扩展、模型上下文协议 (MCP)集成、工具调用等功能。
此外,Spring Creator Rod Johnson的Embabel 代理框架于 5 月推出,具有以目标为导向的行动规划、无缝 LLM 集成等功能。
“我们可以看到,人工智能的应用正在日益超越单纯的基于提示的交互。自主代理能够随着情况的变化而学习和适应,这种想法既令人着迷(又有点令人担忧),” Java 平台提供商 Azul Systems 的副首席技术官Simon Ritter告诉人们。“我们需要观察这类工具如何发展成为实际应用,以及它们是否能按预期发挥作用。”
同时,甲骨文的 Java 平台高级副总裁兼OpenJDK管理委员会主席Georges Saab表示说:“Java 25 凸显了Oracle对支持 AI 解决方案的特性和功能的持续投资,并简化了语言,使新开发人员和 IT 团队更容易学习 Java。”
一位著名的行业分析师表示,他认为 Oracle 将继续推出新功能,以使 Java 跟上现代发展的步伐。
IDC 软件开发研究副总裁Arnal Dayaratna表示:“Java 已迈入第四个十年,它将继续提供新功能,以确保应用程序(包括由 AI 功能驱动和集成的应用程序)在各个硬件平台上保持高效和可扩展性。Java拥有良好的条件,能够持续提供一系列现代功能,以满足下一代 AI 驱动的应用程序开发需求。”
将获得长期投资
Java 25 是一个长期支持 (LTS) 版本,免费更新至 2028 年 9 月,商业支持至少至 2033 年 9 月。
Georges Saab 表示,此次发布重申了Oracle公司致力于实现 Java 语言现代化并促进 IT 团队采用的承诺。
该公司表示,这为企业提供了灵活性,使其能够以最少的维护将应用程序维持更长时间的生产,并最终根据自身情况进行迁移。Oracle 表示,根据 Oracle 免费条款和条件 (NFTC),Oracle JDK 25 计划在 2028 年 9 月之前每季度接收一次安全和性能更新,而在此日期之后发布的 JDK 25 更新将根据 Java SE Oracle 技术网络 (OTN) 许可证提供,计划至少持续到 2033 年 9 月。
作者:洛逸
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。