SoftwareWeb development

Web Framework Comparison: Angular, React, Vue.js, and Blazor

Web frameworks are collections of software libraries, functions, models, and structures that have been combined into one tool to make it easier for developers to implement and build web applications.

The annual Stack Overflow Survey lists various web frameworks used by professional developers as well as those new to programming. The survey for 2022 shows that Angular, React.js and Vue.js, the web frameworks presented here, are very popular. Even Blazor, which is a rather new web framework in comparison, already ranks as an emerging and popular framework in the Stack Overflow Survey. (Stack Overflow, 2022)

Following figure Stack Overflow Web Framework Ranking shows the ranking of the most frequently used web frameworks, surveyed by the Stack Overflow Survey. Here you can see that Angular, React.js and Vue.js are all in the top 10. Blazor is in 17th place, just behind Svelte, another popular and long-established web framework. (Stack Overflow, 2022)

Stack Overflow Web Framework Ranking

In addition to the ranking of the most used web frameworks, they are also evaluated in the categories Loved and Dreaded. This rating shows that the featured web frameworks Angular, React.js, Vue.js and Blazor were each rated Loved by more than 50%. (Stack Overflow, 2022)

Following figure Stack Overflow Survey Loved und Dreaded Angular shows the Loved/Dreaded distribution for the Angular web framework. Angular is rated 52.2% positive with 5822 responses

Stack Overflow Survey Loved und Dreaded Angular

Following figure Stack Overflow Survey Loved und Dreaded React shows the Loved/Dreaded distribution for the React web framework. React is rated 68.19% positive with 15873 responses.

Stack Overflow Survey Loved und Dreaded React

Following figure Stack Overflow Survey Loved und Dreaded Vue.js shows the Loved/Dreaded distribution for the Vue.js web framework. Vue.js is rated 63.16% positive with 6492 responses.

Stack Overflow Survey Loved und Dreaded Vue.js

Following figure Stack Overflow Survey Loved und Dreaded Blazor shows the Loved/Dreaded distribution for the Blazor web framework. Blazor is rated 62.67% positive with 1528 responses.

Stack Overflow Survey Loved und Dreaded Blazor

The following chapters describe the chosen web frameworks, their advantages and disadvantages, their application areas and how they differ from each other.

Overview

Angular, React and Vue.js are popular frameworks for web application development. Blazor, on the other hand, is rather new to the market compared to the former frameworks and is just establishing itself in the landscape of web technologies. All of them support the implementation of good usability in the application, among other features and capabilities, but they have some differences in the way they handle it.

Angular

Angular is a web framework developed by Google in 2016 that brings a large feature set out-of-the-box (Core, 2022). This feature set includes built-in functions, tools, and libraries that help implement high usability. Furthermore, additional libraries can be added through the large community and other third-party vendors. Applications are developed in Angular with HTML, CSS and TypeScript (Hutagikar & Hegde, 2020).

Advantages and disadvantages

The following tables show the advantages and disadvantages of Angular collected from publications by Seshadri, Ollila, Mäkitalo and Mikkonen and Hutagikar and Hegde, among others.

AdvantagesDescription
Custom componentsA core concept of Angular is to bundle functionality into components to create concise and easily reusable parts.
Data bindingData binding allows data to be exchanged fluidly between the script (TypeScript) and the view (HTML). This binding also simplifies responding to events in the script or view and removes the need to write custom code that deals with data modification at runtime.
Dependency injectionModular services and components can be implemented in Angular. Dependency injection makes it easy to use dependencies in these services and components, increasing testability and reusability.
TestingTesting is essential and Angular was designed with testability in mind.
Out-of-the-boxAngular brings with the default environment all the tools necessary for development.
Advantages Angular
DisadvantagesDescription
LearnabilityAngular is a very extensive framework which makes it difficult to learn, especially for beginners.
OverheadIf you take components as an example, you will notice that configuring them requires, among other things, 4 different files per component and various references to be set. This creates some overhead.
PerformanceCompared to other web frameworks, Angular is a bit slower in script execution due to its size.
ReferencesWhether creating routing, services or using dependency injection, it is often necessary to set various references within the application in different files, which makes working with Angular more cumbersome than with other web frameworks.
Application areasAngular brings with it a wide range of features as described earlier, since it is the most comprehensive of all frameworks, it is also very suitable for large or complex applications and for enterprise applications. Angular is also preferred for applications with dynamic content. Dynamic content is content on web pages that needs to automatically adapt to various conditions such as certain user signals (Hutagikar & Hegde, 2020).
Disadvantages Angular

If you want dive deeper into Angular check out the Angular Architects website or get yourself a copy of the bestselling ng-book.

React

React was developed by Facebook in 2013 and is more of a library than a framework. It does not have as many built-in features as Angular, but offers the possibility to add more functionality using libraries (Hutagikar & Hegde, 2020). It has a strong focus on component-based design, this can help make the application more modular and easier to maintain (Kern, 2022). React has a large community and many third-party libraries that help implement usability. Applications are developed in React using HTML, CSS, and JavaScript (Banks & Porcello, 2017).

Advantages and disadvantages

The following tables show the pros and cons of React collected from the publications according to Banks and Porcello, Goetz and Hutagikar, and Hegde, among others.

AdvantagesDescription
OverheadThe overhead of generating components is lower with React, where usually only one file is needed for a component.
PerformanceReact offers better performance than Angular, for example, when rendering and executing scripts.
DOM manipulationDOM manipulations are performed more efficiently in React, due to the use of a Virtual DOM, only the really necessary manipulations are performed.
LearnabilityReact has a flatter learning curve than Angular, for example, because it is also less extensive in its basic design and has a less complex file structure.
SEOThrough React, a more efficient search engine optimization can be achieved, which is especially relevant when ranking one’s website in search engines (Sens, 2018).
Advantages React
DisadvantagesDescription
FunctionalityOut-of-the-box, React offers less functionality than Angular and requires the subsequent addition of additional software libraries.
Programming styleReact follows the Functional Programming approach rather than the current Object Oriented Programming standard.
Build toolDue to the way components are programmed in React, an additional build tool is needed to make the code executable for browsers.
Application areasReact is somewhat more limited in scope and functionality than Angular, but its performance, flexibility, and search engine optimization are more pronounced. Thus, React is well suited for applications that require fast processing, increased flexibility, and versatility (Hutagikar & Hegde, 2020).
Disadvantages React

React sound like a Framework you want to give a try? Maybe start with a nice youtube channel I like myself Programming with Mosh and round it off with The Road to React or Learning React.

Vue.js

Vue.js is a lightweight framework developed in 2013 by Evan You that focuses on simplicity and flexibility. Vue.js, like Angular and React, has a strong focus on component-based design and has a set of directives and events that allow easy manipulation of the DOM (Macrae, 2018). The framework has a large number of third-party libraries and tools to help with implementation. However, out-of-the-box, Vue.js offers fewer standard libraries than is the case with Angular and React. Applications are developed in Vue.js using HTML, CSS, and JavaScript (Hutagikar & Hegde, 2020).

Advantages and disadvantages

The following tables show the pros and cons of Vue.js collected from the publications by Nelson, Hutagikar and Hegde and Ollila et al. among others.

AdvantagesDescription
Progressive frameworkOne feature Vue.js advertises is the ability to start with very small applications and expand them progressively.
LearnabilityVue.js has a flatter learning curve than Angular and React, due to the simplicity and flexibility that Vue.js relies on.
OverheadThe overhead of generating components, among other things, is lower with Vue.js, where usually only one file is needed for a component.
PerformanceVue.js offers better performance than Angular, for example, when rendering and executing scripts.
Advantages Vue.js
DisadvantagesDescription
ScopeVue.js was developed mainly for the view layer of applications and may not be sufficient for more complex applications.
FunctionalityCompared to other frameworks, Vue.js offers less functionality and fewer plugins and libraries.
FlexibilityWhile the high flexibility of Vue.js is actually an advantage, too much flexibility can lead to inconsistencies in the code, as certain standards are no longer adhered to.
Application areasVue.js is somewhat more limited in scope and functionality than Angular, React and Blazor, but performance, flexibility and simplicity are the arguments in which Vue.js shines. Thus, Vue.js is very well suited for small or lightweight applications where it can be assumed that requirements will change a lot or be extended and where performance plays an important role (Hutagikar & Hegde, 2020).
Disadvantages Vue.js

Blazor

Blazor was released by Microsoft in 2018, making it the youngest of the featured frameworks. It allows developers to develop web applications using C# and .NET instead of JavaScript or TypeScript. Furthermore, it offers the possibility to develop applications server-side – requests are forwarded to the server – or as WebAssembly – requests are processed at the client (EckhartWöllkart, 2021). It provides a powerful collection of integrated components and templates, as standard .NET libraries can be included in the Blazor application. Blazor, like Angular, React, and Vue.js, works with component-based design (Himschoot, 2020). While the .NET part of Blazor has a huge community, Blazor itself does not have nearly as large a community as Angular, React, and Vue.js, requiring developers to spend more time in research and custom development (Ollila et al., 2022).

Advantages and disadvantages

The following tables show the advantages and disadvantages of Blazor collected from publications according to Engstrom, Eckhart-Wöllkart and Himschoot, among others.

AdvantagesDescription
TechnologyBlazor offers the possibility to develop applications server-side or as WebAssembly. This increases the range of application areas for which Blazor applications can be created.
.NETMany other frameworks rely on JavaScript or TypeScript. Here Blazor sets itself apart with the possibility to develop web applications in C# and with .NET. For .NET developers, this is an attractive argument.
FutureOf the frameworks presented, Blazor is the youngest and most immature and thus has the greatest potential to grow and learn from the experience of established frameworks.
Advantages Blazor
DisadvantagesDescription
PerformanceSince Blazor is still rather young on the market and could not yet be optimized by empirical values from real implementations, it cannot currently keep up with the performance of Angular, React and Vue.js.
ProjectsBlazor currently has few real-world implementations as a reference for its suitability as a relevant web framework.
MaturityFor complex applications, it may also be necessary to include JavaScript in the development, since there are already established tools or libraries that are not yet covered by Blazor.
.NETFor non .NET developers who have previously worked with JavaScript frameworks, Blazor has a steeper learning curve.
Application areasBlazor is still in the improvement and build phase, nevertheless it is foreseeable that Blazor wants to be an alternative to Angular. It brings with it a large feature set and has almost the entire .NET framework behind it. Thus, it is also well suited for large or complex applications and for enterprise applications (Dorosh, 2023).
Disadvantages Blazor

Framework conclusion

In summary, all of these frameworks support the implementation of good usability in applications. Angular offers many built-in features and tools and is well suited for complex applications, but has a steeper learning curve due to its large feature set. React incurs less overhead and has a flatter learning curve than Angular, but offers less functionality out-of-the-box. Vue.js focuses on simplicity and flexibility, but focuses almost exclusively on the view layer and provides less functionality than Angular and React, for example. Blazor offers a modern and intuitive syntax and is very attractive to .NET developers, but is not yet as established as Angular, React, and Vue.js and thus still has stability and performance issues

Personal note

In my professional career and my educational path I used Angular quite a bit, played around with Blazor, have seen some React but never used Vue.js so far. All of the stated facts in this blog I can agree on but as a .NET developer I thrive to see Blazor becoming a stable in the web framework landscape and push up its position in the Stack Overflow Survey in the next years. Besides my subjective bias to Blazor I can say that all of the mentioned web frameworks serve their purpose. Which one you choose relies heavily on the scale of the project you want to implement.

References

Banks, A. & Porcello, E. (2017). Learning react: Functional web development with react
and redux

Dorosh, K. (2023). Blazing a trail: Web app development with microsoft blazor in 2023.

Eckhart-Wöllkart, M. (2021). Single page applications mittels microsoft blazor entwi-
ckeln : Softwaretechnische untersuchungen im vergleich zu angular, react, vuejs
und co.

Engstrom, J. (2021). Web development with blazor and .net 5 a hands-on guide to
building interactive web uis with… blazor and c. PACKT PUBLISHING LIMITED.

Götz, F. (2020). Full stack web-applications-vom client bis zur datenbank analysen
und kombinationen unterschiedlichster technologien zur ableitung einer hand-
lungsempfehlung ausgeführt am studiengang informationstechnologien und wirt-
schaftsinformatik [Masterarbeit].

Himschoot, P. (2020). Microsoft blazor building web applications in .net. Apress.

Hutagikar, V. & Hegde, V. (2020). Analysis of front-end frameworks for web applicati-
ons. International Research Journal of Engineering and Technology . Zugriff auf
https://existek.com/blog/top-front-end-

Kern, K. A. (2022). Comparing modern front-end frameworks computer science

Macrae, C. (2018). Vue.js: Up and running: Building accessible and performant web
apps. O’Reilly Media.

Nelson, B. (2018). Getting to know vue.js: Learn to build single page applications in
vue from scratch. Apress

Ollila, R., Mäkitalo, N. & Mikkonen, T. (2022). Modern web frameworks : A comparison
of rendering performance. Journal of Web Engineering. doi: 10.13052/jwe15

Seshadri, S. (2018). Angular: Up and running: Learning angular, step by step. O’Reilly
Media. Zugriff auf https://books.google.at/books?id=CAFeDwAAQBAJ

Stack Overflow. (2022). Stack Overflow Developer Survey 2022. Zugriff am 2023-05-16
auf https://survey.stackoverflow.co/2022/

Hi, I’m Mario

Leave a Reply

Your email address will not be published. Required fields are marked *