Angular vs. React vs. Vue
14 Jul 2019
Frameworks: Comparing
Angular, React, and Vue
Angular, React and Vue are at the moment of typing currently the biggest and most popular javascript frameworks for web development. What are the differences between them?
Popularity Overview
Usage
Among Angular, React and Vue, the most used ones are Angular and React. According to the 2019 Stackoverflow yearly developer survey, 32.3% of all professional respondents said they used React, 32.4% were using Angular/Angular.js, and 15.5% were using Vue.js.
Compared to last year’s results, the numbers were: Angular 37.6%, React 28.3% and Vue was not even on the chart.
Community Likes
Another popularity measurement is the number of GitHub stars each project has collected from the community. The following graph depicts the number of GitHub stars given to each project over time.
Angular is having a steady increase, while React and Vue have quickly surpassed Angular in terms of stars.
Vue especially seems to be gaining in popularity really fast. What’s notable is that even though Vue apparently is not used as much as React and Angular (according to the Stackoverflow survey 2019), it has even more stars than React on GitHub. That together with its reputation for being easy to get started with should point to it becoming increasingly more used over the coming years.
Job Opportunities
Developers specializing in Angular and React have access to plenty of high-paying job opportunities. The demand for Vue developers is yet nowhere near the high demand of Angular and React skills.
For a simple and quick glance at how things are in 2019, I did a search on Linkedin for jobs tagged with Angular, React or Vue in the regions USA, UK, Germany, Sweden, and France respectively.
(For a more detailed view of statistics, see a roundup of job postings in 2018.)
The data in table format:
France | Germany | Sweden | UK + Northern Ireland | USA | |
Angular | 9000 | 6000 | 639 | 9000 | 36000 |
React | 7000 | 5000 | 1000 | 16000 | 70000 |
Vue | 1000 | 1000 | 223 | 2000 | 3000 |
License
All 3 frameworks are at the moment licensed under the MIT License, which means it is allowed to use them both privately and commercially, as well as modify and distribute the code.
In the Summer of 2017, Facebook which is the company behind React ran into some problems with their current license. It began when large organizations Apache and WordPress said they would not continue using React unless the project’s current custom license was changed.
At this time, developers and companies started discussing alternatives to the framework. However, in September 2017, Facebook backed down and changed to the MIT License.
Even though all three frameworks now have the same license, one might speculate in if the popularity of Vue among large Chinese tech companies (Alibaba, Baidu, Tencent) is due to the fact that it is separate from any large western business.
Angular (2) – Mature and Professional
Developed by Google and first released as AngularJS in 2010. In 2016 a significantly updated version called Angular 2 (or just “Angular”) was released.
Because it is the first large framework, it has had the time to attract more users as well as more developers. Angular is typically used by large corporations where its opinionated and standardized ways can be used to maintain order in large projects and codebases.
Becoming an Angular developer also requires learning TypeScript. The learning curve for the framework is described as rather steep, even though there are always individuals claiming it is easy (if you are as smart as them, or possibly a “real” developer).
Recommended for: companies with large teams and developers who already know TypeScript. Also recommended for those who want a job at a large company.
React – Flexible and JS Focused
Developed by Facebook and first released in 2013. Apart from Facebook, used by well-known companies like Uber, Airbnb, and Netflix.
React is a lot less opinionated than Angular, and developers are left with more freedom to structure and carry out their projects. There are a lot of options in the form of plugins and extra packages offering pre-built specific features. The drawback being difficulties to make sure the packages are properly built, maintained and supported in the future.
An important part of React is the strong focus on JavaScript. In React, JavaScript is used to control and mix HTML and CSS on a new level. To help with outputting HTML through JS, developers can if they so choose use JSX, a templating language in their JavaScript React code.
Recommended for: those that need a lot of flexibility and prefer using JavaScript for as much as possible of the development. Also recommended for those who want to improve their job opportunities since React is very popular at the moment.
Vue – the Popular Newcomer
Developed by ex-Google employee Evan You (who previously worked on developing Angular), released in 2014. Instead of being backed by and developed for the needs of a large company, Vue.js is an open-source project funded by donations.
Well-known brands and companies using Vue are apart from previously mentioned Alibaba, also Adobe (Portfolio) and Behance. Laravel, the popular PHP framework, has also embraced Vue.
Compared to the other two frameworks, Vue.js is generally perceived as easier to learn. As a result of being easier to learn, more developers are picking it up, and companies realize the cost benefits of having to spend less on in-house education.
On the other hand, Vue.js has a much smaller market share than Angular and React, which means that it is more difficult to search for answers when you run into problems. At the moment it is also much more difficult to find a job focusing on vue.js development, but with the rising popularity of the framework that may very well change in a not so distant future.
JavaScript, HTML, and CSS are being kept separately adhering to the traditional principle of separation of concerns.
Recommended for: those who want a framework with no ties to any large organization. Also recommended for those who think separations of concerns is beneficial, as well as those who have a limited time to learn a new framework.
Up-and-Coming
These are the most popular frameworks right now, but new ones are still frequently being released (as well as old ones are getting abandoned or depreciated).
One to keep an eye on is Svelte, a newer framework that has been received well by the community. It’s most interesting feature is the fact that it claims to not add any extra weight to a website where it is used – the framework code transforms in the build process to be fully integrated within the app.
Note:
For some reason, people tend to get really worked up about which framework is the “best”. Discussions rarely proceed without someone shouting “X is best, all others suck and are for stupid noobs!”.
Another frequent comment in this type of discussion is “X is not a framework, it’s a library”.
When entering a framework discussion: Keep calm and remember that a framework (no matter how awesome) might be a library, but never a sports team.