# 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]]