React is hostile to the outside world
sharno.substack.com
sharno.substack.com
It never cared much about the gaps that started to develop between “the React way” and the underlying web platform and now it’s off in its own weird self contained ecosystem and doesn’t play particularly well with anything else.
It also is one of those frameworks that starts forcing you to extend the same broken abstractions further and further into the rest of your stack up into your backends and data models. That isn’t a healthy sign at all.
Could you elaborate on what assumptions are no longer true?
Similar argument on things like their synthetic events approach where you now have to pay a runtime cost now to just implement something in a worse fashion and much slower language that the browser already provides for you.
Because react fixed those by showing the web frontend world that reactive UIs are easier to reason about, and showed how to implement those in a natural way.
I remember writing a WoW talent calculator in jquery. Took me a month. I could write the same thing in react today in a few hours.
Furthermore compared to more modern takes on the problem and the evolution of the platform itself it’s probably not what you should be stating projects with these days without a good reason (I.e it’s no longer an obvious default choice)
Yes it has tradeoffs. It is aimed at engineers. It assumes you know what you are doing in the way you model state, in the way you treat data.
Overall a very poor article, was this brigaded to the front page?
I've heard of Svelte but the only remarkable thing I hear about it is code-splitting, but I already have that together with live reloading and precise redefinition in modules when I use ClojureScript and React. So I don't know what I gain by changing tooling here. I guess it'd be nice to finally get a taste of what its like to not use Google Closure Compiler... but I do not want ever want to hard refresh a page or lose state simply because I changed the definition of a single variable.
Interfacing with imperative libraries in React can be a bit daunting at first. But that is kind of an unavoidable problem unless you want to make everything imperative again.
React has flaws. Performance isn’t really one of them. When you have hot paths in your app, you will/should be looking at those like an engineer looks at the high stress points in the item they just designed: extra work that covers those exact points.
The example you gave is weird. Comparing lists and strings in a setter is fine for most of reacts use cases even if its performance could be better, because it isn’t slow. It’s only slow when you hold it up against, say, comparing numbers, but the reality is your bottleneck will be elsewhere, such as in web requests or some such.
And if you’re writing anything beyond a small component anyway you’d be using ids in your scenario. Especially if you’re writing a library.
This is the article for you.