Deciding on a framework
We will look at
- popularity. This also matters if you’re looking for a job working with this, or if you want to know where the industry is moving.
- Job Market.
- Learning Curve, which is of course very important for staffing.
So let’s start with the key characteristics of Angular. Angular is developed and maintained by Google, which is pretty good. It is extremely popular and used by many large companies like Google who has developed Angular, YouTube, Upwork, Freelancer, Udemy, Telegram, and many other large companies. Angular is a complete framework, a rich set of tools, and follows a component-driven approach that helps you with developing modern web applications. The cool thing about angular is that it includes Routing, state management solution, form validation, HTTP, all these things that help to scale your app, or helps to build a bigger application.
All these tools you’ll need for very large applications ship as part of angular, developed by the angular core team, so you don’t need to rely on third-party vendors. If you want to turn your application into a progressive web app, well there is an official package for that. It has all the packages of the core features you might want to add to your application. This, of course, gives a developer a lot of power to add such features easily.
Typescript in Angular
That’s why it is more suitable for single-page applications rather than microservices. Angular uses two-way data binding that enables singular behavior for the app which minimizes risks of possible errors. If you don’t know about Two-way data binding, it refers to the mechanism where UI fields are bound to model dynamically. When UI elements change, model data is being changed accordingly. On the other hand, one-way data flow means only the model can change the app’s state.
Ionic for mobile
You can also build mobile apps with Angular with the help of Ionic. Ionic always was focusing on angular. For that, you don’t need knowledge of Android or Swift programming. You can also use the native script alternative of Ionic and it embraces angular. Now Let’s have a look at react.
React is developed and maintained by Facebook and that, of course, it’s a very large company that actively uses react in many or pretty much all its applications and therefore obviously react is actively maintained, gets updated regularly, gets new features or enhancements regularly. Of course, This is pretty good though it has one possible downside. You might need to update your app from time to time.
Though the updates to React are pretty easy and they’re rarely very, very rarely are risky and if there are, you have plenty of time to adjust. It’s extremely popular and used by many large companies like Facebook that developed and maintains React, Netflix, New York Times, Dropbox, and many other large companies.
There are people who love this approach and overall it’s just how React works. As already mentioned, react is Library and it is not a complete suite of tools. For example, you need to add routing and that is not included in react. Instead, there is a pretty popular library React Router. It’s the same for state management, there is Redex for us.
But these packages are not from the react core team. These are developed and maintained by the react community. So, you have to rely on third-party vendors, and for some packages, you have additional things to learn. That is something you might or might not like.
Micro apps, microservices & Native
React provides flexibility to select the things which are important for the app, So react offers more flexibility for developing micro apps and microservices. In my opinion, this is one of the best parts of React. React uses one-way data binding. So, it updates the model first, and then it renders the UI element and only the model can change the app’s state.
You can also build mobile apps with the help of React-Native. React native is very popular and very good in performance as compared to Ionic.
Now Let’s have a look at VUE. Vue has nice features from both React and Angular. In my personal opinion, developers of VUE have picked good features from Angular and React and it merges them pretty well. Vue is yielding almost the best of both worlds. Vue is developed and maintained by a former Google employee named Evan You.
It is also extremely popular amongst developers. But unfortunately, very few large companies use Vue. Though it’s slowly picking up and it’s getting adopted by more and more companies. Xiaomi, Alibaba, EuroNews, Gitlab using Vue. Vue is a complete framework like angular though a bit reduced, and has fewer features than angular, and also follows a component-driven approach. In Vue, you also got routing and state management provided by the core Vue team.
Of course, that makes moving towards larger applications may be a bit easier since you can rely on these packages always being available since developed by the core Vue team. You can rely on Vue getting updated and these third-party packages immediately being updated too. So that’s pretty cool to have. It has fewer packages than angular does have, for example, Vue has no official form validation library.
There are community packages of course. Vue uses native Web Apis, it uses HTML templates, CSS. It is pretty similar to Angular regarding that, especially from a syntax perspective when we talk about its template maybe to angular one or partly to angular one. But it has some ideas from React and it really merges in a nice way. I personally like its syntax a lot.
Because it looks very nice, clean and well structured. Similar to React, Vue provides flexibility to select the important things for the app, So it offers more flexibility for developing micro apps and microservices.
Vue uses both two-way and one-way data binding. One-way data binding is Default. Vue is all primarily used for web apps, you can also build mobile apps with the help of Native script. Native script supports both Angular and Vue. So these were the key characteristics.
Let’s have a look at popularity.
How popular are these solutions? Well, here React is pretty popular if we measure the monthly NPM downloads. Let’s compare NPM downloads at npmtrends.com. Here we can see these three and we can see React is quite a bit more popular than Angular at least if we just look at the general downloads.
Now that is not the only measure, to be honest, but it gives us some indication that React seems to be getting used a bit more. Now Vue, even less, although this is rising.
Still is highly liked in developer circles, if you look at Github stars. On Github you can see, Angular has 59 thousand plus stars, React has 172 thousand plus stars and Vue has 186 thousand plus. Vue is super popular, but regarding usage and NPM downloads, it is a week but rapidly rising. Next, let us look at the job market. Popularity and the job market kinda go hand in hand. If we see these NPM downloads it indicates that React has more job offers and then Angular and Vue have very fewer job offers.
I found this graph from another medium article. Which claims that React has 78 percent job offers, Angular has 21 percent and Vue has at least 0.8 percent. The job market also depends upon the location for example in India there are lots of jobs offered for Angular.
In the United States React jobs are a lot and in China Vue Jobs are a lot. And I love to hear which framework is popular in your area. Please tell us in the comment section. Let’s have a look at the learning curve. This is I think very important If you want to start learning any one of these three.
The learning curve
You need to make sure it is easy to learn and you are comfortable with it. Let’s start with Angular. Angular uses Typescript. As I have already mentioned, Typescript is considered a separate programming language. However, if you do not have knowledge of Typescript, you cannot jump right in Angular.
You have to learn TypeScript first, It’s not hard though. Some of the Angular features like dependency injection are pretty cool but also a bit more complex so you have to invest a bit more to learn these. So There is definitely a steep learning curve for Angular. Although React is considered much easier to learn compared to Angular, and more difficult than Vue. In particular, to create applications on React you will need experience with JSX.
Definitely bigger than React or Vue. Now, let’s take a look at the summary, so far we have compared. All three frameworks and libraries are great. You can build the same type of apps with all of them. There is no better or worse one.
They followed different philosophies and approaches as mentioned. I can only encourage you to at least briefly dive into each of them. And get an idea of how to code looks and then dive into one deeper or, if you have the time, learn two of them in a more focused way. What is your opinion on these three, we would love to discuss this with you in a call?