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.
Hickey 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.
Erik Meijer interviews Rich Hickey about Clojure. He briefly talks about Datomic near the end.
An article by Rich Hickey discussing the motivations and broad architecture of Datomic.
A nice talk about the architecture and implementation of Datomic.
A transcript is available.
An interview with Rich Hickey about Datomic.
Another interview with Rich Hickey about Datomic.
Codeq 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.
Another interview with Rich Hickey about Datomic.
Rich Hickey does a deep dive into the design of Datomic. What problems were they addressing? What decisions did they have to make?
Given 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.
The 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.
I 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.
Rich 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.
An interview with Rich Hickey about time.
There 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.
Rich Hickey in discussion about Clojure.
The famous "Ant Colony" demo where Rich Hickey builds a graphical representation of an ant colony to demonstrate Refs. Each cell in the grid is a Ref.
You can get the slides and see the (https://github.com/juliangamble/clojure-ants-simulation).
In Clojure 1.4, edn was introduced. This talk dives into the motivations and how it compares with other data formats.
Clojure 1.3 introduced protocols. This is another interview.
In 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.
Clojure 1.9 will have a new feature called clojure.spec. Craig Andera interviews Rich Hickey about its motivations.
Rich Hickey interviewed about Java as a host, the open source development process, and what attracts people to Clojure.
In this article, Rich Hickey is interviewed about programmer productivity, complexity, and Clojure.
Implementation details about Transducers and what it takes to make a custom one.
A transcript is available.
Rich Hickey explains the design and motivation of core.async.
Another recording his here.
A transcript is available.
If 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.
Rich 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.
In 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.
A nice talk about what transducers are and a little about how they work.
A transcript is available.
Rich Hickey explains the motivation and implementation of reducers.
A transcript is available.
Rich Hickey is interviewed along with Joe Pamer (an F# compiler developer).
Another interview of Rich Hickey about Clojure.
Rich 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.
Rich 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.
Rich Hickey interviewed about STM, metadata, multimethods, and more.
Rich Hickey gave a screencast, largely at the REPL, exploring the data structures of Clojure. It includes numbers, symbols, keywords, strings, and the collections.
Way 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.
Starting 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.
An article by Rich Hickey about the data model in Datomic.
Rich Hickey discusses how Datomic revisits the notion of the database. He explores the benefits of making the database an immutable value.
Rich 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.
Datomic 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.
Rich 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.
Rich Hickey talks about the reasons he created Clojure and the design problems Clojure was built for.
A transcript is available.
Rich Hickey discusses the design of a database using functional principles.
A transcript is available.