This is about using a JS feature without bringing in any additional dependencies like core.async. You don't have to use it and you can still use core.async. This was the most asked for feature in the recent ClojureScript survey.
Author here. This is an experiment to run the Clojure compiler in a GraalVM native-image with Crema enabled. Crema is a new way to dynamically load JVM bytecode in a native-image using an interpreter.
I'm also the author of babashka, a native fast-starting scripting tool for Clojure. For me it's interesting to contrast both approaches and learn more about the pros/cons of each.
Author here. Babashka is a native Clojure interpreter for scripting, it starts in ~5-20ms instead of the usual JVM startup. This release adds JLine3 for building TUIs, a completely revamped console REPL, and a bunch of library compatibility improvements. The charm.clj counter example in the post is a single-file script you can run right away to get an idea of the new TUI capabilities. Have fun scripting!
This is not about maintaining compatibility with a Java version. As you can read in the post, Java 21 will be the minimum required Java version even. It's about the Google Closure Library on which many ClojureScript programs depend.
> We are working on restoring that original stability. With this release, you’ll find that quite a few old ClojureScript libraries work again today as well as they did 14 years ago.
> ClojureScript is and never was only just for rich web applications. Even in the post React-world, a large portion of the web is (sensibly) still using jQuery. If you need robust DOM manipulation, internationalization, date/time handling, color value manipulation, mathematics, programmatic animation, browser history management, accessibility support, graphics, and much more, all without committing to a framework and without bloating your final JavaScript artifact - ClojureScript is a one stop shop.