Web development will move to reactivity one amazing tool at a time.
More
#Angular devs should give
#React a try. Angular is headed in a MUCH better direction than React is, imo, but that is partly because they are taking inspiration from other frameworks.
The vast majority of garbage code in web apps is large components whose parts are tied together with imperative code.
React gets the 2 most important things more right than any other framework:
## 1. Frictionless Component Creation
Sections of code can be split into child components almost as easily as thinking about it:
## 2. Minimal, Declarative Derived State
Synchronously derived state can be expressed as if JavaScript were a reactive language.
## Optimizing for Hello World
These are amazing examples, but sharing state, scaling with complexity, and maintaining performance along the way are all painful in React.
But React developers are aware of these pains because they see clear examples of how nice code can be. The contrast between painless simple code and painful complex code is very high.
The simple code engrains a mindset for small, composable pieces of code, and for declarative derived state, which prepares them for the next level of reactivity. This is part of why React Query grew so quickly. It allowed React devs to code simple async state in the same style they had been coding simple sync state. It was easy for them to see the benefits.
## Trading for Scalable Reactivity
But once the reactive mindset firmly sets in, devs are willing to trade off a tiny amount of syntactic sugar for MUCH greater flexibility, scalability and performance.
Most of
#SolidJS' biggest fans are React developers:
Not quite as nice, is it? But developers who understand reactivity love it.
This is how I see reactivity spreading up the layers of web applications. Rather than a completely novel, 100% reactive framework like CycleJS, I see developers adopting a single, simple, extremely convenient tool for each incremental layer of complexity. Developers fall in love with the "Hello World"-like demos, the reactive mindset seeps deeper into their brains, and then they get ambushed when the tool explodes in their faces at the next level of complexity. Then, someone creates the next great tool.
This process is probably for the better. RxJS is more general than TanStack Query, but it is mediocre for HTTP requests, which is where the vast majority of asynchronous data comes from. Seems like more focus should have been given to it, doesn't it? And maybe it's currently more important overall to figure out this SSR stuff everyone seems to be struggling with.
## StateAdapt
As for me, I like living somewhere in the middle. I do love promoting simple tools that nudge developers towards reactivity, like Angular Query. That's more appealing to me than the pure idealism of something like CycleJS, which, however good it is, is a hard sell for most developers who have to use a major framework. But I've found that StateAdapt is right in the sweet spot: reactive enough to be exciting (about 90%), and yet easy to adopt within existing frameworks.