# Rich Hickey
Rich Hickey is an American computer programmer and speaker, best known as the creator of Clojure, a Lisp dialect running on the Java Virtual Machine, released in 2007. He also created ClojureScript and the Extensible Data Notation (EDN) format, and designed Datomic, the immutable, time-aware database launched in 2012. Before Clojure he spent about twenty years building broadcast automation and scheduling systems in C++ and Java, plus work on audio fingerprinting, yield management, exit poll systems, and machine listening. He was CTO of Cognitect from 2013 to 2020, then a Distinguished Engineer at Nubank after its acquisition, until he announced his retirement from commercial software development in August 2023.
![[Rich_Hickey.jpg]]
Caption: Rich Hickey presenting "Chunked Sequences", 2009. Photo by Tapestry Dude (Flickr), [CC BY-SA 2.0](https://creativecommons.org/licenses/by-sa/2.0/), via Wikimedia Commons.
What makes him worth studying goes well beyond one language. He spent roughly two and a half years designing Clojure, largely unfunded, before showing it to anyone. That patience is the thing, and he made it explicit in [[Hammock Driven Development]]: most defects are design defects, and you cannot type your way to a good design.
His ideas that keep travelling outside the Clojure community:
- **Immutability by default**, made practical through persistent data structures with structural sharing. Those ideas show up everywhere now, from React to Redux.
- **Identity versus state.** A value is immutable; an identity is a series of values over time. This underpins Clojure's reference types and Datomic's append-only, time-travelling database.
- **Simple versus easy.** In "Simple Made Easy" (2011) he separates *simple* (one concept per thing, not braided together) from *easy* (familiar, near at hand), and gives us the verb *complecting* for the act of braiding concerns that should stay apart. It's probably the most cited talk in software design.
- **Tradeoff discipline.** "Programmers know the benefits of everything and the tradeoffs of nothing." I quote this constantly, and it applies far outside programming.
- **Transducers, spec, and core.async**, each a separate contribution to composable transformation, runtime contracts, and concurrency.
He's also unusually direct about maintainer obligations. "Open Source is Not About You" (2018) argues that a maintainer owes users nothing beyond what they chose to give, which annoyed a lot of people and is worth reading anyway.
## Talks worth your time
| Talk | Year | Why |
|---|---|---|
| Simple Made Easy | 2011 | The one to watch first. Simple is not easy, and confusing the two is how systems rot. |
| Hammock Driven Development | 2010 | How to actually think about a hard problem. See [[Hammock Driven Development]]. |
| The Value of Values | 2012 | Why immutable values beat mutable places |
| Are We There Yet? | 2009 | Time, identity, and state in object-oriented systems |
| Maybe Not | 2018 | A critique of nullable and optional typing, and of his own spec design |
## Quotes
<!-- QueryToSerialize: LIST FROM #type/quote AND [[Rich Hickey]] WHERE public_note = true SORT file.name ASC -->
## Books
<!-- QueryToSerialize: LIST FROM #type/book AND [[Rich Hickey]] WHERE public_note = true SORT file.name ASC -->
## References
- https://en.wikipedia.org/wiki/Rich_Hickey
- Hickey, R. (2020). "A History of Clojure", Proc. ACM Program. Lang. 4, HOPL, Article 71
- Talk transcripts: https://github.com/matthiasn/talk-transcripts/tree/master/Hickey_Rich
## Related
- [[Hammock Driven Development]]
- [[Waking mind]]
- [[Background mind]]
- [[Keep It Simple Stupid (KISS)]]
- [[Cognitive complexity]]
- [[Design Rationale]]
- [[First principle]]
- [[Alan Kay]]