JBang 0.107.0 发布,带来 Java 21 预览、OpenAI 集成等新功能

最新JBang发布预览Java 21,增强与OpenAI插件的集成

JBang的最新版本提供了Java 21的预览功能,并通过快速启动端口增强了与OpenAI插件的集成。此外,JBang还引入了通过CLI与ChatGPT的集成,允许开发者使用ChatGPT创建JBang脚本。

JBang简介

JBang是一个基于Java的轻量级脚本工具,允许开发者直接从命令行编写和运行Java代码,无需完整的Java项目或编译步骤。它的开发目的是为了更交互式和方便地执行Java代码,类似于Python等语言。

Java 21预览功能

Java开发者现在可以使用JBang执行Java 21的预览功能,Java 21计划于2023年9月19日发布。开发者还可以通过CLI请求使用OpenAI的ChatGPT生成代码,甚至为ChatGPT创建Java插件。

使用JBang运行Java 21预览功能的命令如下:

$ jbang --java 21 --enable-preview -c 'print(STR."First arg is \{args[0]}!")' JBang

该命令将在系统中没有OpenJDK 21的情况下下载其早期访问版本,并允许开发者使用字符串模板等预览功能。

增强的开发者体验

JBang的增强功能带来了更好的开发体验,例如开发者无需了解API的所有细节。以下命令创建了一个Java程序,该程序处理图像、添加文本并将其写入文件系统:

$ jbang --preview --verbose init ImageProcessor.java "Write a Java program that processes an input image https://shaaf.dev/images/testImage.jpg and add text Hello world on it using OpenCV to produce an output image called output.png"

其他任务简化

其他繁琐任务,如通过Java客户端调用REST API并显示结果,现在可以通过单行命令完成:

$ jbang init jokes.java "print a random chuck norris joke fetched from the API service providing free jokes API."

$ jbang jokes.java

或获取信息并进一步处理:

$ jbang --verbose init gh.java "connect to GitHub and fetch all repositories under jbang and collect how many stars they have"

与OpenAI插件的集成

在0.107.0版本中,Red Hat的杰出工程师Max Andersen引入了OpenAI插件的快速启动端口,允许用户为ChatGPT编写插件并使用JBang在本地测试。

InfoQ采访Max Andersen

InfoQ: JBang与OpenAI的ChatGPT集成为Java社区带来了什么?

Max Andersen: JBang现在有创建Java项目的默认模板,但仍需了解其名称和功能,并且它们有限。通过JBang的OpenAI支持,开发者可以使用自然语言描述想法和需求,并获得一个良好的起点。这比进行网络搜索以收集所有所需组件要快得多。JBang的集成是减少Java项目繁琐步骤的自然延伸。

InfoQ: Java社区是否需要更多与人工智能库和工具的集成?

Andersen: Python在人工智能的数据建模和处理部分占主导地位,但Java可以在更高效地使用AI生成的模型方面表现出色。未来,使用原生代码甚至纯Java加载模型将是有帮助的。Java和Python生态系统之间也有很多交叉可以互惠互利。

InfoQ: 你在为AI开发哪些特定功能或集成?

Andersen: 对于JBang本身,类似于jbang init命令的功能,我还没有探索更多,除了将其升级到GPT-4。我在Quarkus CLI命令中使用OpenAI来解释项目中的文件,效果非常好。

InfoQ: JBang和人工智能的未来是什么?

Andersen: 我使用JBang和Quarkus创建了一个OpenAI插件,代码量比类似的Python代码减少了30-40%。我想通过JBang的方法展示Java并不像许多人认为的那样冗长和复杂。Java自2010年代初以来已经成熟了很多。

Java与人工智能的集成

Java和人工智能的集成正在变得更好,Java核心正在向支持这些想法的方向发展。最近引入的Foreign Function & Memory API(第三预览版)和Vector API(第六孵化器)是与其他库集成并推动这一领域创新的重要一步。

阅读 18
0 条评论