My Top Clojure Articles
Yeah, it's a clip show. Deal with it.
For the past few years, most of my posts have been beginner-intermediate essays on various clojure features and coding techniques. Since a lot of people have told me that they like my blog as a genre piece, I decided to pull some of my favorites into one place, and order them by difficulty, from Clojure beginner on up so that folks don’t have to root around.
I really hope to see Clojure become a widely-used general-purpose language, because, although much has been made of its general elegance and its propensity to be written by extremely clever people, I think it has a lot to offer mediocre programmers (like yours truly) with its practical feature-set, strong encouragement of good practices (immutability, pure functions) and useful tools like Leiningen and the excellent lisp REPL.
With that in mind, and because I’m really not past the intermediate level yet, I try to write articles targeted at people who are new to Clojure. And now I have enough such articles that I think it’s worthwhile to assemble them in once place. I’ll try to keep them up to date as I write more in the future.
Beginner Articles (Read these first)
One of the articles that inspired the creation of Learn X in Y Minutes and a nice primer for experienced developers of other languages who just need to get up to speed.
This one may help to smooth over a few roadblocks you might encounter when trying to do things the newfangled functional way.
Wherein I demonstrate some techniques for making error handling functional, instead of using try/catch exception handling that validates referential transparancy.
Write your first web app in Clojure, as quickly as possible.
Another nice basic demonstration of the difference between thinking in terms of data and functions and of objects and methods. Also introduces Protocols, which are a feature many people don’t “get” right away.
A bit about just what a clojure macro is, in the most basic way possible.
Articles about Clojure features and libraries
If you’ve ever wondered what Protocols or Multimethods are for, well, I hope this helps.
Two essays on Clojure’s “reducers” feature, which allows for efficient stream-processing-style collection processing. The last one doesn’t use Clojure, but I think it has good examples anyhow
Another pair of articles about Clojure’s simple and effective concurrency features, and related libraries.
A tour of some handy libraries from the clojure.core namespace that didn’t quite make the cut to be part of the standard library.
Demonstrating the use of atoms as an in-memory data store, first with a naive global static implementation and then with a modular, swappable protocol-based solution.
The gory details about redditlater, a Buffer-like post-scheduling service for reddit that runs on Clojure.