It's very hard to imagine that Lisp a functional program language designed for Artificial Intelligence, without OO support, disguises as Clojure, after not doing so much for over 50 years finally takes off.
What's wrong with it?
Is this Clojure / Lisp combo ready to take on big stage, or like Ruby, just another fad? Is it capable for enterprise, or just for startup which most likely to be misearble in the end?
Please explain yourself Deano +Dean Budd
Short answer. Yes, Clojure is more than capable.
Long answer. Ruby didn't really bring much to the table, and in fact it took a whole lot away (the JVM). It's still an imperative language.
Concurrent programming is coming fast. Hell even my phone has four CPU cores and yet we're still happily writing single-threaded Java code. Functional Programming solves a lot of the problems we're going to face in the now pervasive multi-core environment.
Scala. Scala is an amazing language. My concerns with it are it's complexity and the fact it's a hybrid. It is very easy to slip back into imperative programming in Scala.
But I can foresee an army of Java developers swarming to Scala and immediately writing imperative-style code (in the same way we had armies of C developers writing procedural-style code in Java) when they make the switch. Thoughts +Bryan Murphy?
In Clojure, you simply can't as it's a purely functional language.
Clojure forces you to think about things differently.
http://clojure.org/state
As and aside I've been looking at some performance stats and functional isn't always the most efficient at runtime (granted it depends heavily on the runtime engine). An example was in JavaScript that changing a forEach() to a for loop gained 25% performance due to the fact that the capturing of state for closure mechanics wasn't needed. Therefore being able to use imperative code may be beneficial as well.
The key as always is team discipline which is always the hardest language to learn. hahahaha
Or even the present ;)