I think Clojure is a great language. Using it requires taking dependencies on Java and the JVM or JavaScript and Closure. And those are what throw the exceptions and the context in which exceptions are described [Scala is similar]. That&#x27;s the cost for the potential speed that comes from developing a new language as an embedded language versus from the ground up.<p>For Clojure&#x27;s target audience of people who already know Java (or JavaScript) there&#x27;s a lot of evidence that it was a good decision. Tools like Leiningen can use a familar tree structure and offer the potential benefit of configuration via code in <i>comparison</i> to other Java build tools. But the point of comparison is at a particular level of overhead and that level of overhead is assumed. With ClojureScript, the toolchain is <i>more</i> complicated than a typical JavaScript tool chain. Again that&#x27;s a tradeoff.<p>Which again, I think Clojure is great. That doesn&#x27;t mean I think that those tradeoffs are always appropriate. YMMV.