Skip to content
0:00 / 0:00

#immutability#clojure#richhickey

The Value of Values with Rich Hickey

InfoQ

234K subscribers • 59 videos on Hallway • Conference channel

YouTube
  • Recommended by 11 people: 10 on Hacker News and 1 in engineering communities.
  • A classic. People kept recommending it from 2013 to 2023.
  • Presented by Rich Hickey, creator of Clojure
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

144K views14 years ago11 recommendations

Software designProgramming languagesFunctional programmingSimplicity and complexitySoftware architecture

Rich Hickey explains the importance of immutable values over mutable places in building robust and understandable information systems.

In this keynote speech from JaxConf 2012, Rich Hickey, creator of Clojure and founder of Datomic gives an awesome analysis of the changing way we think about values (not the philosphoical kind) in light of the increasing complexity of information technology and the advent of Big Data. The broad subject of the talk makes it worth watching for almost anyone in the programming world, and was one of the highlights of the JaxConf lineup. If you like the talk, check out Hickey's other appearance at JaxConf2012 here: marakana.com/s/rich_hickey_on_deconstructing_the_database,12…

Why it's here

11 people recommend this

What people say. Widely recommended as the talk that convinces developers of the benefits of immutability and functional programming.

Moments people linked to

lukiferon Hacker News • Recommends

On “Ask HN: What made you change your mind about a programming language/paradigm?”

Rich Hickey's "Value of Values"0 is what finally sold me on the benefits of pure functional programming and immutable data structures. (It remains horrifying to continue working with MySQL in my day job, knowing that every UPDATE is potentially a destructive action with no history and no undo.) 0: link to this video

lukiferon Hacker News • Recommends

On “New WebKit Features in Safari 13.1”

Immutability has been pretty hot of late, though still controversial. There are several popular languages which encourage or even force immutability (Elixir, Clojure). What sold me on the idea was Rich Hickey's talk, "The Value of Values": link to this video I look at it as mostly a safety net: I'd rather use const by default, unless I have a good reason to be able to mutate the variable. (To flip it around: what problem does being mutable-by-default solve?) 9 times out of 10, I don't need to change the value for the lifecycle of the function; and often if I do, the code is cleaner anyway if I use an immutable pattern (such as `const foo = bar.map()` rather than `for(x in bar) foo.push()`). Thanks to t…

josephgon Hacker News • Recommends

On “The database I wish I had”

Most software isn’t FAANG. In the long tail of database size, I’d guess 95%+ of databases are smaller than a few hundred megs. And at that size, storage is cheap and storing a full historical record of changes should absolutely be the default. Rich Hickey has a great talk on this a few years ago talking about the difference between Place and Value. He says accountants learned this lesson hundreds of years ago with bookkeeping. Users just don’t generate much data relative to the size of our disks. Well worth a watch, especially if you disagree: link to this video

elamjeon Hacker News • Recommends

On “Ask HN: Programming talks that made something click for you?”

Simple Made Easy ( link ) The Language of the System ( link ) The Value of Values ( link to this video ) All by Rich Hickey (Clojure creator) - strongest programming speaker I've found to date.

u/trakovin r/Clojure • Recommends

The Value of Values

lkrubneron Hacker News • Recommends

On “Programming languages and Frameworks to learn in 2015”

…how to support concurrency in a programming language. Armstrong talks about a paradigm that he calls "Concurrency Oriented Programming". Armstrong's thesis is surprisingly readable and I recommend it: link Rich Hickey's video presentation "The value of values" is also a good overview of some concepts that are important to Functional Programming: link to this video…

escherizeon Hacker News • Recommends

On “Some Functional Programmers Are Arrogant”

Hi! I have been a programmer for a couple years and started picking up clojure after watching a few of rich hickeys talks. This is the one that best satisfies your question, imho: link to this video

unlogicon Hacker News • Recommends

On “Arguments against JSON-driven development”

It's funny how catnaroek was completely vendetta-downvoted in this thread for speaking valid things. For those who don't understand the difference between objects and values, this video may be of help: link to this video

JMStewyon Hacker News • Recommends

On “Why Clojure? (2010)”

That talk was "The Value of Values," which I enjoyed as well. Links for anyone interested: link (1 hour version) link to this video (1/2 hour version)

tree_of_itemon Hacker News • Recommends

On “Carp, a compiled Lisp with type inference and a borrow checker”

Clojure's implementation did not have to be so complicated, there are simpler implementations of persistent data structures. Immutability is obviously the more elegant option as far as I'm concerned: Hickey's The Value of Values 0 lays out the case quite well. 0: link to this video

lvhon Hacker News • Recommends

On “Clojure’s Approach to Identity and State (2008)”

I think Rich Hickey's (the creator of Clojure) talk, The Value of Values, to be a great 'splainer: link to this video

dmitry-vslon Hacker News • Recommends

On “Show HN: Leporello.js – interactive functional programming IDE for JavaScript”

…you create new ones. You can watch Rich Hickey's insightful talk 0, where he discusses the advantages of immutability in functional programming. In many ways, Leporello.js bears a resemblance to Clojure. Clojure served as a source of inspiration for Leporello.js, to the extent that I even contemplated building Leporello.js for Clojure first. 0 link to this video…

u/f_of_g_of_xin r/functionalprogramming • Mentions

On “Why OOP sucks?”

Answers: link to this video link to this video

u/d4rkwingin r/ProgrammingLanguages • Mentions

On “Why do modern (functional?) languages favour immutability by default?”

Rich Hickey gives a good lecture on it. You can watch it here.

u/davidsulcin r/elixir • Mentions

On “Not understanding immutability (with code snippet)”

…sign the return value to the `user` variable (i.e. `user = Sanitizers.sanitizeName(user)`). So on line 3, the `user` value is exactly the same as on line 1. This simple fact is really great to reduce mental load when working on code bases, since you have less to keep track of at any given time. I would also recommend watching "The value of values" link to this video as well as any other talks Rich Hickey has given on "generic" topics, such as "Simple made easy" link to this video or the Reddit favorite: link to this video Right, so everybody's going on about "stop thinking imperatively"; how can you actually do that? My biggest tip is to **always think about separating out the HOW from the WHAT**. Keeping that mantra at th…

slifinon Hacker News • Mentions

On “Write Code Like You Write a Recipe”

Who knows what bowl.stir() actually does to the internal state of bowl, and what methods should have been run up until this point to get into that state, is the bowl ready to stir? What methods should have already run for that? So much of the article's code is crutched on good naming I like to think of this in terms of the Charizard Pokemon card For context in this example I have this card and I'm sensitive about damage to it so in this OO example I put the card in a box and allow you to interact with it in a very limited way, you cannot use anything you're used to to interact with it like your own gloves or hands etc Just my "methods" so I might give you a tiny hole to look at it, you could…