In the last decade we have seen an incremental growth in complexity of user interfaces on the web. With it, the expectations are growing, and the pressure on the front-end engineers to deliver has never been higher.
For the sake of illustration, and to bring up some nostalgic feelings, compare Twitter's interface in 2007 and in 2017. Quite a bit different, isn't it?
Thankfully, the current front-end development infrastructure is akin to historic Indus Valley - fertile and bountiful. The underlying principle of modularity only encourages the growth, promoting the creation and sharing of technology. Except for some recent blunders with patents (yes, Facebook, I'm looking at you), everything's been rather peaceful in the front-end land.
Facebook did manage to give the developers quite a scare – as, you see, they have decided to change the license of their code. The decision included React aka the-most-popular-front-end-framework-like-ever, aka the base of Facebook products, to BSD+Patents License (more about it here https://hackernoon.com/facebooks-bsd-patents-license-and-how-it-affects-you-66088e052845). They have later back-tracked out of this decision, and relicensed their product family to MIT license. But the decision did leave an unsavoury after-taste. Especially for such big players as Wordpress, who based the latest iteration of their commercial product – Wordpress.com – on React, this was a quite a blow.
And fairly so, as the development logic pioneered in React allows the developers to make their products much more efficient, scalable and – most importantly – breach the divide between client-side and server-side, basically turning their application into a Web App. Imagine that, the app, which does not require the App Store to get installed, is lean, interacts with the user in all the usual ways via the notifications, uses the native services provided by the browser, and – most importantly – is available offline.
But React doesn’t stop there – if there is the need for the native application on both iOS and Android, there is React Native. A young and promising project, bridging the divide between web and native, it has caused a stir in the developer community. The benefit is obvious – possibility to share the codebase between applications. React Native API does diverge, and has some unique features. But the majority of the components can be reused.
In fact, React infrastructure is becoming so popular, that there are now multiple courses for the curious. We have used Udacity’s React Developer Nanodegree, and couldn’t be happier with it.