Recs.
Updated
A dynamically typed hosted language from the Lisp family, emphasizing functional principles, value-driven programming, and practicality, running on Java, Javascript, or other platforms.
SpecsUpdate
Pros
Pro Immutability is the default
Clojure programmers are highly encouraged to use immutable data in their code. Therefore, most data will be immutable by default.
State change is handled by functions (for transformations) and atoms (an abstraction that encapsulates the idea of some entity having an identity).
Pro Tries to solve problems as simply as possible
Simplicity is one of the pillars on which Clojure is built. Clojure tries to solve many problems in software development as simply as possible. Instead of building complex interfaces, objects or factories, it uses immutability and simple data structures.
Pro Good for writing concurrent programs
Since Clojure is designed for concurrency, it offers things like Software Transaction Memory, functional programming without side-effects and immutable data structures right out of the box. This means that the development team can focus their energies on developing features instead of concurrency details.
Cons
Con Not as easy to deploy as PHP
PHP is the defacto standard for entry-level deployment and has so many tools for simplification that usually you just change a file and expect visitors to experience the difference. Deploying to the JVM, for better and worse (often better, though) requires more deliberation.
Con Syntax can be alien / jarring for those used to other Lisps
Perhaps some may consider this attribute an advantage, but not everyone. Clojure does not attempt to maintain significant compatibility with other Lisps. So, if you already know a Lisp or are used to the way Lisp works in general, you'll probably be confused if you take a look at Clojure. See these resources for more details on this subject: