2026: The Year of Java in the Terminal?
Alternatives and existing JVM-based options
- Many commenters say they’d prefer Babashka (Clojure on Graal) for terminal work: fast startup, small-ish single binary, good stdlib-style namespaces, and access to JVM libraries without Java’s syntax.
- Others default to Go, Rust, Python, or even JavaScript (via npm) for CLIs, arguing these ecosystems already “won” this space.
- Some note Groovy and jshell as earlier or existing attempts at JVM scripting that the article doesn’t really address.
Startup time, AOT compilation, and performance
- Several argue modern Java startup is “good enough” for most terminal tools; slow starts are blamed on heavy frameworks (Spring, app servers), not the JVM itself.
- GraalVM native-image is praised for millisecond startup and enabling Java CLIs used comfortably in tab completion or quick invocations.
- However, others highlight long native-image build times, high RAM usage, configuration pain (reflection, class initialization), and still-slower startups than tiny C/awk/shell tools when used in tight loops.
Packaging, distribution, and tooling
- Strong consensus that packaging is Java’s biggest barrier for CLIs:
- Go/Rust/.NET: a single command produces a single binary.
- Java: users juggle JDK choice, Maven/Gradle, fat JARs, jlink, jpackage, or Graal; hello-world bundles of 30–50MB are common.
- Some say JBang and jreleaser dramatically improve this, akin to uv (Python) or scala-cli, but others insist these aren’t yet as seamless or standard as Go’s tooling.
- Enterprise experience: distributing Java CLIs is painful because users may lack a runtime, IT may block Java installs, and licensing concerns remain.
Suitability and culture
- Java developers themselves often pick Go/Python/TS for new CLIs, citing faster setup, fewer JVM flags, easier memory behavior, and lighter mental overhead.
- Critics see Java as overengineered, verbose, and culturally prone to heavy “enterprise” patterns—ill-suited to small tools.
- Supporters counter that modern Java (single-file scripts, improved syntax, Loom, better tooling) is much improved and underappreciated for terminal use.
Meta and credibility
- Several readers find the article unconvincing or undesirably aspirational: “possible” doesn’t mean “desirable.”
- Some speculate parts of the post were polished or co-written by an LLM, pointing to certain rhetorical tics, though this is partially clarified in the thread.