Blog Web Application Frameworks: Angular VS. React VS. … 4 min
Cloud Native

Web Application Frameworks: Angular VS. React VS. Vue

SparkFabrik Team4 min read
Web Application Frameworks: Angular VS. React VS. Vue

The evolution of web apps (and with them, native apps and progressive web apps) has promoted (and been promoted by) the emergence of libraries and frameworks geared toward front-end development.

Among these, three standout options are Angular by Google, React by Facebook, and Vue.js by Evan You. Although they are often treated as equivalent alternatives (or even as antithetical ones), these three libraries take markedly different philosophical approaches.

Below, we will explore the three solutions — not aiming to provide an exhaustive comparison, but focusing on those elements that may be most important for those in a company who need to decide which framework to adopt.

Angular

It is an all-in-one (and opinionated) framework that offers and requires a precise code structure heavily based on Typescript; developing in Angular therefore means developing the Angular way, making the most of static typing (you can also ignore it, but the cost to long-term project maintainability increases).

On one hand, this relieves the team from deep architectural design of the app, leading to resource savings; on the other hand, it reduces the degree of freedom available.

Another significant aspect is the ability to quickly integrate new team members into the development process: onboarding onto the project will be relatively smooth, but only with prior knowledge, whose learning curve, given its complexity and breadth, is quite steep for a less experienced developer.

All these aspects make Angular well-suited for complete solutions, where the application will be designed from scratch around the framework’s characteristics and the team will have been previously trained on it.

React

It is a non-opinionated framework focused solely on view management through the use of components (the fundamental unit of the framework), so important that even routing, handled by third-party libraries, is built on top of it.

Another distinctive feature is the use of JSX (and optionally TSX if used in conjunction with Typescript), a powerful tool that allows the Native version, developed specifically for Android/iOS apps, to build native Views instead of HTML with considerable savings in device resources. However, the JSX implementation can easily confuse and mislead a developer, who will be visually tempted to associate it with a markup language rather than a programming language.

The lack of an all-in-one structure therefore makes the learning curve gentle, although the use of JSX can be disorienting and slow things down (initially). This also makes it possible to introduce React in a targeted way within existing projects, to enhance and modernize specific parts of them.

Vue.JS

It was born conceptually from AngularJS (Angular’s spiritual predecessor), with the goal of simplifying and lightening its structure by focusing on View management.

It is the lightest in terms of core base, even though it has, unlike React, a built-in routing library, which in some ways brings it closer to Angular.

Its learning curve is probably the least steep of all, since it can potentially be implemented with a simple <script> tag in the markup, unlike React and Angular which require the use of a CLI (which Vue.js also offers).

This, combined with the completeness of its documentation, gives Vue.js a strong advantage in situations where the team is highly fluid and/or has little to no prior knowledge of any framework.

Community and industry support

Today, while all three enjoy broad community support, React and Vue.js are among the most appreciated, while Angular ranks a few positions lower in satisfaction rankings.

In quantitative terms, the StackOverflow survey shows that the most widely used framework is React (35.9%); followed by Angular (25.1%) and finally Vue.js (17.3%).

Notable brands and their framework choices

Angular

Here are some examples of sites built with Angular (source):

React/React-Native

Below are some examples of sites that use React (source):

Vue.js

Finally, let’s consider some examples of sites that use Vue.js (source):

Before drawing conclusions from these lists, some clarifications are necessary: many of the attributions of sites and apps to a given technology found online are not backed by any official statement from the brand or development teams that would validate such association.

For example, the majority of sites associated with Vue.js examined for this article show no evidence of such use in the code, nor were any official statements found on the matter (in the case of Nintendo, a quick analysis with Wappalyzer actually shows traces of React and Angular usage, but not Vue.js!). Not to mention that a brand is often associated with a framework without specifying which product within that brand’s ecosystem actually uses it.

For all these reasons, product-to-brand associations without official statements or empirical evidence attesting to their authenticity are marked with an (*).

With these necessary clarifications made, one can observe that React appears to be the most widely used framework in the entertainment industry and for native development, where responsiveness and visual quality play a leading role. Angular has found its niche in the institutional and services sectors, while Vue.js seems to be chosen in a fairly balanced way across various industries.

Conclusions

To summarize:

  • Angular is the most mature framework, with a vibrant community and an all-in-one approach. The steep learning curve may discourage less experienced developers, but for companies with large developer teams that already use TypeScript and are looking for stability, it could be an excellent solution.

  • React can also now be considered a mature framework and has a large number of contributors. It is a solution worth considering especially for startups or companies that need agility and a lightweight stack.

  • Vue.js, the most recent of the three frameworks, is establishing itself as a significant competitor to the other two solutions. Those seeking simplicity and flexibility may find Vue.js a viable option, especially in cases where there is a need to modernize a legacy application with a stack that is easy to introduce.

Get in touch

Follow us on social media
Listen to Continuous Delivery