A few years ago I attended a conference where Rick Hickey presented on his new JVM-based language Clojure. At the time I thought, “Cool. A lisp with Java interop and software transactional memory (STM)” and pushed it onto the pile of things to investigate. Last month I got around to it.
I’ve finished Halloway’s Programming Clojure which I’ve had sitting here since New Years when I ordered Programming Erlang and a few other books and started Fogus’s The Joy of Clojure. I prefer “Joy”, it’s a different kind of introductory book much more to my taste of jumping in with both feet (and included the pdf ebook gratis) and I’ve begun converting some existing small projects from Common Lisp. I’m impressed, as much with the community as with the language: Emacs/Slime (snapshot)/swank work with barely any tweaking of my existing config, Leiningen hides the Maven ugliness (which is itself an improvement over Ant), plugins exist for the Netbeans and Eclipse IDEs (neither are more compelling than Emacs where I’ve spent the last decade, maybe I’m not getting it), pretty much everything I’ve looked for has turned up in Clojars and
#clojure is populated by helpful and fairly tolerant people.
It’s a nice language and a reasonably pleasant way to work with Java (though I did have to break out Java in a Nutshell and popped for the upgrade to the pdf ebook).