Simple Research Study – Choosing a Front End Framework

Introduction

Background

In the web development industry technology changes rapidly. Within the past 7 years, JavaScript frameworks, in particular, have developed and become more popular. In this study, I’d like to examine React, Angular and Vue on a project level, to determine which framework is most widely accepted in the industry.

  1. React by Facebook
  2. Angular by Google
  3. Vue

Hypothesis

React is the most widely accepted front-end JavaScript framework.

Data

GitHub Snapshot

React Angular Vue
Company  Facebook  Google  None
Releases  63  142  206
Contributors  1,040 480 121
Contributors with 10+ commits 45 54 13
Open Issues 575 1,546 85
Closed Issues 4,065 9,671 4,792
Total Issues 4,640 11,217 4,877
License  BSD-3 MIT MIT
Watching 4,711 2,566 3,473
Stars 71,212 25,961 60,422
Forks 13,407 6,606 8,433
Initial Release 3/1/2013 10/1/2010 2/1/2014

Results

Usage Statistics

The following data below was pulled by builtwith.com, a website which scrapes the web, extracts, and reports on all known frameworks:

  • Angular2 is used in 1,607 public-facing sites
  • React is used in 144,221 public-facing sites
  • Vue is used 26,819 public-facing sites

Release Schedules

GitHub provides a historical overview of the releases of React, Angular, and Vue. After crawling the release data, I was able to extract interesting information.

Angular

Here is a brief history of the release of Angular 2. In October 2014, the announcement of Angular 2 was in at ng-Europe. After this announcement, Angular 2 had a repository dedicated to it on GitHub in January 2015. Following this initial release of Angular 2 in January, the library left the alpha stage in December of 2015, and entered into the beta stage. Angular 2 remained in this beta stage for an additional 4 months, and was pushed into release candidate stage in September of 2016. Finally, the first official version of Angular 2 was released in September 2016. As evidenced above, it took nearly a year and a half before this framework became a production-ready product.

  • Alpha Stage: Jan 2015 – Dec 2015
  • Beta Stage: Dec 2015 – April 2016
  • Release Candidate Stage: April 2016 – September 2016
  • Production Release (Full): September 2016

The first chart, I looked at the release types.

Angular Release Types

React

React as a framework was open sourced 3 years after the Angular 1 release. Even with a later start in the open source community, React gained traction quickly. The first version of React was released in July of 2013. Looking through the versioning data, React was still under version 0, until March of 2016, with only minor versions released. In March of 2016, Facebook shifted the minor version number to the major version, and the bug version to the minor version. For example: v15.0.0 and v0.14.8. Below is a graph of the release schedule of the major versions of React. As evidenced with the graph below, the number of Major versions have decreased in 2016 than in previous years. To sum up, breaking changes are less likely to occur in React this year than in previous years, making React a fairly reliable framework to use and upgrade in the future.

React Major Release Schedule

Vue

Vue, a library that emerged out of from a personal developer, is a framework that is starting to take traction. Vue has had 3 major breaking versions since its initial release. Version 0, 1, and 2. Version 0 was released in May of 2015. Version 1 was released in January of 2016. Version 2 was released in September of 2016. Looking at their release cycles. Vue, on average, has a major breaking release every 8 months. Because of this, it is understandable that developers are cautious with moving to Vue.

VueJs Longevity of each Major Release

Contributors

A contributor is someone who contributes, or pushes code to GitHub for the open source project. When looking at adopting a product, it’s extremely important to see how many people are actually involved in the project.

Vue

Vue is contributed by mainly 1 person. Even though over 120 developers have contributed, 1 developer is mainly contributing. Vue has 1 main contributor which causes a high dependency on that 1 person.

Angular

Angular is far more stable because the number of people with more than 10 commits is at 54 developers. Because of this rather high number, the project is considered “stable” at a support level.

React

Though React has 1,040 contributors to the project, only 45 of them have more than 10 commits. React also is a “stable” project at the support level.

Stars, Forks and Watching

When a GitHub user forks the repository, they are cloning the source code into their own personal repository section under their profile. For example, here are a few that I have forked. A user also may decide to “watch” a repository. Watching means that you’ll receive notifications of the repository. Generally stars are the most popular because it involves the least amount of work to show interest in the project. Looking at the table posted above, React holds the lead for all three fields. It was shocking to see that Angular received the least amount of Stars, Forks and Watchings.

  React Angular Vue
Watching         4,711          2,566         3,473
Stars      71,212        25,961      60,422
Forks      13,407          6,606         8,433

Comparison of Stars, Forks, and Watching

Open Issues

Any GitHub user can open an issue on the project. Issues can range from bugs to feature requests. There is a positive correlation between the number of stars and the number of opened issues. 

React Angular Vue
Open Issues             575          1,546                85
Closed Issues          4,065          9,671          4,792
Total Issues          4,640        11,217          4,877

Comparing the total number of tickets, it’s apparent that Angular has more reported issues than React and Vue combined. It’s also interesting to note that Vue, the newer library, has the same amount of issues as React.

Total issues reported to react, angular, and vue

Conclusion

From the research done above, we can conclude that the industry is moving towards React as a front-end framework. In summary:

  • Breaking changes are less likely to occur in React this year than in previous years, making React a fairly reliable framework to use and upgrade in the future
  • Vue, on average, has a major breaking release every 8 months
  • Vue has 1 main contributor which causes a high dependency on that 1 person
  • Angular has more reported issues than React and Vue combined

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.