Article #98310931831 on this topic.
Spoiler alert: It really doesn’t matter which language you choose to learn. If you want to be a great programmer, you need to change your mindset and stop thinking in terms of which one is best.
Great programmers think instead in terms of pros and cons:
These are the questions you should ask, and being myopic and declaring one library/framework to rule them all is only said by people that don’t know their history.
jQuery, Backbone, AngularJS (now just Angular), were all useful when they came out. They provided 10x benefit to what there was before, but eventually they all evolve and move on as the community grows, web platforms change, and user preferences shift.
In the end, all of these 3 allow you to build rich front-end applications. In general, not one is significantly better than the other (which is required for the next wave).
If we break each of them down:
Angular is the entire kitchen that gives you all the tools necessary for you to build the meal that is your web app. If I am a bank with lots of developers, I like Angular to keep everyone working in the same pattern.
React is the oven. You most likely will need more tools to bake that cake, but it allows you the flexibility to pick and chose what tools you want based on your needs. If I’m a tech company with strong senior developers that can make good decisions, I like React.js.
Vue is the microwave that allows you to get up and running really fast and make your cooking life efficient and easy. If I am a startup with a young developer team and a strict deadline, I like Vue.js.
Sure, the above is a simple example and there are many more things to consider. However, what you should be learning is not the latest fad, framework, or the new experimental React Hook API, etc…
Don’t get me wrong: it’s good to know these things if you are working with them directly, but in 5 years time, the landscape will change.
The great programmers are the ones who not only know how to use at least one of these tools, but more importantly, they see the high level reason for why these technologies exist and can make decisions on when to use one over the other.
They are ready for the next wave by having a long-term mindset. Learn the fundamentals and learn what problems each tool solves so that you are always ready for change.
The more years of experience you have, the more you start to realize that in order to keep up with the industry, you don’t need to memorize every single API, listen to every single podcast, watch every single conference talk, or read every single blog post. You need to learn and understand the fundamental principles that underlie all these tools.
That's why great programmers know about data structures and algorithms, how compilers work, how design patterns can help build large systems, etc.
You can be myopic on the other end of the spectrum and think that all these libraries and tools are useless… This is just as bad.
If you have a drill available to you, why waste time and effort using a screwdriver...
React vs Angular vs Vue? Which one should you pick? It doesn’t matter. Keep learning, and don’t forget about the tried and tested computer science topics that underlie everything. There is a reason big tech companies ask data structures and algorithms questions in their interviews.
Just make sure next time somebody asks you: “Why did you pick React?” You have a good answer to give them...
Well let's break this down step-by-step. As I mentioned above, you really need to look at the factors that affect you, your goals and any external decisions.
With this in mined, we're going to look at job postings, developer statistics, download numbers, and other factors, to actually burst through the fuzzy cloud that is React vs. Angular vs. Vue and decide which one you should learn for your career.
The goal is to conduct an unbiased search based on the criteria:
In this article you will find sections on the above topics.
Each of these frameworks has their pros and cons, but if you don't care and just want to accelerate your career as quickly as possible then here is how you should pick which one to learn.
Ideally, you will pick the tool that:
Let’s get started!
I would venture a guess that this is one of the most, if not the most important factor for you in deciding what to learn in your career. After all, time is a valuable resource. With so many things to learn, you want to make sure you pick the one that makes you money. Let’s have a look at the numbers:
What are the number of job postings for React, Angular and Vue developers?
Same data above, visualized a different way:
And the actual numbers:
My criteria for selecting the data was the following:
LinkedIn is one of, if not the biggest job board. This is a worldwide search for developer job postings for each library.
Indeed, SimplyHired and Dice are 3 big tech job boards in the USA so the search is geographically targeted there. You may not live in the US, but it’s good to see what is happening in a very important location for tech.
AngelList is probably the best job board for startups. We get to see what startups, and the newer more modern companies are using in tech.
Hired is a hiring platform that helps companies look for engineering talent. It’s interesting to see their perspective on what companies are looking for as they tend to only post work from the large tech companies.
React and Angular are the top dogs. This is not surprising for React since for the past few years, it has been the most trending front end library (more on this later). But it’s surprising to see Angular with places like State of JS calling it “dead” in 2019. Another surprising thing is how low Vue.js demand is despite all of the love it got recently in the State of JS survey by developers.
Let’s have a look at what developer usage looks like across React, Angular and Vue.
Here are the total number of downloads by developers from NPM (as of December 20th, 2021):
And the Github statistics (as of December 20th, 2021 - very similar distribution when updating these from 2019 to 2022):
Github stars visualized compared to each other (as of December 20th, 2021 - very little change to the percentages between 2019 - 2022):
But if we look at top open source projects we see Angular and React in there (kind of) but no Vue:
And here are the google trends based on search terms (as of December 20th, 2021 - this could technically be related to job demand as well):
And another google trend with slightly different terms (as of December 20th, 2021):
Overall, we see positive growth in all of these libraries when it comes to downloads and Github activity. Developers are using these libraries, that is not in question. But we definitely see a disproportionate split between Github stars and actual usage of Vue.js. Overall, Vue.js once again does not compete with Angular and React. It does look like the growth for Angular and React are starting to slow down a bit though.
React seems to have good developer activity in relation to the actual usage by developers. Angular seems to come in second, and Vue once again does not seem to get used as much as people may think (although there seems to be a higher usage trend in China). Although the slowdown in React and Angular usage may mean it’s due to some users going over to Vue. If you are a developer there are probably going to be more documentation, blog posts, and activity around the eco system for React than for Angular or Vue. Stick to React if that is important to you.
Quick note: Vue is often used by Chinese giants such as Alibaba, Baidu, Tencent, even Xiaomi and DJI instead of React or Angular which were created by Facebook and Google. I expect the Chinese market to keep growing especially fast because Vue is an open source independent library without any attachment to a western big tech giant (no data to back up this point).
You must love the tools that you are working with. Although money is important, it is not everything. Ideally you want to be working with something you enjoy. Let’s have a look at the numbers here.
From StackOverflow survey (probably the best survey there is for developer trends) Wanted, Loved, and Dreaded by Developers:
Here are the stats for most wanted, loved, and dreaded from the 2020 survey. Spoiler: Vue.js makes a big jump in the most loved list (but still behind React) and Angular is now #1 on most dreaded 😱
From stateofJS survey, which unfortunately is geared more towards early adopters and React and Vue communities so the data is a little bit biased:
Nothing new that we haven’t seen before. React seems to be loved by its developers and people seem most happy overall with this library.
React seems to beat out Angular in every data point above, but not by a big margin.
Although the state of JS survey shows a lot of people dissatisfied with Angular and StackOverflow mentioning people don’t like it as much as React and Vue.js, as we saw in previous part, the job demand is still there for it.
Vue once again is a small part in this, and although we see that the Vue community is very passionate about Vue, it’s still a smaller player… but good to keep an eye on.
The above graphs all show a snapshot in time at the writing of this article (with some stats updated for you).
Ideally, you want to see as long of a trend of the numbers as possible (especially job postings) to make sure you aren’t riding a dying wave, or a hype-only wave.
However, I can tell you that since initially writing this post in December 2018, the conclusions generally seem to still hold true as of December 2021.
It’s always important to draw your own conclusions. BUT, just because you asked nicely, my opinion is that React is still the way to go in 2022 (it was also my recommendation for the past few years) based on the information above.
You want to pick something that is being used at companies, but also something that is growing and not diminishing as a trend. You want to have a strong community with good documentation and resources. And you want to use a tool that you will enjoy working with.
React seems to do the best job at hitting all of these factors. This doesn’t mean you should forget about Angular or Vue. They are all still great libraries and frameworks. And nothing lasts forever.
So if you have limited time and you shouted “TELL ME! JUST TELL ME ONE TO STUDY AND LEARN” and you yell really loud, I would tell you to learn React.
What do you want to see next? I’m thinking of doing this type of tech trends analysis on other topics around programming and releasing them every once in a while. Tell me here and make sure to also tag @zerotomasteryio.
Let me know if you want to see more!
Final reminder. Everybody has their own opinion and each tool exists to solve a problem. There is no winner take all in the tech space (at least not until AI bots by BostonDynamics take over our world), so be smart and just use the data from here and your own, to make an informed decision based on your needs.
By the way, all the courses I teach for programmers keeps this methodology in mind to teach you the most modern and important skills in the industry to make you valuable to employers. They’re pretty good courses (if I do say so myself) so if you’re interested in leveling up your skills, do check them out.
December 2021 Update: I still feel strongly about the takeaways and conclusions from this post. But if you're not sure where to start or still don't know which path to take, try out our Tech Career Path Quiz to get a personalized step-by-step roadmap to follow.
By the way, my full time job is to teach people to code in the most efficient way possible as the Lead Instructor of Zero To Mastery Academy. You can see a few of my courses below or see all of the Zero To Mastery courses by visiting the courses page.