Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    The Value of Values with Rich Hickey

    InfoQ

    10 HN recommenders · recommended in 13 months, 2014–2023

    YouTube

    31:44 · 145K views · Oct 8, 2012

    Rich Hickey's JaxConf 2012 keynote examines what values are and why immutable values matter as information systems grow more complex and data gets bigger. It contrasts places with values and builds the case for immutability.

    HN commenters cite it as the talk that convinced them of immutability and functional programming.

    Software Engineering & LanguagesFunctional programmingDatabases & storageSoftware architecture & design
    1. 1:02:50
      The Language of the System - Rich HickeyClojureTV174K views • 13 years ago
    2. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)ClojureTV434K views • 5 years ago
    3. 1:16:14
      Spec-ulation Keynote - Rich HickeyClojureTV136K views • 9 years ago
    4. 37:07
      Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting ThingsFunctionalTV45K views • 7 years ago
    5. 1:06:24
      Rich Hickey: Deconstructing the DatabaseInfoQ106K views • 14 years ago
    6. 1:14:52
      Effective Programs - 10 Years of Clojure - Rich HickeyClojureTV176K views • 9 years ago
    7. 4:57
      Rich Hickey rants about HttpServletRequest in 1080p: Death By Specificity from Clojure Made SimpleFred Overflow43K views • 6 years ago
    8. 1:10:05
      Are We There Yet - Rich HickeyZhang Jian24K views • 7 years ago
    9. 53:56
      Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojurejasonofthel33t119K views • 13 years ago
    10. 1:03:29
      Maybe Not - Rich HickeyClojureTV181K views • 7 years ago
    11. 2:32:39
      Clojure Concurrency - Rich HickeyClojureTV73K views • 13 years ago
    12. 1:48:13
      Clojure for Java Programmers Part 1 - Rich HickeyClojureTV131K views • 13 years ago
    13. 36:53
      Rails Conf 2012 Keynote: Simplicity Matters by Rich HickeyConfreaks220K views • 14 years ago
    14. 1:28:59
      Clojure for Lisp Programmers Part 1 - Rich HickeyClojureTV25K views • 13 years ago
    15. 39:49
      Hammock Driven Development - Rich HickeyClojureTV333K views • 13 years ago
    16. 40:42
      Lucas Cavalcanti & Edward Wible - Exploring four hidden superpowers of DatomicClojureTV29K views • 11 years ago
    17. 1:00:46
      "Design in Practice" by Rich HickeyClojureTV65K views • 3 years ago
    18. 45:00
      "Transducers" by Rich HickeyStrange Loop Conference116K views • 12 years ago
    19. 50:01
      Simplicity Ain't Easy - Stuart HallowayClojureTV24K views • 13 years ago
    20. 46:18
      Om Next - David NolenClojureTV44K views • 11 years ago

    13 comments from Hacker News

    1. @lukiferApr 2020· in “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": 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 the magic of Merkle trees, we can generally make fresh pointers without it costing much memory overhead.

      Strongly recommendsView on HN
    2. @josephgSep 2020· in “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: this video

      Strongly recommendsView on HN
    3. @lukiferMar 2019· in “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]: this video

      Strongly recommendsView on HN
    4. @elamjeOct 2021· in “Ask HN: Programming talks that made something click for you?”

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

      Strongly recommendsView on HN
    5. @dmitry-vslOct 2023· in “Show HN: Leporello.js – interactive functional programming IDE for JavaScript”

      Leporello.js follows a pragmatic functional approach. You can use IO functions and throw exceptions as you typically would, without the need for an IO monad or an Option monad. However, there is one critical limitation – you cannot mutate your data structures. Mutations are not allowed because they would make time-travel debugging impossible. For instance, the following code is forbidden: const point = {x: 1, y: 2} point.x = 2 And instead you should use this: const point = {x: 1, y: 2} const another_point = {...point, x : 2} In Leporello.js, it's vital to avoid mutating data structures; instead, 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] this video

      RecommendsView on HN