Blogs/ Technology
Sometimes, choosing a tech stack becomes a tedious task as you need to take every element into discussion including a budget, project objectives, time, size of the application, end-users, and resources.
This blog is all about comparing frameworks/libraries along with its trends and insights
Day by day, JavaScript is progressively used in the world of tech. Previously, it was worthy enough to create the client-side segment of the web application, today it has great capabilities for back-end development as well.
This is just an analysis and not what is best.
Right around the time when Angular Vs React debate was on the rise, another JavaScript framework, Vue, made some noise, and discussions around the web development water cooler got more interesting!
It is apparent that “pure” JavaScript does not allow for a lot of flexibility and so, we need a befitting framework.
Here, we choose the three most flavored JS frameworks (or rather, two frameworks and one library) to compare: Angular, React and Vue. This trio gained a colossal sum of stars on the GitHub.
According to the latest GitHub trends! (Dated 12th June 2019), Vue has 1,41,066 stars, React gained 1,30,881 stars, and angular achieved 48,968 stars. From the statistics, it's clear that Vue seems to be popular and impressive among developers. Despite the fact that it is a “one-man-show”, it can grab the attention of developers due to its stocky and trouble-free architecture.
Vue with 1,41,066 stars
React with 1,30,881 stars
Angular with 48,968 stars
Google trends
Stack overflow trends
Based on a few metrics, let's find out which among these JS frameworks is worth paying attention to while creating a software solution.
Angular, made quite a splash in 2010, so much that it prompted Facebook to come up with React, a JavaScript library that offers rich framework functionality, in 2013. There is no doubt about the growth of these two, as both are maintained by Google and Facebook respectively. Updates and releases are published frequently, i.e., every six months but quite maintained when it comes to migrations.
According to Medium’s report, renowned companies that use Angular are Google, Microsoft, Autodesk, MacDonald’s, UPS, AT&T, Apple, Adobe, GoPro, ProtonMail, Clarity Design System, Upwork, Freelancer, YouTube, Paypal, Nike, Telegram, Weather, iStockphoto, AWS, Crunchbase.
Few companies that use React are Facebook, Instagram, Netflix, New York Times, Yahoo, Whatsapp, Codecademy, Dropbox, Airbnb, Atlassian, Intercom, Microsoft, Slack, Storybook.
Companies that use Vue are Xiaomi, Codeship, Reuters, Adobe, Alibaba, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Behance.
Ionic is a framework to build hybridmobile apps. It uses the Cordova container which is incorporated with Angular. Ionic provides a robust UI component library that is easy to develop hybrid mobile apps. The resulting app is a web app inside of a native web view container. Because of this, the apps can be slow and laggy.
NativeScript lets you build native mobile apps on both iOS and Android. It can be used with a variety of frameworks like Angular and React. With NativeScript and Angular, you can create native mobile apps with 100% native performance and power, with buttery smooth animations and it's amazing! One skill set, One base, and three platforms: iOS, Android, and Web.
The mobile solution from React is ReactNative.It is a platform backed by facebook for creating truly native mobile apps using React. It uses React to build native mobile apps. Today around 500 companies are using it for their mobile space.
ReactNative produces a truly native UI. It gives you a way to create components and bind them to native code written in Objective-C, Java, or Swift. This is a promising solution to develop native mobile apps.
Vue has VueNative.It is a wrapper around ReactNative. Under the hood, you need to setup ReactNative.
VueNative is not a stand-alone solution and cannot be used without ReactNative. Vue, on the other hand, has NativeScript. As NativeScript can be used with React. It can also be used with Vue. The drawback is that NativeScript needs to get constant updates to the latest development in Vue. And since both are from different companies, we never know how long NativeScript supports Vue. NativeScript and Vue are the fantastic pair for developing immersive mobile apps.
Now, let us analyze the performance with this trio: – one of the most requested, but at the same time controversial criteria for comparing JS frameworks.
Document Object Model (DOM) is the major tool for performing dynamic changes within a hypertext document (XML/HTML), which is very helpful in terms of performance. Both, React and Vue has a Virtual DOM.Vue provides great performance and memory allocation, as it has a well-built structure. React, works well on the other side and Angular is already ahead in the competition. Performance mainly relies on the size of the application and optimization of the code. This trio works comparatively faster than other JS frameworks.
On a rough performance, here are some figures : (Duration in milliseconds / standard deviation)
(Memory allocations in MB’s)
From the above stats, Vue takes less memory and runs faster than one made with Angular and React.
From the above stats, Angular is large compared to React and Vue. It has everything from routing, templates and testing utilities and so on. Therefore, the size is huge and not at all suitable for lightweight applications. React is a JavaScript library and not a framework, so you don't get much out of it. You need to use other libraries for routing and other needs. React serves good for lightweight apps. Vue, on the other hand, is still smaller and also suitable to build lightweight apps.
Although there is a difference between the size of the frameworks, they are still small when compared to the average web page size (4 MB in 2019). And, when you use a popular CDN (Content Delivery Network) to load these libraries, it is highly probable.
Angular is a framework because it is a platform to build an application with a complete setup, no need for libraries and routing solutions. You can simply start building the application as you wish.
React is a library for building composable user interfaces. You can do multiple integrations with React as you can pair, exchange, and integrate libraries with other great tools. React works out of the box due to its flexibility to offer flawless integration however, there are chances of wrong decisions and dependencies.
Vue is the cleanest framework in comparison to all. It helps you keep your code efficient with the perfect balance of internal dependencies and flexibility. It is simple, straightforward, and a framework that aims to simplify web development.
One-way data binding is when information flows one-way, i.e from the model (data source) to the UI field. This makes the variable read-only from the user's perspective. Any actions to the model will not affect the UI field
Two-way data binding is when information flow is two-way, i.e from the model (data source) to the UI field, and vice versa. This will allow the variable to be updated by the user. Any changes to the model will affect the UI field.
One-way data flow is easy to understand and deterministic as the data is managed in one direction. Whereas, two-way data binding is tough to understand but provides an efficient coding structure where developers find it easy to work with.
And here comes the cream of the crop! Vue supports both!!
Yes! This is something unusual. For the sake of objectivity, it is mandatory to highlight a few shortcomings of this threesome.
Let's start with Angular, some issues can arise during server-based templating due to the separation of the JS code and HTML rendering. And there is a high threshold of entry with the need to learn the TypeScript.
Now, a few words about React. It has only one substantial disadvantage .i.e., it is not a complete framework but a library. It requires third-party tools to create advanced functionalities and these tools might be outdated if you want to update the created software in the future.
And, to conclude, a little bit about Vue. Firstly, Vue’s largest community is Chinese. Therefore, get prepared to look for solutions by yourself to code in Vue. Secondly, the infrastructure of this framework is new and there are only a few community-created components. Nevertheless, we must note that in most cases developers rarely need to use any third-party tools, thanks to extensive built-in capabilities.
As you can see, Angular, React, and Vue are the three titans in this cutthroat industry. And hence there is no winner here, you would’ve probably guessed that. Therefore, the decision should be made upon personal preferences and requirements of a particular project. The best way is to do your research before deciding, especially when you are going to be working on a business venture.