Every 8-10 years or so, a new technology/approach hits the web that fundamentally improves what we can do as developers. In 2005 the term “Ajax” first appeared, followed by jQuery in 2006. In 2014, Facebook made its React framework publicly available for web development, and earlier this year released versions targeting native mobile development. It’s starting to feel like this might be one of these big paradigm shifts as early Facebook React reviews have been incredibly positive…
Facebook React combines a bunch of attributes, most of which have been in some form of usage in various other frameworks like AngularJS, and takes them to the next level to drive real benefits for developers vs. frameworks like AngularJS. The result is the first real leap in web development in almost a decade.
So what problems was React trying to solve, and how does it do it?
As you might imagine, Facebook’s massive development team faced the challenge of keeping thousands of developers and millions of lines of code in sync. Changes to data in one place would cascade into all sorts of unforeseen data changes in other places, causing rework, QA nightmares, and the occasional shipping of unstable features. But React forces developers to break applications into discrete components, each representing just one view. This makes work and collaboration much easier as no one has to keep the entire system in their head. Even more critical is that React abstracts the DOM and simplifies the programming model, including debugging which makes everything much more predictable, and allows development teams to iterate quickly and ship reliable applications.
So what does this get us and what are the benefits of Facebook React? An ability to scale applications faster, and (very importantly) the ability to scale teams themselves much more effectively. It also becomes much easier to share great code among applications – “…Wow, that’s a great slider, I can use it here too!”
Ultimately, our evaluation confirms the leap here is towards faster, more reliable development, for web and perhaps soon with native applications. The bottom line? Faster (i.e. less expensive) deployments that are more reliable. Sounds like the holy grail of development – and we’re very skeptical of most new frameworks – but after some deep testing, our team is convinced. So much so, that almost every new web project we take on will be on the React framework.