rockyj parent
I would have rather seen "Closure" being dumped, ClojureScript is supposed to run on the web (or Node.js) so why is there a need for Java 21 and an ancient library in 2025. In fact, Closure / Java / Maven keeps me away from ClojureScript, if there was no dependency on JVM stuff I would move to it (at-least for hobby projects / quick scripts).
Indeed, I was under the impression that Clojurescript was self-hosted (no Java dep) some time ago. Was this reversed?
Also, it's easy to say in retrospect leaning on the benevolence of Google would a bad idea. But the Clojure community are smart people, and I trust Closure was the least bad solution available at the time.
It's optionally self-hosted, without support for Closure's full suite of optimizations (https://clojurescript.org/guides/self-hosting).
There are babashka and GraalVM as alternative backends for Clojure, who aim to be much lighter than JVM.
But they don't support the full Clojure language, they're more like alternative dialects.
? Babashka is just Clojure, language wise. It lacks the ability to import arbitrary Java libs due to Graal, similarly no runtime type creation (deftype), and does not support the core async library’s go macro (maps it to thread).
I have not heard it called a dialect though. It’s not 100% vanilla jvm clojure but the omitted capabilities are just precisely those things you’d expect from using Graal. https://github.com/babashka/babashka?tab=readme-ov-file#diff...
Have you tried Cherry or Squintjs?
I did. But for Cherry the first introductory line says - "this is experimental" and has been the same state for 2 years (IIRC). Squint is also "under development" and is more "mutable" by nature. Also, both of them are maintained (largely) by the same person (who is really good btw) but I am also confused why there are 2 experimental projects of the same nature by the same devs. Anyways, all this does not fill me with confidence where I can say that "hey lets try to build something serious with this tech stack".
I agree, these are highly experimental projects, more like POC's and not something to actually use for important work. I don't know why people are so often recommending all these myriad different Clojure/Script runtimes/interpreters, many of which are not fully baked.