If Clojure would start fast enough, projects like Babashka would not be needed.
If Clojure would start fast enough, projects like Babashka would not be needed.
Start a REPL, connect your editor, develop. You can start your apps in the REPL (from RCFs in your code -- Rich Comment Forms) and never type into the REPL. You can grow the application while it is running, you can run tests via the REPL from your editor.
That interactive approach -- working on your application "live" essentially -- is what sets Clojure's REPL apart from other languages' "interactive consoles" (sometimes misleading also called REPLs :)
And, yes, Babashbka is great for running CLI scripts. But that's a completely different use case to a long-running development process.
What I am saying is that Clojure's long startup time is still annoying if you want to restart, for example if you trashed your repl session or want to start with a clean slate.
If Clojure would start fast enough it could also be used for CLI scripts and we would not need Babashka at all.
All in all, I think Clojure is a great language, but the slow startup time is still a disadvantage.
The truth is, the development experience actually gives you much faster feedback with almost no waiting time as compared to the majority of other languages.
That means the impact of the slow startup isn't really felt.
I think where slow startup is a bigger issue is actually for certain production use cases, like CLIs, or serverless settings. There it would be awesome if Clojure JVM also started in sub-millisecond, and we didn't have to change to Clojure interpreted like babashka, or Clojure GraalVM native compilation.
I've worked on a large project with many namespaces and dependencies and it took about 20 seconds.
Maybe your service was also initializing a lot of state/components on startup?