Photo by Glenn Carstens-Peters on Unsplash
Frontend technologies evolve fast. New frameworks for SPAs emerge every half a year promising to revolutionize the UI world. If you check Wikipedia you’ll find about 25 JS frameworks and over 80 JS libraries aiming to simplify different aspects of the frontend development.
Anyway, when choosing the best SPA framework in 2021, you’ll most probably consider the three alternatives: Angular vs Vue vs React. The popularity of all three projects is growing. All three get updated frequently, are used and supported by big corporations, and have use cases where each outshines others.
So, which is better: Vue, React, or Angular? It depends on how their philosophies, advantages, and limitations can potentially influence your particular product.
Angular vs React vs Vue project maturity
StackOverflow Developer Survey Results show the percentage of developers using different web frameworks and libraries in 2019.
Most used web framework/library in 2019
We can use those stats to make our single-page application framework comparison. While React and Angular are fighting for the title of the most used web framework or library for SPAs, Vue has already proved to be the fastest-growing in popularity. Vue is being starred 177k times on GitHub and downloaded from nmp more than 2 million times per week.
Origins and longevity
Angular (or Angular 2+) JavasScript Framework was released by Google in 2016. It’s the second upgraded and significantly rewritten version of its predecessor AngularJS that was created in 2010. This framework is used and maintained by Google and it’s partners.
React JavasScript Library was initially developed by Jordan Walke, a software engineer at Facebook, for the company’s internal needs. It was open-sourced in 2013, still, Facebook employees remain the main contributors to its repositories. TheFacebook web app as well as web versions of Instagram and WhatsApp are built using this framework.
Vue JavasScript Framework was created in 2014 by Evan You, who previously had worked at Google. Now, it is a community-driven open-source framework that doesn’t have any large companies contributing to its repositories. Anyway, there are several big corporations and unicorn startups that rely on it in developing their interfaces, for example, Alibaba, Baidu, Grammarly, and GitLab.
Maintenance and stability
Angular has a regular release schedule that eases keeping pace with the framework evolution. Major updates that require running update scripts, code refactoring, additional testing, and learning new APIs are released semiannually. Each version of Angular receives 6 months of active support with updates or patches released weekly. After that, it has 16 months of long-term support for critical and security fixes. For each new version, the Angular team provides the migration path to make those upgrades easier on software maintenance specialists.
The latest version is Angular 11.0.0. It was released on 11.11.2020 and has active support until 11.05.2021. The long-term support of this version will last till 11.05.2022.
React versions get released with a time gap of 1.5–3 years because the React team strives to minimize braking changes and ease the versioning pain on developers. All new features are pushed in minor releases. The team provides a migration path for a smooth transition to new versions, writes automated scripts to upgrade component syntax, and keeps the old API working for as long as possible.
The latest version is React 17. It was released in October 2020.
Vue has released 3 major versions so far and keeps them maintainable. The team worked on the third version for two years and actively engaged their community in the development process. Due to the specifics of the development process, it takes the team some additional time to stabilize new versions, update third-party libraries, as well as provide migration builds for a transition between versions.
The latest stable version of Vue is v2.6.11. It was released on 13.12.2019. The latest version is v3.0.0. It was released on 18.09.2020, however many sub-projects remain in beta.
All three projects have been developed actively during the last several years. That said, each project has its own approach to versioning and support. Where the Angular team commits to a predictable release schedule, the React team provides a system of warnings to let you upgrade your apps one component at a time. Being a community-driven project, Vue remains less predictable in terms of new version releases and maintenance policies.
React vs Angular vs Vue implementation
When choosing between Angular and its alternatives, you should decide how much freedom and ownership over the development process you’d like to have. It also will pre-define who you’ll have on your team.
Development consistency and flexibility
Angular is a fully-fledged framework that doesn’t rely on third-party tools and libraries. It’s often a choice for conservative corporate environments that prefer security and standardization over flexibility. Angular pre-defines the way you architect your app and allows you to benefit from TypeScript language with its type checking feature. Choosing this framework is especially reasonable if you’re going to maintain and manage a huge codebase that needs to be neat and consistent.
“I’d say that moving from one project to another is not that smooth for React developers as startups expect. The approaches for components interaction and state management in different versions of React varies significantly. For example, adding the possibility to use hooks API in React 16.8.0 and above was a huge change. Such versatility of code architectures may cause developers to spend quite some time getting acquainted with the specifics of every next project. In some cases, their learning curve may be steeper than for Angular developers dealing with a new version of the framework.” – Andrey, Fullstack Developer
“The beauty of Vue.js is that you can add it to a project that even isn’t a SPA. I had successfully integrated Vue into a jQuerry-based project that had its HTML rendered server-side. It was quite easy for me to add Vue to a container inside the HTML page and make it interact with the existing scripts.”– Andrey, Fullstack Developer
Let’s summarise. Angular provides you with out-of-the-box functionality and implies that there’s only one right way to build and structure your app. In contrast, the Angular alternatives both are much more flexible and allow you to combine a lot of tools and libraries to construct your custom tech stack, escape a vendor lock-in, and innovate.
Development process productivity
Angular, React and Vue, all are aimed to improve the speed and effectiveness of the development process. That said, you should consider your team’s expertise and skills to make sure your project gains in productivity from using a particular solution.
“For startups that want to use Vue and React it’s crucial to work with an experienced developer from the start. The proper implementation of chosen architecture approach in the very beginning will influence the speed of development at later stages. Starting the project without a proper code scaling plan will inevitably result in accumulating technical debt, which will make the future development process cumbersome.” – Andrey, Fullstack Developer
Looking for Vue Angular or React developers?