Live data from Hacker News

React is winning by default and slowing innovation

lorenstew.art

41–50 of 866 posts

Re: React is winning by default and slowing innovation

#41
post #30
post #11

Rewrite the first paragraph replacing "React" by "HTML". React is mostly HTML driven by data. "HTML killed front end innovation". Well that enabled standards to build real use cases on it with a common ground. Before React, the Web world was a mess. In 2025, you have lots of frameworks to explore. React did not kill front end innovation at all, it just became a standard that gives more common understanding to buildin…

[flagged]

Next time I would recommend to just wait until you’re less emotional and respond then. Your comment now doesn’t really add anything to the conversation, whereas one with a level head might.

Re: React is winning by default and slowing innovation

#42
post #6

> React didn’t win purely on technical merit A sentence written by someone who clearly hasn't worked on a large Angular 1.x project.

Yeah, transcluded scopes and myriad of ad-hoc micro DSLs, one per each HTML attribute that needed any kind of smartness. And dependency injection to micromanage.

Fun times.

Re: React is winning by default and slowing innovation

#43
post #9

If you build an OS in JavaScript please make sure it can unload programs. …IOW not every app needs to be an SPA, but if it is, it’s still true that nobody needs most of it loaded at any given time. Give me my RAM back.

That sounds like it would take extra work. I’ll leave it to the LLM.

Re: React is winning by default and slowing innovation

#44
> Hooks addressed class component pain but introduced new kinds of complexity: dependency arrays, stale closures, and misused effects. Even React’s own docs emphasize restraint: “You Might Not Need an Effect”. Server Components improve time-to-first-byte, but add architectural complexity and new failure modes.

There are a lot of valid criticisms of React, but I don't think this is one of them. These problems are not really new with hooks. They're actually problems which existed in some form in the class component API. Taking them one at a time:

Dependency arrays: I cannot count the number of bugs I encountered which were due to a lifecycle containing some code which was supposed to be called when certain props or bits of state changed, but completely forgot to check one of them.

Stale closures: the second argument to setState allowed this exact bug. Also, people would bind methods in incorrect spots (such as in lifecycle methods) which has the same result.

Misused effects: at varying point, class components had access to the class constructor and the lifecycle methods componentWillMount, componentDidMount, componentWillReceiveProps, shouldComponentUpdate, componentWillUpdate, componentDidUpdate, componentWillUnmount (this is from memory and is definitely only partially complete). Misuse of these was incredibly common. An article like "You Might Not Need an Effect" but titled "You Might Not Need Lifecycle Methods" or "You Might Not Need the Second Parameter to setState" would have been very helpful in the past.

Hooks reduced the number of opportunities for making mistakes, make enumerating those opportunities easier, and, critically, made them easier to detect and warn users about.

Re: React is winning by default and slowing innovation

#45
post #27

its kind of a blessing that SOMETHING won. We finally can just use a component. We don't have to worry about - oh I wish I could use that, but it's written in X framework.

Now you’re forced to use react even for simple pages that just need that one component.

[deleted]

Re: React is winning by default and slowing innovation

#46
post #6

> React didn’t win purely on technical merit A sentence written by someone who clearly hasn't worked on a large Angular 1.x project.

here here, being involved with porting a huge angular 1 project to the first angular2 RCs (golden dev choice) was the worst frontend project i ever witnessed in my not short career :-)

I'm working with a large Angular app, and my dev experience has been abysmal. TS language server running out of memory, Angular language server frequently crashes or freezes leaving weird half line diagnostics in its wake. Go to definitions are so slow in the proje too.

I've worked on 2x, if not 3x larger React codebase without these issues. I can't tell a single instance where language tooling was failing me so severely that I've contemplated turning it off because it's creating more uncertainty than its helping.

I'm relatively new to Angular 20 itself—only used Angular 1, and also migrated that project to React. So I'm not yet qualified to make big statements about it (but a preliminary gut feeling is that it often feels complex in the wrong places). C'est la vie though

Re: React is winning by default and slowing innovation

#48
post #6

> React didn’t win purely on technical merit A sentence written by someone who clearly hasn't worked on a large Angular 1.x project.

I remember the space being backbone (+ marionette!), and angular 1. webpack was a cool new confusing thing. enter react (with the mysterious redux). Purists said one should only use redux state and never local component state or context. Don't use refs! Don't you try to touch the dom! also jquery. my beautiful jquery. betrayed by the community, and cast out.

Re: React is winning by default and slowing innovation

#49
post #11

Rewrite the first paragraph replacing "React" by "HTML". React is mostly HTML driven by data. "HTML killed front end innovation". Well that enabled standards to build real use cases on it with a common ground. Before React, the Web world was a mess. In 2025, you have lots of frameworks to explore. React did not kill front end innovation at all, it just became a standard that gives more common understanding to buildin…

Actually, React's problem is that it's the inverse of how HTML and JavaScript works in terms of how to handle callbacks. Of the major UI frameworks, it is the only one with this quality (Vue, Svelte, Angular, Solid, etc. use signals).

This inverted behavior is the cause of most of the pain and footguns in React and React Hooks because the way state behaves in a React component is not the way state behaves in any other front-end JS one would normally write.

That's why I think for some folks who started with HTML + vanilla JS, React Hooks just feels wrong. It points the reactive callback to the component function whereas every other framework/library uses some sort of signal to point the reactive callback to a handler. Because React points the callback to the component function, then you have to be really cautious about where you put state inside of a component[0][1][2]

Even You wrote this about React's design choice which I think sums it up best:

    > The pain and suffer[ing] of hooks all roots from the mismatch between a dogmatic belief in the superiority of immutability and the harsh reality of the host language that is JavaScript 
If you want to "feel" this for yourself, here are a series of JSFiddles:

- Vanilla: https://jsfiddle.net/qtmkbdo2/8/

- Vue: https://jsfiddle.net/vys2rmup

- React: https://jsfiddle.net/0gjckrae/1/

It should be obvious that Vanilla and Vue behave like how one would expect callbacks to work. React, because it points the callback to the component function, then requires that you be cognizant of state inside of the component function (placement, memoization, immutability, etc.). All of the pain of React is self-imposed from this design decision.

You can read more about it here: https://chrlschn.dev/blog/2025/01/the-inverted-reactivity-mo...

--

[0] https://adevnadia.medium.com/i-tried-react-compiler-today-an...

[1] https://tkdodo.eu/blog/the-useless-use-callback

[2] https://adevnadia.medium.com/react-re-renders-guide-why-reac...

Post reply on HN