Leiningen is like an Apple product: it's well-designed and usually 'just works'. But when something goes wrong you realize it's like a black box with only a mystical stack trace to help you.
Can you elaborate why? Is it also a dependency management tool?
i mostly make web-apps or data-mining apps, never really understood this criticism of long (1 second type of long, maybe 10 for EE server) startup times for jvm since i can't imagine many apps worth putting a ton of development care into that aren't worth a 1 second wait to run.
i'm not trying to be a smart-ass (i dont believe everything should be blindly forced onto jvm), really just asking why this is such a common concern when in my mind it is an edge-case
For any single long-running application that doesn't spawn more processes, of course it doesn't matter - but most performance issues only matter for some set of applications.
I think it's such a common concern because 1) people often start out writing CLI utils as they learn their way around a language, 2) people would love to see Clojure be better for this use case, and 3) it's one of the few things to complain about.
> cat test.lisp
(prin1 "hello, world")
> time clisp test.lisp
"hello, world"
real 0m0.019s
user 0m0.011s
sys 0m0.008s
> cat test.clj
(print "hello, world\n")
> time clojure test.clj
hello, world
real 0m0.929s
user 0m1.283s
sys 0m0.046sBut I understand on principle, for example I work on JVM & hate when ppl bring in random code that make it hard to test across the whole system. Seamless integration of all tools & unified protocols are nice.
There are two issues with Clojure (3 if you consider static typing a hard requirement, because core.typed is brilliant but probably not "there" yet) and both come from the JVM. The debugging experience is still pretty bad; although I dislike debugging in general if it can be avoided, and that's why I've gravitated toward static typing (catch bugs early). The second is that the JVM itself imposes a ceiling on how well you can do performance-wise, and can require a fair amount of configuration in production. Of course, Clojure may be off the JVM in 10 years and, even if not, it's still a great language in very many ways.