Nova
A general-purpose language built around algebraic effects, static contracts, and AI-first ergonomics.
What makes it different
- Effects in signatures. Network, I/O, time, randomness, mutation — every side effect declared in the type. No hidden control flow, no surprise
await. - Contracts as first-class.
requires/ensures/invariantchecked statically (SMT) when possible, at runtime in debug, zero-cost in release. - AI-first ergonomics. Designed for the era where LLMs write 50–80% of code: explicit signatures, locality, compiler errors as a learning signal.
- M:N runtime. Go-style fibers with work-stealing scheduler. Managed by default (Boehm GC today, concurrent GC planned),
realtime nogcfor hot paths.
A taste
fn fetch_user(id u64) Result[User, NotFound]
requires id > 0
ensures result is Ok(u) implies u.id == id
uses Db, Log
{
log("fetching user", id)
match db.find_user(id) {
Some(u) -> Ok(u)
None -> Err(NotFound)
}
}
Effects (Db, Log) and a postcondition right in the signature — the caller knows exactly what this function does and what to expect back.
Where to go
- Source on GitHub — compiler, stdlib, tests, spec
- Language specification — design decisions (D-blocks), grammar, open questions
- Roadmap — current and historical plans
- Contact: hello@nv-lang.org · Security: security@nv-lang.org