Things you're sacrificing when going away from React:
1. Stability. FB uses it for their main product, which is probably the biggest web app of them all, they pay many devs to work fulltime on it. People coming from Angular, who had to migrate all those breaking changes over the years know the struggle.
2. Options like React-Native, React-VR and co. React enables your devs to acquire a whole new range of possibilities. It isn't just a web framework.
GWT was first released 11 years ago, the most recent update was less than a month ago. If that's not an example of future-proof (for web technologies) I don't know what is.
Whether it's kept up with the state of the art I don't know, but I think that's a different thing.
I was referring to http://www.gwtproject.org/release-notes.html - e.g. the release hole that happened between 2.7.0 and 2.8.0 (2 years). Some clients actually decided to stop using GWT at that time, because of that.
Three20 was made obsolete by the useful parts of it getting built into the platform SDK, and yet it was still maintained and kept in a working state for longer than it was ever actually useful.
I know that - but the fact is that for one client of mine, the app was initially build on three20, then they had to literally rebuild it from scratch as they realised that three20 was becoming obsolete.
One of the reasons for the choice was the FB branding associated as something that can be trusted!
Just because Facebook is big and supports something isn't necessarily a good thing. Their goals, resources and accepted trade-offs aren't likely the same as your own. For a large company like Facebook, handling large changes to a library aren't a concern because they have essentially limitless development resources. For small operations like mine (and maybe yours) these breaking changes can reduce the time you spend actually improving your product significantly.
For me, the instability and unopinionated nature of the group of technologies that loosely define "React" have been a real turn off. When answers to questions like "What language should you program in?", "How should you store your data?" and "How should I handle routing between pages?" all have no specific answer, it leads to a fragmentation of knowledge that in my past experience usually leads to a technology's demise.
React has some of the best migration policies I've seen. They give plenty of notice about upcoming breaking changes, including messages with pointers output by the library in development mode when code is used in a deprecated way. As well, since there are so many people using React, you can nearly always find a solution to a even obscure problems.
I agree about the un-opinionated nature, though the resulting flexibility has led to some good options, they can be complicated to choose and wire together.
It's difficult to convert a React web app into a React Native app, but you can use many React Native components on the web (via react-native-web. [1]) In other words, you can't run a web app on mobile, but you can run a mobile app on the web.
I just launched a little game that I built with React Native [2], where I have a single codebase that supports iOS, Android, Windows, and web.
It's less about code reuse across a full featured web application and a mobile application. The value comes in that once you master React or React Native, you can easily switch across platforms and be just as efficient. If you learn the ins and outs of Vue and gain depth of best practices / domain knowledge, you are stuck building only for the web.
If you do the same with React, you are then able to take those skills and build VR, Web, iOS, Android, Windows, and soon TVOS ++ many more in the future.
This, along with what has already been stated, is the value of using React vs Vue imo.
I don't see an issue of learning Vue and not being able to write native apps for iOS and Android as a valid one.
Weex quickly gets better and is maintained by Alibaba, a company of the same scale and with development resources comparable to Facebook or Google. NativeScript recently started work on Vue port, the project is already available for testing. That's excluding the Cordova solutions like Onsen and Framework 7 having official Vue ports.
To that, PWA slowly becomes the new trend for mobile development, native apps are not necessarily the optimal solution to every use case.
The "++ many more in the future" is an optimistic assumption. As much as I wish it to be fulfilled, same can be said about any other framework.
the hearsay is that if you used only components that are available for both, it'd take very little extra boiler plate to get it working on both native and web. But all non-trivial apps have their own components and that's what makes native difficult.
This really isn't the case. I have built apps with lots of code reuse on native and web.
Abstract all data logic and you can use the exact same code for both apps. This of course does not include your view layer. If you do it correctly, all you have to do is make a new set of view components. Stateless ones. Because you are injecting the state from your non platform specific components.
It makes it extremely fast to build for other platforms. It just takes a few apps to fully understand how to abstract these things perfectly.
This is not really true, the react-native-web project provides compatibility for all of the fundamental components that you need, such as View, Image, ScrollView, TouchableOpacity, etc.
There are still some missing components [1], but nothing I really needed (or couldn't work around).
If you stick to using `react-native-web` components to design your web UI then your app is likely compatible with React Native and can be run as a mobile app in addition to deployed as a web site.
Do you remember when the first iPhone was released and one of its main marketing points was that it could browse the REAL web? ... Nowadays we are crippling the real web (or at least it's design) so we can have a version for small screens. Oh the irony :(
Nobody. But the fact that they use it now makes it less likely to be abandoned by them that something they don't use (which, while they can't abandon, they haven't adopted either).
Besides in 10 years the whole of IT changes. Don't look for "50 year frameworks".
I honestly don't know, but using it 1. for their main product 2. for many different products in general and 3. rewriting most it (v16) to be more future proof without public API changes sounds like a pretty save bet.
1. Stability. FB uses it for their main product, which is probably the biggest web app of them all, they pay many devs to work fulltime on it. People coming from Angular, who had to migrate all those breaking changes over the years know the struggle.
2. Options like React-Native, React-VR and co. React enables your devs to acquire a whole new range of possibilities. It isn't just a web framework.