Which should I learn – Angular 2 or React?

Angular 2 is becoming more and more popular with developers. On the other hand, React is a tool just about any front-end guy and gal is familiar with. Out of the many front-end frameworks available on the market, these two seem to be the most popular. Though, the question is, which one is better?

Of course, we won’t answer the last question. Each of these two frameworks is a result of years of contributions by many experienced developers. Their advantages and disadvantages may very often come down to personal preferences and the needs of a specific project. This article doesn’t aspire to be yet another giants-battle-it-out comparison. Instead, we would like it to serve as a guide for programmers who can’t make up their mind as to which one to choose and why.

Key differences

At first glance, it may seem that choosing between Angular 2 and React is hardly an apple-to-oranges comparison. But when you dig a bit deeper, it becomes obvious that these are two completely different technologies and philosophies. Angular is nothing short of a comprehensive MVC framework that has all the tools necessary to develop a giant, enterprise-level application in accordance with the best practices of programming. On the other hand we have React – a collection of libraries that help you manage views and don’t aim to limit your freedom.

The official Angular 2 website has a full documentation and plenty of tutorials to get you started

Angular is an enormous framework. To the dismay of many, it is well-reflected in its size. At the same time, React ranks among the lightest on the market.

Name Size
React 0.14.5 + React DOM 133K
React 0.14.5 + React DOM + Redux 139K
Angular 1.4.5 143K
Ember 2.2.0 435K
Ember 1.13.8 486K
Angular 2 566K
Angular 2 + Rx 766K

When compared to Angular, React comes across as a light tool that is just perfect for designing single page apps and code maintenance. Angular may save you quite a bit of time when your task is to build an enterprise-level application as it has many handy, scalable, out-of-the-box solutions. Of course, there is nothing you can’t build with either one of the two frameworks. However, the time necessary to complete the task may differ significantly.

Visit the official page of React for documentation, tutorial, blog and support forum

Job market

Since Angular 2 is still a very young technology, it’s hard to find any reliable statistics on its strength in the job market. As React has been around for about three years, there are a lot of companies that have built their stack around this framework. It’s worth noting that Angular 1 still remains an extremely popular solution with employers. Do you want to acquire the most marketable skill at this moment? Pick React. However, if you can afford to be patient, Angular 2 might soon become the technology of the future.

Barriers to entry

This one may be the single most important thing to consider. Regardless of how powerful a framework is, for you what really matters is how quickly you can start selling your skills. And that’s where React truly excels.

In just a few years, React became a mature tool supported by a large community. Due to the fact that it’s perfect for small projects, not overly complicated and very universal, it is a natural tool of choice for many individuals that have only begun their front-end career. As for Angular 2, there is a common consensus among those who choose to learn it – it’s a tough nut to crack. What’s more, one must also keep in mind that Angular 2 is still going through many changes. Version to version, there are many modifications and it’s probably not going to change any time soon.

Have you used the older version of ReactJS?

If you have, you need to decide whether you want to deepen your knowledge of React, or learn something completely new instead. The new version of ReactJS is more of an evolution than a revolution. Even though quite a lot of things have changed in the most recent time, you shouldn’t have much trouble learning it. Going with Angular 2 will require you to learn almost entirely from scratch.

Have you used the older version of Angular?

If you are planning to choose Angular 2 simply on account of the fact that you used the previous version, we’ve got bad news for you – the difference between Angular 1 and Angular 2 is about as big as between two completely unrelated frameworks. Much like a ReactJS user going with Angular, you will need to learn a myriad of new things as the workflow of the new Angular has been completely revamped with few similarities remaining. It’s one of the biggest disadvantages of this framework according to a lot of Angular programmers. Unfortunately, self-improvement may at times be quite costly.

Do you believe that JavaScript is too forgiving?

If you do, Angular 2 may have been made just for you. It has full support for TypeScript to prevent the loose typing of variables and has a wide range of tools to facilitate the use of this language. It really does come in handy in big projects when each mistake a programmer can make may prove very costly.

TypeScript is the language of choice for Angular development

However, if you are one of those that loves the freedom JavaScript offers, you may find it reassuring that ReactJS will not try to limit it in any way. It’s up to you how you will want to structure your app. Regardless of anything, you will be able to make full use of JSX, ES6 and a whole lot of useful libraries that power React. And if you don’t want to use a framework as complex as Angular 2, but enjoy TypeScript anyway, you can still use it in React.

To sum it up

Since it probably won’t take much time to learn the basics of ReactJS, it’s worth giving it a go. Angular 2 will prove more challenging. But it’s also definitely worthwhile to check out this framework before it becomes really popular. For budding front-end specialists, React is in our opinion the recommended way to go. However, if you decide to invest your time in Angular 2, you may be well on your way to acquire a skill that will prove extremely marketable in the future.

Michał, PHP Developer at Polcode