Why Aussom?
I started using Java almost 20 years ago and have loved every bit of it. I'm proud of all the recent momentum in the Java space and I hope it continues. Java does so much so well. But every great tool has an edge where it stops being the right one, and reaching for another language there isn't a betrayal of Java. It's how the best ecosystems work.
Look at C. C is clearly important. Even after a lifetime of use it's still the foundation for new projects today, and new competitors such as Rust haven't been able to meaningfully displace it. C is fast and powerful on its own, but it isn't great for simple tasks. It's poor for throwaway code and quick scripts, it isn't very portable, and it hands you plenty of footguns. It's also a poor choice when you want to offer a scripting interface.
Enter Python. Python is everywhere today because the barrier to entry is so low and it's genuinely useful. But Python leans on C. It's written in C, and much of its power comes from existing C libraries, whether they're UI frameworks, AI inference engines, or anything in between. C is efficient but poor at simple dynamic work; Python is dynamic and simple but poor at raw power and efficiency. Neither replaced the other. They endure together because they complement each other's weaknesses.
That is the case I make for Aussom. Aussom is to Java as Python is to C. It doesn't compete with Java, it complements it.
This is where Aussom parts ways with most of its neighbors. Kotlin, Scala, Groovy, Clojure, and friends compile to JVM bytecode. However different their syntax, they ultimately produce bytecode that's handed to the JVM to run, so they live inside the JVM's rules.
Aussom does not compile to bytecode. The Aussom runtime is compiled and starts up on the JVM, but your Aussom program is never compiled. The runtime parses it on the fly and interprets it directly. There's no compile step, and the JVM's rules don't apply to your code. Because a program is just text until the moment it runs, Aussom can load and unload code at runtime, in real time.
For a Java developer, that means you can hand Aussom a string, run it, throw it away, and hand it another one, all inside a running JVM process.
For quick work, an Aussom script is just a .auss file of top-level statements. No class, no main, no ceremony. Read some input, print some output, and you're done:
include os; name = os.readLine("Your name: "); os.printf("Hello, {}!\n", name); // Uppercase whatever is piped in: echo hi | ./shout.auss text = os.readAll(); os.out(text.toUpper()); Enter fullscreen mode Exit fullscreen mode The language will still feel familiar. Lists and maps have first-class literals, try/catch works the way you'd expect, and the standard library covers the everyday scripting jobs:
include os; include http; res = new Http().get("https://api.example.com/status"); if (!res.info.isSuccessful) { os.outErr("request failed: " + res.info.responseCode); os.exit(1); } data = json.parse(res.body); os.printf("state: {}\n", data.get("state")); Enter fullscreen mode Exit fullscreen mode When a script grows up into something bigger, the same language scales into classes, methods, and modules, so nothing you learn in script mode is thrown away.
Here's the part that matters most for a Java shop. You embed the interpreter directly:
Engine eng = new Engine(new SecurityManagerImpl()); eng.parseFile("script.aus"); int result = eng.run(); Enter fullscreen mode Exit fullscreen mode That's the whole integration. The script is data, so it can come from a file, a database row, a text field in your admin UI, or a request body. You decide where the code lives and when it runs.
Letting arbitrary code run inside your process should make you nervous, and that's precisely why Aussom is built around a security manager. The Engine takes a SecurityManagerInt, and sensitive actions are gated by named properties such as reflect.eval.string (run code built at runtime), current.path.view (see the working directory), or os.info.view (read details about the host). The built-in SecurityManagerImpl denies these by default, so you opt in to exactly what you're comfortable granting, and you can supply your own implementation for finer control. That makes Aussom a real option for a user-facing scripting interface, not just internal glue.
A fair question. JShell and scripting engines such as Nashorn or GraalVM's JavaScript can evaluate code at runtime too, and Groovy has long been the go-to for JVM scripting. Aussom's distinction is the combination: pure interpretation with no compile step, true load-and-unload of code at runtime, a small and familiar syntax, and a built-in, property-based security model designed for handing scripting to your users. It's aiming to be the simple, dynamic complement to Java, not another way to write Java.
Java isn't bad at these tasks; it's just built for something else. When you need something simple, dynamic, and safely embeddable, that's where Aussom shines.
The easiest way to get a feel for it is the online playground. No install, no setup, just write a script and run it right in your browser:
Try a few lines, then imagine that same interpreter embedded in your own Java app. I think you'll see the fit.
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
For further actions, you may consider blocking this person and/or reporting abuse
Stop Saying You Want Ownership Mindset #productivity #programming #architecture #software A Dash of dev.to: My Blog Stats Now Live in the Terminal #webdev #programming #productivity #bash Top 10 AI Tools Every Frontend Developer Should Know (2026 Guide) #webdev #ai #programming #productivity .long-bb-body { max-height: calc(100vh - 200px); overflow: hidden; } .long-bb-bottom { height: 180px; background: linear-gradient(to top, var(--card-bg), transparent); margin-top: -180px; position:relative; z-index: 5; } 💎 DEV Diamond Sponsors
Thank you to our Diamond Sponsors for supporting the DEV Community
DEV Community — A space to discuss and keep up software development and manage your software career
Built on Forem — the open source software that powers DEV and other inclusive communities.
We're a place where coders share, stay up-to-date and grow their careers.
Original Source
This content was distilled for a focused reading experience. All rights belong to DEV Community.
Read original publication