Rich Hickey
Rich Hickey is the creator of Clojure and Datomic. He’s a prolific speaker and has a lot of great ideas about programming. His impact on the future of programming is ongoing and extends well beyond Clojure. This is a collection of his talks, interviews, and articles.
Are We There Yet?
VideoPresentationtimeRich Hickey presents the idea that our software needs to explicitly model time. We should be explicit about what will change and how. To do this, we need to make values immutable by default. This model of time is baked into Clojure: immutable data structures plus a model structured model of state change.
A transcript is available.
Clojure Data Structures [Part 2]
VideoPresentationclojureRich Hickey gave a screencast, largely at the REPL, exploring the data structures of Clojure. It includes numbers, symbols, keywords, strings, and the collections.
Clojure Spec with Rich Hickey (Cognicast)
AudioInterviewclojure.specClojure 1.9 will have a new feature called clojure.spec. Craig Andera interviews Rich Hickey about its motivations.
Clojure for Java Programmers [Part 2]
VideoPresentationclojureWay back in the early days of Clojure, Rich Hickey gave classroom style lectures to introduce Clojure to Java programmers. Be careful, some of the language has changed.
Clojure for Lisp Programmers [Part 2]
VideoPresentationclojureThere was a time when there were more Common Lisp programmers than Clojure programmers. This talk explains to the Lispers what made Clojure different and why.
A transcript is available.
Clojure, Made Simple
VideoPresentationclojureA transcript is available.
Clojure: A Dynamic Programming Language for the JVM
VideoPresentationclojureIn this very early talk, Rich Hickey goes through a veritable laundry list of Clojure features. It just shows you how far we’ve come as an industry.
ClojureScript Release
VideoPresentationclojurescriptRich Hickey introducing ClojureScript. Back then it was just a budding little language! But this talk goes deep into the motivations for ClojureScript, its relationship to Google Closure, and what parts of Clojure are possible to implement.
Slides are available, as well as a nice writeup by Stuart Sierra.
Core.async - Communicating Sequential Processes using Channels, in Clojure
VideoPresentationcore.asyncRich Hickey explains the design and motivation of core.async.
Another recording his here.
A transcript is available.
Deconstructing the Database
VideoPresentationdatomicHickey discusses the architecture of Datomic, his new database system. The interesting thing about Datomic is that it pulls apart the pieces of the database (storage, indexing, querying, etc.) in order to choose different tradeoffs from what traditional database systems have made. In addition, Datomic is a true record-keeping system: nothing is ever overwritten.
A transcript is available.
Design, Composition, and Performance
VideoPresentationclojureI was lucky to be in attendance at Clojure/West when Rich Hickey gave this talk. The title is a double-entendre, but I’ll let you gather the real meaning when you watch it. Just know that it’s one of Rich’s excellent philosophical talks. Sam Garrett has some notes
Another recording: Design, Composition, and Performance
A transcript is available.
Economy Size Geek Interview with Rich Hickey
TextInterviewclojureAnother interview of Rich Hickey about Clojure.
Effecting Programs - 10 Years of Clojure
VideoPresentationclojureRich Hickey talks about the reasons he created Clojure and the design problems Clojure was built for.
A transcript is available.
Expert to Expert: Erik Meijer and Rich Hickey - Clojure and Datomic
VideoInterviewdatomicErik Meijer interviews Rich Hickey about Clojure. He briefly talks about Datomic near the end.
Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
VideoInterviewclojureRich Hickey in discussion about Clojure.
Hammock Driven Development
VideoPresentationprogrammingThe title is a play on popular “programming methodologies”. In this talk, Hickey explains how thinking more and thinking better about a problem can actually develop a better design than structured methodologies like TDD. Problem solving and deep thinking are things humans do well. Hickey dives into how to best use your brain to write programs.
A transcript is available.
Harmonikit
VideoPresentationharmonikitRich Hickey explains the design of an audio patch creator.
Implementation details of core.async Channels
VideoPresentationcore.asyncIf you’ve ever wondered how core.async works under the hood, this video is for you. Short answer: lots of locks. :)
A transcript is available.
Inside Transducers
VideoPresentationtransducersImplementation details about Transducers and what it takes to make a custom one.
A transcript is available.
Interview with Rich Hickey
VideoInterviewreducersRich Hickey interviewed about Reducers.
Interview with Rich Hickey creator of Clojure at GOTO Chicago 2013
VideoInterviewclojureRich Hickey interviewed about Java as a host, the open source development process, and what attracts people to Clojure.
Intro to Datomic
VideoPresentationdatomicA quick intro to Datomic by Rich Hickey.
Maybe Not
VideoPresentationoptionalitiyRich Hickey talks about why clojure.spec has failed with optionality: values that may or may not be there. He also discusses why Maybe (or Option) in many statically typed languages is not a solution to the problem he is trying to solve.
A transcript is available.
On Clojure Spec
VideoPresentationclojure.specRich Hickey presents Clojure Spec.
A transcript is available.
On Datomic Ions
VideoPresentationdatomic ionsDatomic Cloud has the ability to run Clojure applications inside the same JVM as your database. It’s called Ions and in this talk, Rich Hickey talks about how it works and why.
A transcript is available.
Persistent Data Structures and Managed References
VideoPresentationimmutabilityRich Hickey explains his conceptions of value, identity, and state. A great talk about the basics of functional programming in a changing world.
A transcript is available.
Perspectives on Clojure and F#
VideoInterviewclojureRich Hickey is interviewed along with Joe Pamer (an F# compiler developer).
Rails Conf 2012 Keynote: Simplicity Matters
VideoPresentationsimplicityGiven at RailsConf, this talk dives deep into the meaning of the word simple. Often confused with easy, which is subjective, simple has an objective definition. Simple means not tied together.
Reducers
VideoPresentationreducersRich Hickey at EuroClojure explaining reducers.
A transcript is available.
Reducers - A Library and Model for Collection Processing
VideoPresentationreducersRich Hickey explains the motivation and implementation of reducers.
A transcript is available.
Rich Hickey (Cognicast)
AudioInterviewdatomicCraig Andera interviewed Rich Hickey shortly after Datomic was released.
Rich Hickey and core.async (Cognicast)
AudioPresentationcore.asyncRich Hickey introduces core.async in the ThinkRelevance podcast (now the Cognicast). He talks about what it does, how it works, and why some of the choices were made.
Rich Hickey on Clojure 1.4's Extensible Reader, ClojureScript
VideoPresentationednIn Clojure 1.4, edn was introduced. This talk dives into the motivations and how it compares with other data formats.
Rich Hickey on Clojure's Features and Implementation
TextInterviewclojureRich Hickey interviewed about STM, metadata, multimethods, and more.
Rich Hickey on Codeq (Cognicast)
AudioInterviewdatomicCodeq is a system that reads in a Git repo’s commit history and puts it into Datomic. You can then query it. Craig Andera interviewed Rich Hickey about it.
Rich Hickey on Datomic, CAP and ACID
VideoInterviewdatomicAnother interview with Rich Hickey about Datomic.
Rich Hickey on Datomic, Data Storage, Functional Programming and Immutability
VideoInterviewimmutabilityAnother interview with Rich Hickey about Datomic.
Rich Hickey on Datomic: Datalog, Databases, Persistent Data Structures
VideoInterviewimmutabilityAn interview with Rich Hickey about Datomic.
Rich Hickey on Protocols and Clojure 1.3
TextInterviewprotocolsClojure 1.3 introduced protocols. This is another interview.
Rich Hickey: Geek of the Week
TextInterviewproductivityIn this article, Rich Hickey is interviewed about programmer productivity, complexity, and Clojure.
SE Radio Episode 158: Rich Hickey on Clojure
AudioInterviewclojureRich Hickey interviewed about Clojure.
Simple Made Easy
VideoPresentationsimplicityA transcript is available.
Spec-ulation
VideoPresentationdependenciesRich Hickey picks apart the problems with how library dependencies are thought about in the industry. He talks about how Clojure Spec can fit in.
A transcript is available.
The Architecture of Datomic
TextArticledatomicAn article by Rich Hickey discussing the motivations and broad architecture of Datomic.
The Composite Database
VideoPresentationdatomicA high-level presentation of the architectural design of databases.
The Database as a Value
VideoPresentationdatomicRich Hickey discusses how Datomic revisits the notion of the database. He explores the benefits of making the database an immutable value.
The Datomic Information Model
TextArticledatomicAn article by Rich Hickey about the data model in Datomic.
The Design of Datomic
VideoPresentationdatomicRich Hickey does a deep dive into the design of Datomic. What problems were they addressing? What decisions did they have to make?
The Functional Database
VideoPresentationdatomicRich Hickey discusses the design of a database using functional principles.
A transcript is available.
The Language of the System
VideoPresentationDistributed SystemsStarting the talk with an obviously dry humor title, Rick Hickey explores the idea of software systems — multiple programs communicating — and how the architecture of those systems compares with the architecture of a single program. Within programs, we take a lot of things for granted. Those same things are often the source of errors once machines start failing, networks go down, or versions change. What are the tradeoffs for data formats for communicating? What characteristics should we strive for in the individual pieces of our systems? These questions and more are explored.
A transcript is available.
The Value of Values
VideoPresentationimmutabilityIn this talk, Rich Hickey evangelizes the use of immutable values instead of mutable objects. He opposes the fundamental idea of Object Oriented Programming, which is to couple data with functionality. Data is cross-platform, stable, and comparable.
Rich Hickey is a force of nature. The mark he will leave on programming will reach much farther than the Clojure programming language. The agenda he is setting forth will have as much impact on the notion of state as McCarthy conditionals had on structured programming.
Please listen closely. The main idea of this talk goes far deeper than “immutable good, mutable bad”.
It is wonderful to be a part of this.
A transcript is available.
Time is the New Memory
TextInterviewtimeAn interview with Rich Hickey about time.
Transducers
VideoPresentationtransducersA nice talk about what transducers are and a little about how they work.
A transcript is available.
Writing Datomic in Clojure
VideoPresentationdatomicA nice talk about the architecture and implementation of Datomic.
A transcript is available.