If you are a front-end developer embarking on a new project, you are most likely deciding between Angular, React or Vue as a framework for your application. Faced with the same problem five years ago, you would most likely be contemplating Backbone vs AngularJS. In five years’ time, the landscape of front-end frameworks has largely shifted. Tools and frameworks continue to evolve at a fast pace. This means that making a framework choice has underlying implications on the longevity and maintainability of your solution.
In this blog, what I’d like to do is provide an up-to-date view of the data on how each framework is trending. I’ll unpack some of that data, then discuss some scenarios where one framework may have an edge over another based on my project experience.
Let’s take a look at some of the popular data metrics from July 2020.
GitHub Star Popularity Winner: Vue
One of the most popular ways of comparing competing projects is through the use of GitHub metrics. For July 2020, here’s a snapshot of some of that data.
By using the GitHub ‘star’ metric, Vue is winning the popularity contest. In fact, Vue is the third most starred repo on all of GitHub and React is the fourth most. These frameworks are extremely popular. Apart from stars, React wins the popularity contest in just about every other category. It’s also been around the longest, allowing it a bit of a head start. It’s worth noting that Vue is not actively maintained by a major company and relies on the open source community. Because of this, it is liable to have higher numbers for stars, forks and watchers. So, keep that in mind when comparing. In looking at these numbers, all three frameworks have high levels of activity, interest and positive growth.
<<< Start >>>
<<< End >>>
Node Package Manager download winner: React
The volume difference between React and the other frameworks is striking. It also appears to have a bit of a higher growth trajectory compared to the other two frameworks. One key aspect that could be affecting this is that React’s philosophy is to be a minimal view library, giving it the flexibility to be used in a variety of architectures including Multi Page Apps (MPA’s) and Single Page Apps (SPA’s). Because it can be used in so many ways, download numbers are likely higher compared with other end-to-end application solution frameworks. It also shows that while Vue and React compete with Git metrics, actual adoption is much higher with React. Another item to note is that as of January 2020, Vue seems to have caught up to be neck and neck with Angular.
Search popularity winner: React
Based on search terms from both Google and Stack Overflow, it appears that there is a clear hierarchy of React, followed by Angular then Vue. It’s also worth noting that some Angular results could be slightly skewed due to the naming similarity with AngularJS 1.x which is a separate framework. However, stack overflow data differentiates between AngularJS 1.x and Angular, and one can see using this data that Angular is far and way above Vue. Another factor that could be affecting this data is the complexity and depth of Angular and its documentation in comparison to Vue. Leading developers search for quick answers more often than Vue developers.
Another metric is survey data of developer sentiment. Some major developer internet properties (such as stateofjs.com and stackoverflow.com) have recently released their survey data for 2020.
Looking at this data, React is again at the top, showing that it is well loved by those who use it. Interestingly, Vue is within the top three for both surveys, while Angular has not made it into the top three for either survey. Angular is definitely the most complex and opinionated framework, and I think that developers may be becoming frustrated at the barrier to entry to use it. Another factor affecting developer sentiment could be Google’s decision to rewrite Angular 2 without making it backward compatible—possibly leaving developers frustrated at being left to support a deprecated framework.
Job market winner: React
The job market reflects a clear hierarchy of React followed by Angular then Vue by almost every site sample. It’s worth noting the different cultures of the sites sampled. They all clearly have Vue as the third-tier framework, and Angular not too far off from React. However, Monster has slightly more Angular jobs.
In summary, it looks like React is taking the front stage in the popularity contest. In my next blog, I will discuss the deciding factors specific to your project needs.