Frame from React.js Conf 2015 - Immutable Data and React Plays with YouTube's privacy-enhanced embed

React.js Conf 2015 - Immutable Data and React

Open on YouTube First HN thread

5 HN users recommended this talk in 5 different months between 2015 and 2022.

2007–2026
5 recommendations 2 citations HackerTube score 5

HN points to it as a clear explanation of immutable data structures such as tries, and of the case for immutability with React and Flux.

Lee Byron of Facebook explains how persistent immutable data structures work and how to use them in React apps with Immutable.js. He covers memoization benefits and avoiding coupling through shared mutable state.

Pull quote: “there's a great conference talk on this topic by Lee Byron from Facebook” (HN, 2017)

Also tagged: immutable data in react, immutable.js, react, persistent data structures, tries, flux

What Hacker News said

7 labeled comments from the HN archive; up to 20 are kept per video, favoring different commenters. Each one links back to the original thread.

Recommends clay_to_n May 2017 under Build Yourself a Redux
Lee Byron's talk on immutable data and React.
For anyone interested, there's a great conference talk on this topic by Lee Byron from Facebook: [this video]
Recommends jamesgpearce June 2022 under Ask HN: Best dev tool pitches of all time?
Lee Byron's pitch of Immutable, React and Flux, including quick undo stack.
Lee Byron on Immutable/React/Flux: [this video] “I only have a minute left, which is more than enough time to build the undo stack”

Citations, criticism and jokes

Cites it icc97 March 2017 under Modern JavaScript for Ancient Web Developers
Read the full comment
I attacked the modern Javascript approach through first focusing on functional programming. 1. Python + functional programming in Python Python is hardly a pure functional language, but it's lovely and simple and has all the core concepts including list comprehensions. This leads you on to... 2. Haskell If you want to find a pure functional solution to a Python problem, first search for the Haskell one and translate it. Then read Learn You a Haskell [0] which was the funniest programming book I ever read and almost, almost taught me about monads (I had it for a second, then tried to explain it in Python and all was lost) Now you can relax cause the hard bit is done. 3. Read Javascript the Good Parts and only pay attention to the functional programming bits. Suddenly mentions of currying aren't so scary. 4. Work your way through the funfunfunction [1] videos, especially the functional playlist [2] and for added bonus he has videos where he works through the first few chapters of Learn You a Haskell. Then you've got map, reduce, filter all completely under control. Now immutability makes more sense, arrow functions don't look so strange, promises are just friendly monads really and we all love those. Now you've got Immutable.js [3], lodash, underscore all reasonable to understand. React's moaning about state and pure functions makes reasonable sense. 5. Babel really isn't that hard. Just following the Meteor + React tutorial [5] got that all working without me really noticing.
Cites it fyp January 2020 under Reasons to Learn Redux as a JavaScript Developer
Talks describe index tries and hash array mapped tries in Immutable.js.
Read the full comment
Most functional languages have immutable persistent data structures that don't require a linear copy and are fairly efficient. For example in clojure, sequences are implemented as 32-ary tries so insert/delete/update to any particular index will only cost around sizeOfNode * numParents=32 * log_32(n). This comes with a cost that indexing is now log_32(n) but it's usually a fair price to pay. In javascript, immutable.js implement these same ideas (as least according to these talks where they talk about index tries and hash array mapped tries: [this video] ) If you want native support, javascript engines are actually free to swap out their implementation of arrays! I know they already do depending on whether they think your array is sparse("holey") or not: [link] . I also vaguely recall someone saying that unshift (push to front) is automatically optimized by switching to a deque/circular buffer but I might be remembering wrong. Anyway, they can make these optimizations in a distant future but I don't think do today.

Keyboard shortcuts

/
Search
j k
Next / previous video in a list
Enter
Open the focused video
l
Like (on a video page)
w
Watch later (on a video page)
?
This help
Esc
Close