Here’s what we need to do to make this happen:
Build the TUI ecosystem. We need to rally around terminal UI libraries. Contribute to them. Make them easier to use. Create examples that make developers go "wow, I want that."
Share more examples. When you solve something with Java in the terminal, blog it. Tweet it. Show people it’s not just possible but actually pleasant. When you build a TUI, record a demo. Show it off.
Distribute with JBang and JReleaser. Make your CLI tools and TUIs JBang-runnable for quick testing, then use JReleaser to get them into Homebrew, SDKMAN, and native package managers. Make installation so easy that nobody has an excuse not to try it.
Embrace native images. For tools that need fast startup, invest in GraalVM native image. Yes, there’s a learning curve with reflection configuration, but the payoff is real. And JReleaser makes building for multiple platforms straightforward.
Normalize the single-file Java program. Not everything needs a Maven project structure. Sometimes a script is just a script, and that’s fine.
Leverage Frameworks. Frameworks like my own favourite Quarkus, but also Micronaut, Spring Boot, and others already have great CLI support and have made native image compilation significantly easier. They allow building everything from small tools to full-blown applications — doing TUIs here should be a breeze.
Push the boundaries. Build something ambitious. A file manager in Java. A system monitor with a gorgeous TUI. An AI coding assistant with a rich terminal interface. A log analysis tool that makes jq look boring. Show what’s possible.