To me the most frustrating thing about programming in Clojure (not that I'm generally frustrated by doing it, in fact I love it) are the totally cryptic/useless error messages, especially syntax errors that don't contain a line number (or they do but it's invariably 0).
Thank goodness for syntax-coloring editors or it would take me hours to track some of these things down.
To be honest I have never found any functional language that gives anything near helpful error messages. I have found that the best way is not to read the error messages but to pattern match on the phrases. Sounds like a downside but the benefit is it takes only a mere fraction of a second to look at an error message and guess what is wrong once you get comfortable. There are not too many patterns either.
I can but agree with this, Clojure rivals template-heavy C++ in GCC for the uselessness and pointlessness of the humongous heaps of cryptic error messages it produces.
Not that this is an excuse, but once you know a bit more about how Clojure and the JVM work, stack traces become a lot easier to interpret. Most of the time, there's at least one line in the stack barf that tells me exactly where to look to find the problem.
This may actually be a bad thing, because it disincentivizes those who have the ability to fix things to be more newbie-friendly.
I've been wondering if the fix would be as simple as filtering stack trace entries generated by higher lower level code (ie, from Clojure itself rather than the application code.) It seems like such a simple fix that I wonder why it hasn't been done.
The problem is that these require a running, working system to format and print the stacktrace (as well as inspecting the state of the Clojure runtime). Unfortunately, uncaught exceptions will also quite often FUBAR the REPL, if not the entire JVM, meaning that improved stacktrace tools can only work some of the time, and will sometimes even make things much worse (if the JVM throws an exception from within the stacktrace formatter itself.)
Thank goodness for syntax-coloring editors or it would take me hours to track some of these things down.