Facebook's React Native framework is hot. The question is, for how long? After all, while Facebook-born React is smoking, it wasn’t very long ago that Google-spawned AngularJS had the web world all a’flutter.
On the one hand, this speaks to the furious pace of innovation in web-land. But on the other, it suggests that picking a corporate standard for developing web applications is tricky at best, and fraught with peril at worst.
In fact, it’s hardly started.
Just measuring search trends, it’s not hard to see the industry’s progression from SproutCore to Backbone to EmberJS.
But it’s not just search interest that reveals this shift. By looking into Indeed.com job postings, we see the same effect: SproutCore was dominant first, then giving way to BackboneJS which, in turn, ceded ground to EmberJS.
React Native has yet to impact the number of jobs offered in a big way... yet. But that’s likely to change, and soon, as Hacker News job posts reveal. These tend to cover the start-ups and, hence, the cutting edge of development.
Most companies, however, don’t want to be on the cutting edge. Not big enterprises, anyway. So how should they respond to web frameworks’ compulsive tendency to go in and out of fashion?
As he told me: “I was in the Angular camp and jumped at the first signs of 2.0” because of backward (in)compatibility. “[I] was kind of stuck not wanting to create new 1.x projects but still waiting for 2.x.”
Some saw safety in rival frameworks like EmberJS, which has a firm policy of maintaining backward compatibility. Indeed, EmberJS co-founder Yehuda Katz told me: “We don't need to break the web….We believe it's possible to achieve stability without stagnation.”
Even more people, however, jumped onto Facebook’s new shiny framework, ReactJS/React Native. Netflix is among them, ever a bellwether for where the enterprise eventually ends up – see, for example, Amazon Web Services and public cloud adoption in general. React Native offers a powerful way to build native applications with web code.
As Mozilla developer James Long puts it:
It only takes a few minutes playing with React Native to realize the potential it has. This works. It feels like I'm developing for the web.
But I'm writing a real native app, and you seriously can't tell the difference. At the UI level, there is no difference; these are all native UIViews beautifully sliding around like normal.
This is solid engineering. And it completely reinforces the fact that React.js is the right way to build apps. I can write a native app using the same techniques as I would write web app.
This is different. This sounds very much like a no-compromise approach to web development that bleeds native. Given the distribution of web developers within any enterprise, this is worth tinkering with, if nothing else.
And there’s a lot at stake, something EmberJS co-founder Tom Dale once underlined for me. While we have .Net or Java to handle big chunks of the enterprise, Swift for programming on iOS, and so on, web programming touches everything, everywhere. In Dale’s words: “Winning the web is the whole darn world.” ®