How to choose between Angular, React and Vue — and be right every time
By: Ivan Hanák
Tags: Vuejs, JavaScript, React, Angular

If you’re like me, you absolutely love developing web applications and I am also 100% sure you’ve got your favourite JavaScript framework that you adore and wouldn’t exchange for anything else.

Then, you attend a local meetup, where programmers from all over the place gather around and start talking about their work.

And sooner or later, the discussion always skews into our favourite topic; and that is: What’s better?

Photo by Alvaro Reyes on Unsplash

Now I’ve got an answer from my perspective for you that proved to be true so many times in my career not only when freelancing and working on my own projects, but also as a dev teamleader in a company while deciding about those kind of things.

Sooo… Angular, React or Vue then?

Truth to be told, this is too soon to ask.

There is one thing missing here and that thing is called context.

We as developers are maybe infamous for having this so-called Shiny Object Syndrome 😀. That means that everything new or interesting catches our eye and that stands true with this question as well.

Let’s start like this instead

Firstly, let’s try to understand what we are doing here. It can be a basic question, like for example one of those:

are we starting a brand new project?

are we updating an existing project with a brand new functionality?

are we about to code a MVP or just a prototype?

are we developing very expensive project for a famous client?

What we should be striving to accomplish here is to establish some kind of basis or the result we’re after. And you can do this every single time you’re talking with somebody — you can start for example with what is the project they are working on, who is the client or how much money they want to make from that project (yes, this is also a valid question you should be not afraid to ask 🙂).

Let’s continue with this

Now that you’ve learnt what the person is working on and I guess a bunch of various questions pop into your head and provided that one of them is about Angular, React or Vue, hold your horses buddy! This is the best time not to ask such question! 😉

Instead let’s proceed with the future vision of the project. I mean whether we realise it or not, everything in our daily life (not only work life) evolves and has a destination.

For example a MVP has very short life — you just quickly develop the thing, put it in front of the customer and see if they like it. Then you decide if you’ll continue working on it and improving it or you will just completely throw it away.

Updating an existing project — that is a very different scenario. You need to take into consideration its scope, all of the practises and approaches that are already used.

And once we find out the way the project should go, if for example it should be thrown away in a few days or serving as a base for something way bigger in the future, that gives us more context of where to go next.

Getting close to asking that question

We already know the background of the project, where the project is heading and now we are almost there to ask that special question. But we’re not there yet though! 😆

Now really important thing to go around is to find out who is going to be working on that project.

But I don’t mean only developing the first version, but also who is going to be taking care of all of the future updates!

If you think about it, there are dozens of things than can happen:

is the team going to be continuing to work on this project?

is the initial release being coded by an external company and then updated by an internal team?

will be the updates and bugfixes needed to be shipped immediately or we can take some time there?

…and so on…

What would happen if the both teams (the one that is developing the initial release and the one that will be updating it in the future) will not align on the practises and frameworks? What if the person who is suggesting a special practise wants to leave the company and will not be working anymore in a coupe of months when the project will need to be updated? Will we be able to hire a person who can replace them?

As you can see, the framework choice has impact on so many things that are not only related to actual development process, but rather they affect the whole bunch of operational things on the background.

What’s better? Angular, React or Vue?

Yes! 🤩 The time has come to ask this special question! It is the right time because we’ve got all of the information about the project, how it’s gonna evolve and who is going to be working on it and for how long.

Once you’ve got this information, you will have no problem argumenting in those situations, like for example:

Situation #1: We should use Angular!

Imagine a team of developers who never have worked with any javascript framework (please, don’t judge, those people exists and they can learn really quick so this is never a problem) and the team gets advised they should use Angular for their new project, because a very famous person on the facebook group advised them to do.

Should they start using it? Well, depends on everything we’ve said above. For example if they are building just a prototype or a MVP, they should choose any framework they like the best and seems the easiest to learn.

Is the project going to be of a larger scope and the project will be maintained by a team who writes Vue code? Well, in this case we have already answered this question.

Situation #2: React is better than Vue!

Now imagine you’ve been developing web applications for quite some time in Vue and your best friend tells you that you should switch to React, because it is better.

Now the question is, should you?

Well, just take a look at what are you developing, who is going to be developing it in the future and the answer is right in front of you 😎.

Final thoughts

As you can see the answer to the question “What is better, Angular, React or Vue?” is not just a question you should throw around mindlessly, but use it as a perfect way how to start a conversation, learn something new about how other people are developing, use it as a way to learn a new approach to programming or just learn a new perspective.

This question is not something to be answered absolutely. It always depends heavily on the context of what is the project all about.

So the next time somebody is forcing you to start working with completely different technology, find out what is the sentiment they are proceeding from.

And remember, whatever answer seems to you when you are in charge, you are always right — you just need to make sure, it is backed by strong and meaningful arguments 😉 .

So, what do you guys thing about this approach? Do you agree or have completely different perspective? If so I am eager to find out about how you handle similar situations.

Hope this was interesting point of view for you.

Anyways, thanks for reading and I’ll see you in the next article! 🤓

Yours in coding,

Ivan