And then there where 3 … + plus many more

JavaScript frameworks are developing at an extremely fast pace, several frameworks, libraries and add-ons are appearing all the time.

This post is concerned examining three JavaScript frameworks namely Angular, React & Vue. This post is not a tutorial guide but rather aims to provide a groundwork to help developers make informed judgment on which of these frameworks; if any; best suites their projects.

We shall by looking at brief history of each, current trends followed by a dive into the philosophy behind each one.

 

History:

AngularJS / Angular 2, developed by Google and was first released in 2010. It is considered to be  the most mature of these frameworks. It uses superset of JavaScript which primarily provides optional static typing, classes and interfaces. A substantial shift occurred in 2016 on the release of Angular 2 (and the dropping of the “JS” from the original name – AngularJS). Angular 2+ is known as just Angular. The latest stable version is Angular 9, which was released in May 2019.

React, developed by Facebook, was initially open sourced in 2013. Facebook uses React successfully in their products including on Facebook, WhatsApp and Instagram. The current stable version is 16.8, released in February 2019.

Vue, developed by ex-Google employee Evan You in 2014. Over the last few years, Vue has seen a substantial shift in popularity within the development community, even though it doesn’t have the backing of a large company just yet. The current stable version is 2.6.10, released in March 2019.

 

Popularity:

1AngularReactVueTrends
Figure 1: Google trends within computing search terms June 2019

 

 

2AngularReactVueJobs
Figure 2: Job market trends

 

 

3AngularReactVueNPM
Figure 3: NPM downloads

 

4AngularReactVueGit
Figure 4: GitHub statistics

 

 

All trends and statistics should be taken with a pinch of salt but generally trends show that both Angular and ReactJS seem to have widespread use in industry thou Vue has very strong support from within the development community.

Philosophy:

 

The Angular philosophy is based on conventions rather than configuration; it is a fully fledge framework rather than a library and it provides developers with a good start to build applications with a complete setup. Libraries, routing solutions, and the structure are all built in. Angular involves dependency injection and uses two-way data binding; thou one-way binding was introduce in the new versions. Angular philosophy is based on the MVVM (Model-View-ViewModel) that allows developers to work separately on the same app section using the same set of data.

 

With ReactJS the philosophy is focus on building UI components with virtual DOM and relies on JSX for rendering. JSX is neither a string nor HTML, according to the official documentation. The big advantage of this approach is that JavaScript is more powerful than HTML hence allowing greater element controller. React opts for single-data flow and to get a good grasp of how react apps work one must have good understanding of the react life cycle. React is unopinionated and leaves developers to make choices about the best way to develop apps less time worrying about the framework-specific code.

 

Vue been the latest of these frameworks it is fresh and has little baggage. It has learnt from the mistakes and successes of Angular and React; and hence has a less opinionated architecture. It is widely seen as the cleanest in comparison to these three frameworks. Like React it uses a virtual DOM. Thou Vue supports JSX the default experience is use standard HTML templates much like Angular. One of architectural decision was to focus on making testing easy.

 

Conclusion:

All three technologies are viable choices for web application development. The decision to pick for a project will ultimately come down to existing knowledge of each framework in the company and the scope of the project but if one wants to follow current trends and pick something that other people are adopting having a strong community and good documentation then both ReactJS and Vue are leading in that respect.

 

Leave a comment