v0.1.11活跃开发中

运行在 JVM 上的
现代脚本语言

受 Kotlin 启发的简洁语法,无缝 Java 互操作,内置异步编程。管道操作符、DSL 构建器 — 让 JVM 开发更加愉悦。

hello.nova
// 类型推导 & 不可变声明
val name = "Nova"

// 函数定义
fun greet(who: String): String {
    return "Hello, $who!"
}

// 管道操作符
val result = greet(name)
    |> { it.toUpperCase() }

println(result)  // HELLO, NOVA!

为现代开发而设计

NovaLang 融合了现代语言设计的精华,在 JVM 生态中提供流畅的开发体验。

现代语法

受 Kotlin 启发的简洁语法,支持 val/var、fun、class、when 表达式、Lambda with Receiver。

Java 互操作

无缝调用任意 Java 类库,SAM 适配器自动转换,共享 JVM 生态。

异步编程

内置 async/await 原语,Channel 通信,结构化并发。

空安全

可空类型和安全操作符 ?.、?:、!! 从源头消灭空指针。

丰富标准库

内置 JSON、HTTP、集合操作、文件 IO 等常用模块,开箱即用。

工具支持

VS Code 扩展、语言服务器协议 (LSP)、REPL 交互模式一应俱全。

表达力强大,学习曲线平缓

如果你熟悉 Kotlin 或现代语言,你已经会 Nova 了。简洁的语法让你专注于业务逻辑而非样板代码。

模式匹配 + Guard

when 表达式 + 条件守卫,精准控制分支逻辑

管道操作符

|> 链式数据流处理,代码如文档般清晰

DSL 构建器

Lambda with Receiver 实现声明式配置 DSL

Java 无缝互调

直接 import Java 类,SAM 自动适配

pattern_matching.nova
fun classify(animal: Any): String {
    return when (animal) {
        is Cat if !animal.isHungry -> "relaxed cat"
        is Cat -> "hungry cat"
        is Dog if animal.isPlayful -> "play!"
        in 1..10 -> "small: $animal"
        else -> "unknown"
    }
}

接近原生的性能

编译为 JVM 字节码后,NovaLang 在多数场景下与 Java Native 持平,远超其他 JVM 脚本引擎。
JMH 基准测试 / OpenJDK 21 / 单位: us/op (越低越好)

算术循环20K 次整数运算
Nova
19.2 us
Java
3.6 us
V8
109 us
Groovy
58.1 us
Nashorn
47.3 us
函数调用50K 次函数调用
Nova
45.7 us
Java
9.2 us
V8
171 us
Groovy
144 us
Nashorn
971 us
分支密集20K 次 when 分支
Nova
29.4 us
Java
20.0 us
V8
203 us
Groovy
154 us
Nashorn
851 us
递归Fibonacci 递归
Nova
366 us
Java
366 us
V8
1008 us
Groovy
805 us
Nashorn
4845 us
字符串拼接3K 次拼接
Nova
15.9 us
Java
11.7 us
V8
79.3 us
Groovy
13189 us
Nashorn
87.3 us
列表求和3K 元素构建+求和
Nova
19.4 us
Java
8.7 us
V8
103 us
Groovy
36.5 us
Nashorn
77.8 us
2.8~8x
编译模式 vs V8 引擎
全场景领先 Javet(V8)
6/7
解释模式全面领先
vs Groovy/Nashorn/GraalJS/JEXL
5~8x
编译速度
快于 Nashorn 编译

准备好开始了吗?

只需几分钟即可上手。阅读文档或直接在浏览器中试用。