Rich Hickey: "Your mock object is a joke; that object is mocking you. For needing it."
The upside of Clojure seem to be
- It has libraries targetted for programmers doing useful work. Via Java, but very un-CLOS like.
- it's focused on concurrency/immutability in the language, as per Erlang.
The downside is that it's a Lisp. As a syntax, Lisp is a fail, which if you understand what Lisp syntax provides is a (the) great irony of programming. When you see how difficult it is for JRuby/Jython or even Groovy to break through, you despair. Arguably, it loses out to those more syntactically appealing languages, who have a hard enough time knocking down the door.
I could see Clojure wangling it's way into Java shops. Like Groovy, it's syntax is lovely for things like DSLs, configuration or deployment, which are not at all well dealt with today in Java (notable exceptions aside). It should also be (and I'm guessing here) a good language for data pipelining or mapred style work. Incidentally Hickey says he doesn't need invokedynamic, and as I understand it, that translates to will run fast.