I sincerely wish Clojure didn’t have so many rough edges and weird design decisions. I love it in theory, but in practice would never recommend using it over Java 8.
Can you enumerate some of the (in your opinion) rough edges and weird design decisions?
I have never liked the namespacing in Clojure. It feels fiddly and annoying compared to practically any other system. The focus on hashes over record types is wrongheaded, in my opinion, and anywhere that you need to interact with Java becomes a mess of unidiomatic flailing. The stack traces are brutally opaque, and God help you if you need to debug across the Java/Clojure boundary. Reasoning about performance can also be an adventure.
Generally, I just don’t think the alternative JVM languages offer enough advantages over modern Java to justify the inevitable friction you will experience in your toolchain.
I like this title much better than the one it was originally posted under: “Why Clojure is better than C, Python,Ruby and java and why should you care”.