Stuart Halloway (part of clojure/core and author of Programming Clojure) has a great response at the bottom of the comments:
Clojure’s STM API does not include agents, atoms, and refs. Only refs are part of the STM API…
…consider your article title: the reality is that Clojure provides a bunch of different bullets to handle different problems. And this doesn’t even take into account Clojure’s other concurrency-savvy features: immutable collections, vars, futures, and delays, to name a few.
(Concerning the comments) Amazing how subjective people can be about this stuff. I thought the response from Stuart Halloway was well considered and fact based.
Clojure’s STM API does not include agents, atoms, and refs. Only refs are part of the STM API…
…consider your article title: the reality is that Clojure provides a bunch of different bullets to handle different problems. And this doesn’t even take into account Clojure’s other concurrency-savvy features: immutable collections, vars, futures, and delays, to name a few.