Read it in 9 Mins
Is by Doing
It was 1999 and the Internet was all about the squeaks and scratches of a dial-up modem. Back then, the world wide web was simple. You visit a website, you’d get a page, you’d read it in full and learnt something new. On the other hand, software was something that came on a disk and had to be installed on your computer.
Fast forward to today, and the concept of locally installed software is diminishing by the day. In its place, are rich desktop- like applications that run in a web browser such as Chrome. Who would’ve thought, the document flavoured internet of yesteryears would become a rich and interactive playground that is nothing short of a stellar experience? But here we are, with all our files, presentations, documents and virtually every facet of personal and professional lives sitting high up in the cloud, available everywhere, anywhere and anytime. There are even photoshop clones and 3D CAD applications that work in your web browser.
The dream of building desktop class applications that do not need to be installed, isn’t new. In fact, this takes us back once again, to 1999 and a one-bedroom apartment atop Telegraph Hill in San Francisco where Marc Benioff and his colleagues created Salesforce, a CRM application that broke the mould and became the first ever Software-as-a-Service.
This means that the only time React will interact with the slow DOM is when it has to commit the final change which would be the sum total of multiple batched manipulations and changes, all of which are computed quickly in the Virtual DOM, in memory. This enables React to massively improve performance and is one of the reasons why React is used in some of the most performance heavy websites including Facebook itself. The underlying engine that delivers this performance is known as React Fiber.
Data driven architecture: What if you could focus on the data that drives the UI rather than the intricacies of DOM manipulation? Well that is what React allows you to do with its data driven architecture where data drives changes to the UI. You modify data and the UI updates for you. This is known as stateful and declarative programming and is a delight to work with. It allows you to focus on what matters most - the data that the application works with and not the wiring that drives the underlying changes to DOM. Moreover, React features a unique one-way data flow architecture which makes it a breeze to understand how data moves even in complex applications that contain several hundred components.
The amazing synthetic event system: React incorporates a unique synthetic event system that abstracts the underlying browser’s event system and provides a common and uniform API for developers to work with. As a result, you don’t have to worry about browser specific behaviours, nor do you have to worry about low level optimizations to ensure events are handled with performance. React manages all that for you.
Medium agnostic: React, the core library is not bound to a specific medium. This means that while you’d use React for building applications for the DOM i.e. your web browser, you can use React to build content for virtually any render-able medium. This is why we have the React Native project which allows you to leverage your knowledge of React for building native mobile apps for iOS and Android. And you can even write your own renderers for any specific medium or platform.
A vibrant ecosystem: React has been embraced by the open source ecosystem with such magnificence that a huge number of ecosystem tools and solutions are available that allow you to notch up your applications with advanced workflows such as a global state management, handling side effects and even complete frameworks that completely abstract all the intricacies of web application development and allow you, the developer to write React code to build complete and comprehensive applications quickly. With ecosystem solutions like React Router, Redux, Next.js, Redux Saga, React Three Fiber and several more, React is a 100% power packed solution with its own army of super hero solutions that allow you to do anything that your browser permits.
A clear and defined roadmap for the future: Unlike several other web application frameworks and libraries, React is a battle hardened solution that is used not only by Facebook but by thousands of leading enterprise organizations worldwide. Facebook has always offered a clear and defined roadmap for the evolution of React and they’ve always stood by it. This includes a stable API with very gradual deprecations which make it really easy for developers to evolve their products along with the evolution of React. A stable product means less or negligible surprises and is thus a key factor in choosing a library or framework for your next big enterprise product.