Angular2/React — The Solution For You

Stephen Grider
Mar 8, 2017 · 3 min read

One of the most common questions I get: Should I use/learn/master/commit to/etc Angular 2 or React?

Rather than rewrite my answer for the 40th time, here are my thoughts in long form.

Angular2/React

These two libraries are far more similar to each other than D3. There are a many other threads on Quora discussing the pros and cons of each library, but a brief reiteration will do: Angular2 is a full-service framework. It has tools for fetching data, processing it, displaying it on the screen, then handling user input (like clicks or keypresses) in an intelligent fashion. I mostly see Angular2 used with larger companies and certainly with enterprise products, where the engineers might be more familiar with statically typed languages, and so get along fantastically with Typescript, which is commonly used with Angular2. That last bit is my personal opinion :)

React takes a slightly different approach, famously being referred to as only a view layer, or a bunch of code that is responsible for producing HTML for a user to view and interact with. No built in data fetching tools, no built in data processing tools, etc.

Which should you learn?

What’s the most common question about React vs Angular2? Whats the easier one to learn? That a complicated question with absolutely no easy question. First, understand that you can essentially build identical applications with either tool. One is not necessarily better than the other for building any particular application. There are some big points to keep in mind with each, however.

Stability

  • React is in use for 100% of Instagram and vast majorities of Facebook. You will not see a major API upset in React, ever. Facebook controls the library, and you can bet that they do not want to commit to updating their entire codebase in some nontrivial way if they can help it.
  • Angular2 continues to (famously) not be used in many (any?) production systems at Google. The Angular1 -> Angular2 transition brought tremendous, huge breaking changes to the Angular API. I would expect to see similar events in the future.

Ease of Learning

  • React is absolutely, positively easier to get started with. Objectively so. You know HTML? Great, you understand JSX. You know basic Javascript? Great, you know basic list building and event handling. The most (and only) complicated systems are understanding the differences between ‘props’ and ‘state’. However…you don’t use React by itself in the vast majority of applications. You layer on React Router, Redux, Reselect, Normalizr, Redux Thunk, Redux Promise, and several other libraries just to get a working app. Each of these helper libraries certainly have purity of purpose and are relatively easy to understand, but figuring out which ones you need is a nightmare. It’s not fun.
  • Angular2 encourages you to build applications in the Angular Way. There is a tremendous number of shortcuts, features, and terms involved with building an Angular2 application. Getting familiar with the framework is certainly more complicated from the get-go, but it does pay off in the end, as you will usually not need to reach for some off-the-shelf parts just to be able to fetch some data. In addition, this helps reduce fragmentation in the framework. While two React developers might be experts in radically different supporting libraries, two Angular developers are much more likely to be on equal footing.

If you are interested in learning React, do check out https://www.udemy.com/react-redux/?couponCode=QROUTE10, scientifically proven to the be the best introduction to React online.