Following are the factors to be considered, from a broad perspective:
As of today, React is seen to be growing highly in popularity, and is trending in the application development scenario. Of course, this is subject to region-wise splits and Angular is still the most prevalent and highly used in many geographical locations including several regions in India.
The graph shows the trend of Angular in the past five years since 2011. As can be seen, Angular is highly popular in India and Israel.
As can be seen with React, the popularity has risen drastically over the last couple of years since 2013.
React is trending globally with countries like US, Australia and Canada. The main regions it is highly trending are Bengaluru, Telengana in India, Melbourne in Australia, Utah in United States and St Petersberg in Russia.
As in the job market:
While React is trending currently, it is obviously difficult to procure experienced React developers of more than around a year. Being a relatively new and recent trend, React developers might be fresh to the world of Javasript.
Angular shall never face that problem and since most of the Angular developers will be upgrading their knowledge to Angular2, procuring experienced developers of around 3 years would not be difficult at all (even though Angular2 is almost entirely different from its previous version).
This also means that it is easier for a fresher or newbie to break in to the React market than Angular.
Time period and ease of acquiring proficiency:
It is well established that Angular is a robust and extensive framework. It is an extremely efficient framework for the development of applications, especially with large-scale applications involving several members in the development. Therefore the learning is quite steep. There are multiple APIs to be learnt and understood in order to exploit all the features of Angular into developing a state-of-the-art application. It is also quite rigid in its terms of usage, which means that Angular usually provides a ‘one way’ of doing things. This results in fairly lesser encounters with decision-making situations (which could be seen as both a pro and a con).
React, on the other hand, is most suitable for single developer or lean team applications. React requires many informed decisions to be made at several points during development and therefore the learning can be more rewarding in the long run. It forces a more thorough understanding of architectural and design patterns, which is good for the holistic growth of a developer, and also allows to create high performance applications, since it is the core concept of React.
Knowledge transference and scalability:
Angular, as mentioned above, has its own way of carrying on with the development of applications and many of the custom abstractions are specific to the framework. Not only is the learning more, but also not applicable elsewhere other than in Angular. Such knowledge pertains to the framework and cannot be reused in other frameworks. React is more component driven, and also has some of its roots strongly based in the concepts of Functional Programming. It can be used with any framework of choice including Angular.
While Angular, as is quite popular, is a framework, React is not one. Angular provides a structure, albeit a little restrictive, for building strong, up-to-date cross-browser, cross-platform web applications. The restrictive nature of Angular insists that applications be built only in ways dictated by Angular, and hence there are a few hitches to it. By providing all that is needed to build modern web applications, Angular restricts developers within its framework and breaking its rules only results in not-so-efficient, hackable code.
It is certainly more rewarding, if not easier, to learn React provided it satisfies the necessities considering the above points of comparison.
Please share your thoughts in the “Comments” section.