I think providing useful stack traces is one of the most important features of a language - since it makes debugging so much easier. Those languages that have great stack traces are Java, Python, Ruby etc. Some languages that have pretty cryptic stack traces are for example ML and Haskell (and C++ if one uses lots of templates). Lacking useful stack traces is a big problem for Clojure, at least if one is new to the language.<p>"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