The self-fulfilling prophecy of React
I couldn't disagree more.<p>What all these React spinoffs seem to be doing is unlearning the lessons encoded in the React architecture and replacing them with more magic by "helpfully" applying state changes immediately instead of in a controlled fashion. But this is going to create mixtures of old and new state, which creates subtle bugs down the line.<p>Discussions about VDOM also seem mostly pointless because it is clear to me most people's mental model of how React renders is flat out wrong. If you are redundantly touching the DOM, that means you haven't memoized your components, or you are needlessly making copies of the same state. All of these have far bigger performance implications. In fact, even without memo(...), React renders can halt early.<p>Quoting from the Use.GPU/Live docs, which is a true React extension with the same semantics:<p>"If a component renders the exact same JSX object as before, React will not re-render that child, even if the child is not memoized.<p>So there is a hidden semantic in React: when you construct a JSX expression anew, you are requesting that those children be re-rendered unless memoized. But if you reuse a JSX expression from before, you are implicitly giving permission to ignore any unchanged children."<p>This is crucial to understand when stacking context providers.<p>I don't get the sense that React derivatives have been used to build e.g. desktop-class apps. They mostly seem optimized for web sites.<p>While it is true that React does a lot of things at run-time instead of build time, this is necessary for building truly data driven apps. JSX is really Lisp quoting in disguise. If you can't recognize this, you should probably brush up on the fundamentals.