Five Things that Mildly Annoy Me in Clojure
briancarper.net
briancarper.net
"As soon as we started programming, we found out to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs." - Maurice Wilkes
Because of this it's not as big of a problem as one would think. For real debugging you would attach a debugger, jdb to Emacs, jSwat to any REPL, or the one built into Netbeans (if you're using the Enclojure plugin). These already work well, will only continue to improve, and others will emerge.
I found that after a while I just got used to reading them, but I'm certain the initially ugly exceptions do turn off some people who don't start out with a strong enough desire to use Clojure.
Like the blog author notes: "Stack traces in Clojure will often tell you little to nothing about what is causing the error, or more importantly, where it's coming from in your code." - - The most important property of a stack trace is to tell you where the bug is coming from in your own code - - and this is a non trivial task if you compile down to a low-level language.
the config bullshit - yes. There are various community efforts in progress to help on this front.
that said, once you've built your first web app in Clojure (and Compojure) and debugged/updated it via a remote REPL à la Paul Graham, the pain points become less ... painful.