Now, all its competitors (Vue, Flutter, Svelte, Solid) look very React-like to me. A few minor improvements in some areas but nothing groundbreakingly different.
Elm is different but remained niche and obviously too exotic for mainstream. There's something about the pure-functional approach that doesn't sit well with most people.
* Browser tech evolves to not need it (WebASM and similar tech becomes mainstream)
* Browsers and the open web fail in favor of some other cross-platform standard emerging
* Browsers and the open web fail because an existing platform (like MacOS/iOS) reach 70% or greater marketshare with lower costs of development than the web.
Right now, none of these seems feasible, so I believe React will endure. I can't see any of the other JS frameworks having a strong and compelling reason to take it down. The only risks are more of a fundamental change.
https://www.npmtrends.com/@angular/core-vs-angular-vs-react-...
Thanks for the link
A bank can fail and then you can't get money out of your checking account.
React might decline in popularity compared to a new alternative, or Facebook might decide to stop maintaining it -- but unless it gets deleted from npm life will go on.
In the real world a sudden loss of support from a big company like Facebook for dev tools is unlikely. Even Google still supports Angular (tongue in cheek)
And some companies take it as a known. For example companies who use Elm in production, probably at some level know they might have to tinker with the compiler if the founding team which is quite small (compared to other frameworks) gets hit by that so called bus.
I don't like many of things people build in React because (like Docker) it (1) doesn't subtract any complexity, but (2) lets people go further than they otherwise would without discipline.
For instance many React apps have multiple widget sets, some of which duplicate very simple functionality, but some of which do really amazing things. Some of them are customizable with CSS (but in different ways) other use toolkits like Emotion that require a lot of conceptual knowledge to master. Either way you have to know CSS and Emotion and the specifics of how they are used in all the widget sets used in your app to be in control.
What gets me is that React/MobX and Vue haven't had much market penetration whereas they come pretty close to solving the problem of "how to update the view when the model changes" systematically. That problem is a bear, however, in any GUI framework, many times so when asynchronous comm is the only kind of comm you have.
Or is it to invested in and spread across the industry that it can't fail. Similar to Java/Spring.