Show HN: Jv 0.1 – Zero-runtime Java sugar language for Java 25

github.com

2 points by asopitech 7 hours ago

I’ve just shipped the first public release of jv — a Kotlin-inspired sugar layer that transpiles directly to readable Java 25 (with Java 21 fallback) and depends on no runtime shim.

The toolchain is implemented entirely in Rust, focusing on performance and developer experience. Its UX is inspired by Python’s modern package manager uv, aiming for fast, intuitive, and clean CLI workflows.

The CLI ships as a cross-platform bundle with the stdlib baked in, auto-detects local JDK toolchains, and lets you override entrypoints for custom workflows.

On the language side, I’ve added generic function signatures, record component access, optional parentheses on zero-arg calls, richer string interpolation, and a smarter sequence pipeline that preserves element types.

Under the hood, a new Rowan-based front-end drives improved lowering so that when/switch expressions, range patterns, and inferred signatures compile cleanly to Java.

Feedback and questions welcome. More details → https://project-jvlang.github.io/en/ and https://github.com/project-jvlang/jv-lang

asopitech 7 hours ago

This project started from a simple motivation: I wanted to bring back a version of Java that feels like a tool — simple, predictable, but powerful enough to stay with you for years.

I’ve spent a long time working with Python, and while its flexibility and expressiveness are great, I eventually grew tired of the complexity and dependency sprawl that comes with it. On the JVM side, I’ve tried Groovy, Scala, Clojure, Kotlin — all promising at first, but each adds its own layer of tooling and conceptual overhead. At some point, I just wanted a clean, modern way to write Java itself.

So jv doesn’t try to replace the JVM or invent a new runtime. It compiles directly to plain `.java` code, keeping full compatibility with existing Java tools and libraries. The toolchain is built in Rust for speed and reliability, and its CLI experience is inspired by Python’s uv — fast, intuitive, and frustration-free.

Ultimately, jv is my attempt to balance the comfort of Python with the stability of Java, and to create a language that feels familiar yet light enough to truly get out of your way. Feedback and discussion are very welcome.