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).
I love the MIT OpenCourseWare series; you find gems like this: Street-Fighting Mathematics. Never underestimate the value of a “good enough” estimate right now over an exact answer arrived at much later.
It’s been a while since I’ve mentioned what I’m reading. Here’s my current stack:
I’ve been busy with everything else in my life, so I haven’t done much reading. Things have quieted down enough and I’ve picked up:
- [Perl Hacks](http://isbn.nu/0596526741). Cool little book, full of ideas and tricks you might have known and many more you didn’t. Reminded me of looking over the shoulder of a clever programmer and going, “Aha.” I owe [dha](http://www.panix.com/~dha) a couple of good beers to make up for the review blurb I promised to write but didn’t when I was caught up in closing on a house and moving.
- [Extending and Embedding Perl](http://isbn.nu/1930110820). I’m
working through it now and so far I can say: a) this book was necessary,
b) thank you Tim and Simon, and c) XS is never going to be easy but at least it needn’t be a mystery.
One of my colleagues mentioned that they had their reviewer copy of Damian Conway’s [Perl Best Practices](http://isbn.nu/0596001738), that several other colleagues had contributed, that it was damn good and that it should be company policy to have everyone read it before writing a line of code. Not many technical books get that kind of rave (Hunt and Thomas’s [The Pragmatic Programmer](http://isbn.nu/020161622X) is another, if you code and don’t have it, get it) so I preordered.
I’m glad I did. I’ve been understandably busy but I read through it, made my notes, updated my environment and began adopting the advice. It is every bit as good as expected and immediately useful. I was particularly struck by the refinements on building “inside-out” classes (a trick I was exposed to in one of Damian’s courses and similar to the Flyweight pattern in his book [Object Oriented Perl](http://isbn.nu/1884777791)) but it’s full of simple and pointedly obvious tips like using the modules List::Utils, List::MoreUtils and Fatal and applying Regexp::Common instead of rolling your own. Not all the advice is easy to accept, and I admit to taking it piecemeal, but it’s a great book.