React is winning by default and slowing innovation
Why React “Won”
- Many argue React did not win by default: in the Angular 1 / Backbone / jQuery era it genuinely felt simpler, more predictable and more performant, especially versus two‑way binding “spaghetti.”
- Others say it won mainly because of branding, marketing and ecosystem: Facebook’s backing, Google’s Angular 1→2 breaking change, and a strong migration story from legacy stacks.
- There’s agreement that today React often wins by inertia: it’s “good enough,” widely known, and deeply entrenched in tooling, libraries, and hiring.
Developer Experience and Hooks
- Fans highlight React’s mental model: components as functions, unidirectional data flow, JSX as “JS with HTML” and strong tooling (lint rules, fast refresh, compiler).
- Critics point to hooks and the “rules of hooks” as a leaky abstraction: dependency arrays, stale closures, misuse of
useEffect, and the need to think constantly about re‑renders and memoization. - Some say class components had more footguns; others feel hooks merely reshaped the same lifecycle problems and made state harder to reason about.
Performance, Complexity, and Overuse
- Many note that for most apps React’s virtual DOM overhead is not the bottleneck; slow sites are usually due to huge bundles, ads, tracking, and poor architecture.
- Others counter that React’s default re‑render model makes it too easy to ship sluggish UIs, especially on low‑end devices, and that newer “signals”-based systems (Svelte, Solid, Vue 3, etc.) avoid this.
- Several complain React is routinely applied to simple sites that could be plain HTML, server‑rendered pages, or light sprinkles of JS.
Alternatives and Innovation
- Vue is frequently cited as matching or exceeding React on DX, performance (especially with upcoming Vapor mode), and ecosystem while feeling closer to HTML.
- Svelte, Solid, Qwik and others are praised for compiling away framework overhead and offering fine‑grained reactivity, but struggle against React’s network effects.
- HTMX, LiveView‑style approaches, and Web Components are mentioned as ways to avoid SPA complexity entirely or to build framework‑agnostic components.
Ecosystem, Hiring, and LLMs
- React’s real moat is ecosystem and labor: easier hiring, many mature UI libraries, and strong LLM support that tends to emit React by default.
- Some see this as healthy “boring tech”; others worry a React monoculture suppresses experimentation and keeps teams from evaluating better‑fit tools.