"Clojure, the Good Parts"


The Clojure, the Good Parts article is worth reading - an experienced Clojure developer reflects on what tools and libraries he prefers to use.

The HN thread has a lot of good discussion, most notably about trade-offs with different Clojure features. I was most interested in the discussion about atoms, agents, core.async and STM.


Good article! Lots of great thinking, even for the stuff I don’t do myself.


Some of the folks in the HN discussion were pretty critical of core.async, or over-use of core.async. Interested in your thoughts on their comments @ericnormand.


Hi @brentvukmer

Well, the one who was most critical was the one who wrote core.async! :slight_smile: So I think it’s mostly about overuse.

I’ll tell you when I use it: very quickly in ClojureScript. And not so quickly in Clojure. It’s just a game changer in ClojureScript because of callback hell. I wrote something about it here: http://www.lispcast.com/core-async-browser-motivation. I also wrote some “style” guidelines, one of which is to use channels as late as possible: http://www.lispcast.com/core-async-code-style



Thanks for the pointers, @ericnormand - I’ll take a look at your article.