You are previewing Clojure in Action.

Clojure in Action

Cover of Clojure in Action by Amit Rathore Published by Manning Publications
O'Reilly logo

Chapter 6. State and the concurrent world


This chapter covers

  • The problems with mutable state
  • Clojure’s approach to state
  • Refs, agents, atoms, and vars
  • Futures and promises


State—you’re doing it wrong.

Rich Hickey

The above quote is from a presentation by Rich Hickey in which he mentions Clojure’s approach to concurrency and state. He means that most languages use an approach to modeling state that doesn’t work. To be precise, it used to work when computers were less powerful and ran programs in a single-threaded fashion. In today’s world of increasingly multicore and multi-CPU computers, the model has broken down.

This is evidenced by the difficulty of writing bug-free multithreaded code in typical object-oriented languages like Java ...

The best content for your career. Discover unlimited learning on demand for around $1/day.