The right framework for your business: Angular, React and Vue.js compared
Frontend frameworks are not just a technology question
Choosing the right technologies for a software application’s frontend–the side that is visible to users–might seem to be relatively inconsequential at a non-technical level. However, frontend technologies can have business impacts, too. Important issues like an app’s performance, scalability and expense are affected by how the frontend is developed.
Therefore it’s important for all decision makers involved in making an application, on both the business and technical side, to be on the same page when frontend technologies are chosen.
Vanilla JS can be used to custom write everything, of course
But the problem is that it can be time consuming. Using frameworks and libraries is a bit like cooking with recipes and ready-made ingredients.
A recipe would be like a pattern by which to structure the application’s code. A ready-made ingredient would be anything from a form to a button, things that are added and then styled accordingly to match the application.
At the moment, the most popular frontend JS frameworks are Angular and React, with Vue.js recently gaining ground. (Note: Angular is technically the only complete framework in this group. React and Vue are something in between a framework and a library. To keep the discussion simple, we will refer to all as frameworks.)
Choosing a framework, for the non-technical, usually comes down to two methods:
Look at trends–Read about the options and research what similar apps are using.
Take advice–Get a good developer or development team on board and let them choose.
The problem with the first method is that many articles on technologies are written by and for coders, and so it can be difficult to decipher what the benefits of each framework are. It’s a bit tricker still to think about which would be best for an app that has yet to be built.
For the second, the issue is that not all developers will have the application’s best interests in mind. Typically developers, and even whole teams (unless it’s a very large company) don’t have expertise in every single technology. They usually have a handful in which they specialize. Obviously, a developer or team will prefer to work with something they know very well, rather then work with something new, or refer a potential customer out to a different agency.
First, the good news
In the hands of a good development team, it’s very unlikely your application will be ruined by a framework choice.
The best teams are well aware of how to implement a framework correctly, in such a way that you won’t have to build your application over again in a few years time. They will typically work with a common framework, not something obscure.
The most common JS frameworks share many positive features. Angular, React and Vue.js:
- Speed up development time
- Allow components to be reused
- Perform well
- Have loads of documentation and community support available
How top frameworks differ
Created in 2016 (a rewrite of AngularJS, created in 2010) by Google
Angular can be thought of as the heavy hitter in this group. Developed by Google and used by such established companies as Paypal and Upwork, it’s one of the most widely-used frontend frameworks.
This means that Angular is the hardest to learn and most inflexible of the frameworks we’re discussing here. It tends to frustrate developers more. However, Angular’s more disciplined approach tends to create more stable and consistent applications–something appealing to large enterprises.
Created in 2013 by Facebook
In the last few years React has fast become the most popular framework, and the most serious contender to Angular. It’s backed by Facebook and used widely in their platforms, which include Instagram and Whatsapp. It’s also used by Twitter and Uber, for example.
React is designed to be modular, applied to sections of an application. While it’s only essentially a library that applies to the view layer (what is seen, not the behind-the-scenes structure), it can be combined with other technologies like Redux to amplify its capabilities.
Created 2014 by Evan You, former Google dev. An MIT-licensed open source project
Vue is the underdog in this group. Yet even without the backing of a major company, it has grown in popularity in the last few years. Like React, Vue is modular and can be applied to parts of an application or integrated with other frameworks/libraries.
A big factor in Vue’s popularity is it’s ease of use, offering the flexibility of React but being even more lightweight and natural in style.
Developers’ love for Vue is evidenced in the State of JS’s 2018 developer survey, where 91% of those who had used this tech said they wanted to use it again; Angular received a response of 41% for the same category.
The tricky part: Business concerns regarding a frontend framework
Possibly a double-edged sword
A full framework like Angular will dictate how an application is organized and structured, creating a more predictable result.
However, the trend is moving towards modular frameworks like React and Vue which offer creative freedom to developers. The problem is that this liberty can be tragic when combined with poor structure and documentation decisions. A team using a modular framework needs at least one person in charge who can ensure that best practices are followed.
For example: Once, we were given a React application project by a client that had been built by another development team. The team had decided to build the frontend in custom React libraries, but unfortunately, they also chose to not document anything about these libraries. We were forced to play investigator in order to discover how to work with these libraries and take over the project.
Not all frameworks perform the same
Speed is a crucial factor in the success of any application, since users will abandon an app if there is any loading delay.
Vue is regarded as the lightest of the frameworks here, and Angular the heaviest. Yet the latest updates for Angular have worked to address performance issues. Additionally, good developers can optimize application performance through a variety of methods.
A hidden expense
It’s important to consider how easy it is to find developers that know a certain technology and how much they cost.
Since React has grown so quickly in popularity in recent years, the amount of developers that have experience with it is still catching up. This disparity in supply and demand means that React developers are commanding high salaries.
Vue developers have the lowest average salaries compared to React and Angular. Partly responsible for this is that Vue is most used in Asia where developer salaries are relatively low. Experienced Vue developers are more difficult to find.
Ability to easily onboard devs
Angular has a steep learning curve, while Vue is easy to learn and intuitive.
This is a huge plus for Vue, mitigating the previous point about developer availability. A project using Vue can readily onboard experienced JS developers whether or not they’ve use Vue before. This flexibility can help make the assembly of a development team more fluid.
Will the framework become obsolete?
The reality is that technology is constantly changing, and the landscape of frontend technologies could shift dramatically in a short amount of time. While it’s impossible to predict the future, for the moment it seems as though React will remain popular. This is due to its widespread use and popularity in the development community.
Vue is the most vulnerable of the three, as it is an open-source project. Yet it has been adopted by Asian giants such as Alibaba and Xiaomi, so it seems unlikely to disappear any time soon.
Vue, Angular and React comparison
The most important factor for success in using a frontend framework is having a great team of developers in charge. Experienced developers will know how to choose, implement and optimize a framework correctly.
Nevertheless knowing the business impacts of these technologies can help application owners successfully plan for the future and be aware of their project’s best interests.