Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
jasonofthel33t3 HN recommenders · recommended in 3 months, 2014-2025
119K views · 13 years ago · interview · evergreen
A Channel 9 Going Deep interview in which Brian Beckman talks with Rich Hickey, creator of Clojure, about the language's design. It covers Clojure's persistent data structures, reference types and its approach to concurrency on the JVM.
HN commenters call it a fantastic introduction to Clojure and the thinking behind its design.
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:28:59Clojure for Lisp Programmers Part 1 - Rich Hickey
ClojureTV
25K views • 13 years ago
1:02:50The Language of the System - Rich Hickey
ClojureTV
174K views • 13 years ago
1:48:13Clojure for Java Programmers Part 1 - Rich Hickey
ClojureTV
131K views • 13 years ago
1:10:05Are We There Yet - Rich Hickey
Zhang Jian
24K views • 7 years ago
2:32:39Clojure Concurrency - Rich Hickey
ClojureTV
73K views • 13 years ago
1:03:29Maybe Not - Rich Hickey
ClojureTV
181K views • 7 years ago
4:57Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made Simple
Fred Overflow
43K views • 6 years ago
1:06:24Rich Hickey: Deconstructing the Database
InfoQ
106K views • 14 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
ClojureTV
434K views • 5 years ago
39:49Hammock Driven Development - Rich Hickey
ClojureTV
333K views • 13 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
1:16:14Spec-ulation Keynote - Rich Hickey
ClojureTV
135K views • 9 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
219K views • 5 years ago
45:00"Transducers" by Rich Hickey
Strange Loop Conference
116K views • 12 years ago
31:44The Value of Values with Rich Hickey
InfoQ
145K views • 14 years ago
1:07:22Invited Talk - Guy Steele
ClojureTV
39K views • 9 years ago
1:00:46"Design in Practice" by Rich Hickey
ClojureTV
65K views • 3 years ago
32:44Clojure in a nutshell by James Trunk
Func Prog Sweden
104K views • 5 years ago
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
87K views • 7 years ago
5 comments from Hacker News
> What I don’t understand the advantage for “state management”. Like, you build a new state object, and then mutate some pointer from prevState to nextState… that’s what everyone else is doing too. Clojure's real super power is its reference type(s) (in particular the atom). Rich does an excellent job explaining them in this video: ▶ this video
The actual details of how the underlying datastructures work isn't that hard to grasp (see: ▶ this video ), but in practice you don't even need to go that far. At a high level there's really just a few things you need to keep in mind, the biggest being the big O guarantees of the core DS interfaces, which are listed here link . Those guarantees hold across the different underlying implementations, and there are plenty of things you can tune to get a 2x, 10x, 50x improvement in performance before resorting to things that depend on which specific DS is being used under the hood Edit: Fixed timestamp for video link
Um, destructuring is a very old concept in Lisp circles. link Don't know if Rich first got the idea from Lisp or not, but it seems likely since he did a bunch of development in Common Lisp (generating C++, of all things :-D ) ages ago. I don't remember if I heard him talk about that in the "Expert to Expert" video ( ▶ this video ), or in "Simple Made Easy" ( link ). I think it was the former, but both of those are worth watching multiple times. It's also entirely possible that it was in an entirely different video of his -- but it was him . I've yet to be disappointed in any of his talks, so if I'm wrong about the exact one, just keep watching any of his talks on YouTube till you find it. xD
I'm not sure how it's implemented in Ferret but Clojure's data structures are implemented as trees so there's structural sharing that happens when a vector or hash map is updated or when a new version is produced. So the whole data structure isn't copied but only the relevant parts are added / updated in the tree and the rest is shared with the "new" data structure. Mutable data structures are still more memory effective but I'm assuming its fine since the author has a blog post on using ferret on an Arduino Uno which has 32k of ram. link Clojure data Sturucture links: Persistent Vectors link Video with Rick hick on them ▶ this video
I'd like to learn Clojure. Any suggestions on how to get started? It's my first time using a Lisp dialect. I figured I'd tackle the Clojure Koans, and mix in a few Project Euler problems. I'd also like to do some code reading. I know the Clojure source code is on GitHub, but maybe something smaller to start? If anyone else is interested in getting started, here are a few links I visited over the weekend: link link link ▶ this video The last link is an hour-long interview with Rich Hickey - a fantastic introduction to the language and his design goals. It's probably the best technical video I've ever watched on YouTube.