I really wish something else had won.
I really wish something else had won.
But to be fair to React, it's not entirely its fault. What it did when it came out really changed the paradigm for the better, without it we wouldn't have had component-based frameworks like Vue or Svelte today. It's just that, because of being backed by Meta, it has also far outlived its usefulness and has since been far surpassed by other frameworks that learned from its mistakes, but unfortunately for whatever reason no other framework has been able to usurp it. Anecdotally at least, I've noticed that there are some pretty large and important Vue codebases out there which makes me happy, so perhaps the tide will slowly start shifting and we'll start seeing the better frameworks win out at the end of the day.
Your "simple by nature" framework with one-way binding and render-the-whole-tree-when-something-changes now means you spend more time coding (fighting) React than you do your application logic. You could have focused on improving algorithms, but nah you're stuck architecting hooks, context providers, state management, and adding libraries that cement you deep into the React hole.
I think React developers all secretly want to use Solid but they're stuck using React at work, and just chant React is the best React is the best React is the best
- infinite loop due to re-rendering on the render function (it happens every single time i come back to react) - using useEffect when not required - nested object updates (dunno if this is still an issue) - class vs whatever the name is (className?)
Overall as another comment said I feel more fighting against react pitfalls than focusing on my application's logic. That really takes a toll in productivity as part of your brain loses a small portion of 'RAM'/cognitive load as you need to make an active effort to not shoot yourself in the foot. I guess most people get used to it, but for me it just never clicks knowing there are similarly performant frameworks with way more friendly APIs.
It isn't "simply by nature" at all. I have lost so much time battling through the minutiae of the different use...() hooks, trying to figure out either why something never updates, or updates too often, or updates but the state is stale etc etc. I never run into issues like this at all with Vue. Things update simply and predictably for me.
Svelte looked pretty nice, but before I had a chance to really proficient, that codebase got re-written in Solid. Solid seemed to have the benefits of React-compatibility without so much brain-hurt.