What is React?

And how can I explain it to my boss?

You might also like

The gist

React is a tool that helps us make Web Applications. So let's start with that -- What is a Web Application?

Where did the idea of Web Applications come from?

From 2005 to 2010, you may have noticed that websites got a lot more advanced. They became much more than just places to read information. With some, you could actually do things. Social Media platforms started popping up, you could look at interactive maps in the browser, and you could even to spreadsheets and word processing with tools like Google Drive (formerly Google Docs).

As Web Developers, we started to use terminology to distinguish between traditional "websites" and these much more advanced sites. We started calling the more advanced ones "Web Applications" because they reminded us of the scale, effort, and technology practices that goes into traditional software applications that you would install on your computer. But a Web Application doesn't need to be installed, it just runs in the browser. In a sense, a Web Application is just a website, but it's technology is far more advanced and the effort to make one is much greater. For example, facebook.com is a Web Application, so is twitter.com, netflix.com and even your bank has a Web Application. Sometimes the lines between "websites and web applications" is a little blurry. For example, if you went to netflix.com, you're going to be looking at their marketing website that tries to show off their product and get you to sign up. But once you signup and login, you're now looking at their Web Application. For the most part, this distinction is not something average consumers talk about, they're terms that web developers use.

It's also important to distinguish that a Web Application is not the same thing as a Native Application. When you log into netflix.com you're in the browser, so this is a Web Application. But Netflix also has a downloadable app for your phone or computer that you install. That is their "Native" Application.

So where does React come in?

In the 2010-2013 time period, Facebook was one of the leaders in the efforts to make their website more "app like". Facebook was pushing the envelope to create a super rich interactive experience for their users. At the time, existing technologies were insufficient for achieving their goals so they made their own technology which would eventually be called React.

React is free to use

Even though Facebook created React for themselves originally, they "open sourced" it in 2013. This just means that they made it available for everyone in the world to use and developers can even read all its source code to see how it's built. They also made the license for it free.

So what does Facebook get out of it? Out of all the developers and companies who use React, we find fixes to make it better and help improve it as we use it ourselves. Then Facebook gets to use those improvements too, so it's a win-win.

This can matter sometimes because if you're trying to grow your team, just know there are lots of developers out there interested in doing React.

Who's using React?

Lots of companies are using React. From banks to airlines, universities, and governments to startups and even giant tech companies like Google, Apple, Netflix, AirBnB, PayPal, IBM, Microsoft, AT&T, and many more. React has risen to be the preferred tool for building Web Applications by many.

Is React easy to learn?

This is a little more subjective. Remember, Web Applications exist in the browser. As it turns out, browsers support one programming language which is JavaScript. Unlike "server-side programming" where developers can build server software with many choices of languages, in the browser we can only do JavaScript (or what we call "client-side programming"). React itself is JavaScript. React is a JavaScript library which just means it's a bunch of JavaScript code already made for you. So "React" is just a brand name for this pre-packaged JavaScript code that helps developers. Think of libraries like React as being like a "head start". One could build a Web Application from plain JavaScript, or they could use a head start to be more efficient.

Therefore, React being easy to learn or not depends on how well someone already knows how to program and specifically how to program in JavaScript. Even then, it's still fairly subjective since programmers tend to prefer various programming techniques over others and all libraries are opinionated on how they do things. The good news is, as far as programming languages are concerned, JavaScript is fairly easy to get started with.

Need to explain React to someone?

Please send them to this page. Or if you want to explain React to someone, perhaps a good analogy works...

Imagine building a house. You need materials and tools right? So you go down and buy them at the store. Even though you'd say you're building the house from scratch, It's not like you have to make your own hammers and nails, or even chop down trees to make your own lumber. The tools and materials you would get from the store are so general that they allow you to make almost anything, and they give you a big head start.

This is just like React. Instead of building a Web Application from scratch, you can use tools like React to give you a big head-start. And just as with the analogy about tools for houses, web tools have evolved over time and React is seen by many as the best and most modern tool for the job.

This "head start" idea in programming is nothing new. We generally call these head starts either "libraries" or "frameworks". There have been lots of JavaScript libraries and frameworks that have all tried to help developers create Web Apps. But React was novel because it did things in a new and innovative way. Here are just some of the companies using React and have asked us to help train their teams:

GoogleAppleNetflixPayPalSlackAdobeWalmartGitHubMicrosoftPixarStarbucksVisaIBMYahooMozillaAtlassianCode CademyAT&TSurvey MonkeyUberVerizonAirbnbIndeedLegoThe Washington PostOraclePandoraAmerican ExpressPinterestAllstateSalesforceDockyardHouzzWayfairSamsungStapleseHarmonyForbesGeneral ElectricGo DaddyZillowGrubhubHarvard UniversityUniversity of MarylandCiscoCitrixADPHiltonHPHPEIntuitKPMGMass MutualMatch.comNew York TimesCapital OneSiemensAskNew York UniversityAvvoBazaar VoiceShutterstockCoinbaseCredit KarmaOk CupidCondé NastRedfinSAP ConcurExpress ScriptsTumblrUC DavisBettermentUniversity of MichiganKneat SolutionsCollege BoardBAE SystemsMinitabARI Fleet