In this video I will compare top 3 web frameworks to learn in 2020. Angular vs React vs Vue are always fighting about what is the best framework for frontend development. You will see from different perspectives pros and cons of every framework based on my experience, popularity and learning curve.
Hi I'm Oleksandr Kocherhin from monsterlessons-academy, where I'm teaching you how to become a developer or improve your skills of being a developer in learning by doing way. And if you are new here don't forget to subscribe and I will link everything that I'm mentioning in the description.
Just to remind you this video is part of the free angular for beginners series So let's get started.
Framework vs Library
So here is some history. All 3 frameworks are already quite old. The oldest in Angular which started 10 years ago as AngularJS and was developed by Google. People liked it and it was popular. After that at some point that wanted to make version 2 to improve architecture and basically created new framework which doesn't have anything at all with the old one.
So migration from version 1 to version 2 was almost impossible and people just rewrote applications in Angular 2. By the way Angular 2 and above is just Angular and Angular 1 is called AngularJS. The problem with version 2 and several next major version was that there were huge breaking changes every release. It was difficult to update projects, fix magic errors and support it. But somewhere after Angular 5 it becomes more stable and consistent.
React is developed by Facebook and was quite consistent from the start. As the use React really a lot in Facebook they tried to make updates as easy as possible and even when there was a huge internal rewrite no API for outside was changed.
Vue framework was created just by one guy who previously warked in Google using AngularJS a lot. So this was exactly his idea to make something better than Angular 1 and from my perspective this is exactly how Angular 2 should look like. It is support by a lot by chinese companies like Alibaba and others. The migration from v1 to v2 was not difficult and 90% API stayed the same. Soon we will see Vue v3 and update also doesn't look difficult.
What's most popular
Next question is what is most popular? You can earn money with any of this 3 frameworks. But here is some statistics from google trends and stackoverflow jobs. As you can see React is the most popular from this 3. On the second place is Angular and on the third is Vue. But it doesn't directly mean that you need to learn only React and other frameworks are out. As you can see sure, there are more React positions Angular for example. But it also means less competition if you choose not React but Angular or even Vue. Also if it's more difficult for company to find developer who knows deeply let's say Angular than if you have good Angular knowledge you can earn more money. The most important point here is that all these frameworks have a lot of things in common. So if you learn one of them than yo can apply 80% of your knowledge in others. Also in a lot of vacancies it's written that you must have experience with ANY frontend framework at all.
Now let's talk about learning curve. The first place of complexity to enter has for sure Angular. There are quite a lot additional things that you must learn in order to write good Angular code. At least Typescript, RxJS, State Management, Dependency injection, Ahead of Time complication and much more. But this also gives you an opportunity to get more money because the level of entrance is higher and thats why there is less competition.
React and Vue are from my point of view somewhere on the same level of complexity. They are on "easy". For the it's easier to start with Vue because it's a framework where you get almost all stuff out of the box and you don't need to google for the most popular router, state management, library for fetching data and so on like you need in React. But actually they are both on easy mode compared to Angular.
I have courses about building the same real application from start to the end in all 3 frameworks which means I created the same application in all of them. There is standard stuff that each application needs like authentication, pagination, fetching data, components, routing and so on. And I know all 3 on a pretty good level.
So the funniest part is that in Vue it good less than 3 days in evening to create the whole application. In React it was build with hooks and I needed like 2 weeks for the same application but had to debug some nasty bugs with rerending at the end which were really tricky. By Angular it was more than a month in total and the amount of code that you need to write was totally enormous. But just to remind you all 3 projects where build in dry and scalable way. So it was possible to make shotcuts but they won't be scalable in the long term. Also from documentation point of view React and Vue are both good and with Angular it's always difficult to find what you need, there is too much text written and it's not easy to understand it.
So here is my opinion from the experience point of view. I would just spent several day to look on all 3 frameworks, watch some videos, guides, etc. After this I would evaluate what frameworks are popular in my city if I'm not planning to work remotely. If you don't have Vue and Angular at all and 90% of jobs is React than I don't see any sense to start learning anything other than React. And as always it's not that much about the framework than about your knowledge. You can jump in job with other framework without problems if your overall skills are good.
Call to action
I hope that this video helps you to understand what framework suits you best. If I missed some pros and cons of any Framework that you think are important to choose a framework than just leave a comment don't below.
Also don't forget to check my full courses regarding different web technologies. I will link them down in the description box below.
If you find this video helpful, don't forget to subscribe to this channel and hit subscribe button. And I see you in my next video.