Frame from Hacker Way: Rethinking Web App Development at Facebook Plays with YouTube's privacy-enhanced embed

Hacker Way: Rethinking Web App Development at Facebook

Open on YouTube First HN thread

5 HN users recommended this talk in 5 different months between 2014 and 2024.

2007–2026
1 strong recommendation 4 recommendations 4 citations 2 critical HackerTube score 5.5

HN points to it as the original talk that explains the motivation behind React, Flux and Redux, and that sold some commenters on React.

Facebook engineers explain why they abandoned the traditional MVC paradigm for a more functional architecture, introducing Flux and React. They use the unread-message-count bug as a case study of the problems of bidirectional data flow at scale.

Pull quote: “these talks, they are the ones that sold me on React” (HN, 2023)

Also tagged: flux and react architecture, react, flux, mvc, redux, facebook, state management

What Hacker News said

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

Strongly recommends yazaddaruvala June 2023 under React is 10 years old
Talk that convinced commenter to adopt React
I'll try one last time: > Sorry none of this makes any sense to me. If you're not familiar with the MVC variants (MVVM, MVP, MVI, MOVE)[0][1] we should start there. Next you should read through some common mistakes of Backbone.js like applications [link] and some criticisms of MVC on HackerNews in 2012[0]. Finally if you haven't before these talks, they are the ones that sold me on React: - [link] - [link] - [this video] [0] [link] [1] [link]
Recommends rattray May 2014 under Flux Application Architecture
Explains Flux concepts clearly, starting around the 10 minute mark
Video seems to start discussion of Flux just after the 10 minute mark. Direct Link: [this video] EDIT: So far, the video is much more helpful to me in terms of bringing the concepts of Flux to life. Jing does a terrific job explaining in my opinion.
Recommends danesparza July 2017 under How to optimize React applications that use Redux
Facebook announcement videos that explain React and Flux
Redux is an implementation of Flux. I don't use Redux, but the original Facebook engineering announcement videos helped me understand React and Flux tremendously: [this video] If you're talking about Redux specifically -- I agree with you. I think it's ugly and confusing.
Recommends franciscop May 2023 under React is 10 years old
Flux talk explains philosophy behind Redux
Exactly, this is the same as saying Redux has two methodologies, the "setter system" and the "event system"; since it wasn't that well documented initially doesn't mean that the setter way was ever recommended (it's not). In fact if you watched the Flux youtube talk, something highly recommended to learn the philosophy behind Redux, it was pretty clear. Edit: here's the video (from 10:20) [this video]
Recommends phailhaus December 2024 under React 19
Flux architecture versus MVC explanation
Read the full comment
If you have state changes within your render cycle, then you can't write pure functions anymore, you have a stateful class. And if you have a stateful class, then React can't control when you render, because it can't know when you update a variable. So the onus is on you to decide when your component needs to re-render. This is extremely easy to screw up. You will end up in scenarios where the UI does not match the underlying state, just because the two have gone out of sync. React inverts the MVC paradigm and says "no, you don't get to decide when to render." So if you want to update state, React will manage that for you and queue up the render. With React, your UI and state literally cannot go out of sync (except for refs), and all the data dependencies are managed for you. Facebook gave a great talk on Flux architecture vs MVC ten years ago that you should check out here: [this video] > what's the point of the setXXX() functions? Why not just make them constant explicitly Look at the code again: it is explicitly constant! `const [myState, setMyState] = useState(0)`. `myState` is a const, and will literally not change its value for the entire render cycle. There is no mutable state to manage, no race conditions. You just tell React what to render based on what the value is now, and React injects the current value for you. The first time, `myState` is 0 since that's the initial value. Every subsequent render, React will give you the latest value. You can pretend everything is con

Citations, criticism and jokes

Cites it liscovich October 2014 under Meteor hits 1.0
Flux intro criticizing two-way data binding at scale
Read the full comment
I wonder if the criticism that the Flux team at Facebook has directed at two-way data binding is also applicable to Meteor. Jing Chen is her intro of Flux ( [this video] ) says that two-way data binding creates a major challenge for scaling applications because views can trigger changes in data, and data changes can trigger cascading changes in views, which makes it very difficult to predict the behavior of the app as a whole. Wouldn't Meteor face the same challenges? In other words, if you believe that the Flux design pattern (which involves a central dispatcher as the only entity capable of updating the data) is sound, shouldn't you stay away from Meteor's model when building large applications? Or am I missing something?
Flux architecture for controlled data flow
It formalizes how data is created, accessed and modified. Instead of multiple places trying to modify some specific data ad-hoc and with possible collisions/changes, now you have a mores strict way of dealing with data. Basically the Flux architecture. See from 10:20: [this video]
Cites it acemarke July 2022 under UIs are not pure functions of the model (2018)
Date of Flux announcement versus React
> React is a child of the Flux architecture philosophy FWIW, this isn't actually the case. React was first announced in 2013: - [link] The "Flux Architecture" was first announced a year later, in 2014: - [this video] React's original influences were things like Facebook's internal PHP-based UI definition layers: [link]
Pushes back Zanfa July 2024 under Web Crap Has Taken Control
Apparently Facebook can't do it with React either. They still experience the exact same state inconsistency bug as described [0] during React announcement as rationale for using React. [0] [this video]

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