DEV Community

Cover image for The best front-end framework to learn in 2019
Duomly
Duomly

Posted on • Updated on • Originally published at blog.duomly.com

The best front-end framework to learn in 2019

This article was originally published at: https://www.blog.duomly.com/which-front-end-framework-is-the-best-in-2019

Frameworks are a very powerful tool in the development of modern web and mobile applications. Just think about sites and apps like Facebook, Netflix, and Instagram for example. It’s exactly frameworks that are responsible for their uninterrupted operation by providing and giving their users a complete experience.

We can define a framework, most simply, as a large number of pre-built components which give developers the ability to expand and customize them depending on the application they make. Most frameworks have source language JavaScript.

Bearing in mind, above all, the continuous technological development, the needs of the users of the web and mobile applications, and the tendency of the front-end developers to enable them, the topic of this article is the most popular framework. In this article, I analyze the six best frameworks according to their performances and popularity.

1. React.js

React is a JavaScript component-based library with JSX syntax.

Facebook software engineer Jordan Walke created the prototype for React in response to common problems in the work of the Facebook app caused by an expansion of the network. Officially, its first application by Facebook gets in 2011 and two years after that, 2013, it becomes an open-source library.

The main characteristic of React is a virtual DOM, but necessary to mention that it is 1-way data binding. Thanks to the virtual DOM characteristic, React is characterized by exceptional performance.

From the aspect of the level of difficulty, React is one of the easiest to learn, especially compared to Angular.

Where is it used?

React focuses on building a UI of a single page web app (SAP) and mobile app. Since React is a library, it is necessary to include several other libraries for the development of more complex applications, from which I would specify Redux and React Router. Also, React Native is an additional platform for building high-quality iOS and Android App.

Known for its high-performance, React has proved extremely demanding for applications that require dynamics, often upgrades and updates. That’s enough to say about React because Instagram implemented it after Facebook.

How popular it is?

When it comes to React’s popularity, I will look at GitHub statistics. According to current data, it has 122,529 stars, and in the past year, the average growth of stars per day is 93.
This library became popular and widely accepted in a relatively short time. For sure it represents a trend and, the community is rapidly growing.

Big projects/companies that use?

Except for the company I mentioned before, React is the choice of Netflix, New York Times, Yahoo! Mail, Vivaldi Browser, Dropbox, PayPal, Pinterest, Timber, Uber, and many other apps.

Pros
  • Maintained by Facebook,
  • The community is constantly evolving,
  • Virtual DOM,
  • Hight performance,
  • Suitable for applications with high traffic,
  • Often updated,
Cons

-Not SEO friendly,
-Needs other libraries to build more complex applications,

Duomly - programming online courses

2. Angular

Extremely popular framework Angular is the only one on this list whose source language is TypeScript.

The Google team developed it to upgrade the earlier version of AngularJS. In the focus of development, on the one hand, there was the fulfillment of modern demands, talking about technology, and, on the other hand, the tendency to combine the concepts that best showed in practice. With this framework, the Google team has undoubtedly set standards in this sphere. They published the first version of Angular (v2) in 2016. Before that, in 2014 and 2015 were released alpha and beta.

Angular is a component-based framework, but unlike React, it is a 2-way data binding.

Learning Angular is difficult although the documentation and community are very numerous. The documentation is even more confusing, especially for beginners.

Where is it used?

Angular is used to develop web and mobile apps. In addition to the standard use of a single page app with the proper library, like for example Universal, it is possible to create a multi-page app. As regards mobile applications, they committed Google to give users with an exceptional Ionic platform focused on the development of the Native app and Progressive Web Applications.

How popular is it?

At GitHub Angular, there are 45,376 stars at the moment, and in the past year, the average number of stars per day is 33. An interesting fact is that the number of stars is falling in comparison with the React that is growing. Angular has been extremely popular in the programming community for many years and now has the largest one.

Big projects/companies that use it?

Apart from Google, Angular also uses Microsoft Office Home, Forbes, Blender Video, Xbox, Santander Bank, and BMW.

Pros
  • Strong community,
  • 2-way data binding,
  • Simple single page app,
  • Shadow DOM,
  • Typescript,
Cons
  • Complex and not easy to learn,
  • Must learn Typescript,

Duomly - programming online courses

3. AngularJS

AngularJS comes from the earlier described Angular which source language is JavaScript. So, AngularJS is the first version that was developed by two exceptional developers Misko Hevery and Adam Abrons, published in 2009. With its appearance, AngularJS quickly gained popularity in professional web development. This framework is a 2-way data binding.

The fundamental difference between this framework and the earlier one is for sure in the source language, but also in the characteristics and purposes. They did not base AngularJS on today’s concept of a modern framework but are undoubtedly responsible for the development of the same, Angular.

Also, AngularJS has an MVC (Model – View – Controller) architecture.

Where is it used?

AngularJS is primarily designed to build dynamic web applications. Suitable for single-page applications. However, it does not support the construe of mobile apps as its successor.

How popular is it?

This framework has a total of 59,379 stars on GitHub. The annual average falls so that the star rating per day is about 3.7. It is a standard case of circumstance if we consider the appearance of Angular, which is a significantly improved version.

Big projects/companies that use it?

Some of the companies, or sites, that are built with AngularJS are Google Gmail, Upwork, The Guardian, HBO, Sony, General Motors, Weather.

Pros
  • JavaScript friendly compared to Angular
  • 2-way data binding,
  • Fast development,
  • Highly testable applications
Cons
  • Difficult to learn,
  • Old version,
  • Low popularity,

Duomly - programming online courses

4. Vue.js

Another framework that has gained immense popularity lately is Vue.js. Vue does not have the support of large companies, unlike the previous ones, and was developed by Evan You, the man who took part in the development of AngularJS. First launched in 2014.

Vue is a component-based and visual DOM, which makes it very fast. Another important feature is that it has a significantly smaller size, compared to React and Angular. Also, this framework is 2-way-binding.

What makes Vue unique and what I need to emphasize, it is one of the most straightforward JavaScript frameworks. His creator’s efforts to make it as simpler as possible influenced this, to change the complex concept that AngularJS has. Vue is a beginner-friendly with detailed documentation and a growing community.

How popular is it?

It is fascinating that Vue is becoming a trend in the front-end development community without the names of large and well-known companies behind it. A simple structure and ease of integration must undoubtedly overwrite his popularity.

Statistically, Vue has 128,158 stars on GitHub and 121 stars/year and its community are growing every day. At the time of writing the article at the daily level, he had 102 stars.

Where is it used?

This framework has a wide purpose, from web applications to mobile and PWA. Similar to React it is suitable for different types of projects, from simple single page applications to the more complex and dynamic ones. Mainly uses Weex framework to develop a mobile app. Except for the high performance and simplicity that its main features, Vue has the support of numerous components that further increase its potential.

Big projects/companies that use it?

Vue.js is used among others in apps like Xiaomi, Alibaba, Gitlab, Laracasts, Reuters, 9gag.

Pros
  • Beginner friendly,
  • Popularity and community are rapidly growing,
  • Simply syntax,
  • Flexibility,
  • Typescript support,
  • Hight performance,
Cons
  • It is not maintained by well-known companies like Google,
  • The youngest is from all frameworks,
  • Being too flexible in structure can be problematic,

Duomly - programming online courses

5. jQuery

I’m sure that almost everybody is familiar with jQuery, a library that has greatly facilitated JavaScript work. John Resig developed it and published in 2006, which puts it in the oldest front-end library compared to others on this list. Regardless of this, its use is still impressive today. One of the reasons we use jQuery for many years is its simplicity and minimalization in writing JavaScript code.

Unlike other frameworks and libraries, jQuery is totally beginner-friendly.

How popular is it?

The total number of stars on GitHub is 50,928. The growth of the stars per day is constant over the year, about 8, and there are not many fluctuations. A community is enormous, and for many years in a lot of questions about the problems you can encounter during work, there are already answers.

Where is it used?

The purpose of jQuery is not like other analyzed frameworks because jQuery is primarily a library. The essence of its use is DOM and CSS manipulation, and it is mainly focused on the interactivity and functionality of the website.

Communication with server data can be accomplished by using the jQuery Ajax method. I must note that as the application grows, this library can be able to complicate the development process of the same and result in poorer performance.

However, although jQuery is not intended to build a mobile app, it has got a new characteristic from the jQuery Mobile framework. This framework has expanded the boundaries of its use, adapted to modern requirements, but still in a far smaller percentage compared to, for example, React or Vue. Another important thing is that jQuery is abundant with plug-ins which can be of great help during your work.

What makes jQuery special, compares to other frameworks and libraries, is that this library is compatible with all browsers. Unlike it, it’s often the case that other frameworks are developing quite quickly and therefore are not supported by all browsers.

Big projects/companies that use it?

Some companies that use jQuery are Twitter, Microsoft, Uber, Kickstarter, Pandora, SurveyMonkey.

Pros
  • Beginner friendly,
  • Compatible with all browsers,
  • Ease of use,
  • A lot of plugins,
  • Big community,
Cons
  • jQuery can be very slow,
  • It is not intended to develop more complex projects,
  • Not intended to develop mobile applications,

Duomly - programming online courses

6. Ember.js

Another JavaScript framework that, because of its characteristics, deserves to be on this list is Ember. It is a component-based and 2-way-binding like Angular. Created by Yehuda Katz and published in 2011.

When we talk about the weight of learning, Ember is one of the harder frameworks to master, it’s not a flexible structure, and you will have to spend a lot of time (this is especially true for beginners). Its architecture is amazing. The thing I have to mention about the learning process itself is that Ember has one of the best documentation, which I believe can be of great help.

How popular is it?

According to GitHub statistics, Ember has 20,637 stars and in the past year, the average growth of stars per day is 5.

Although it has never gained popularity such as Vue, some experienced developers appreciate Ember who has met with him except other frameworks as well.

Where is it used?

Like other frameworks and Ember is adapted to modern technological needs. They intend it for developing web applications and mobile app. Cordova framework is most used to create mobile applications.

Compared to other frameworks, Ember is designed to fulfill the demands of very complex web applications. But, it may not be the best choice due to slow rendering.

Big projects/companies that use it?

Companies using Ember are LinkedIn, Yahoo!, Microsoft, Apple, Netflix, Skylight and others.

Pros
  • 2-way-binding,
  • One of the best architectures,
  • Suitable to develop complex applications,
Cons
  • Difficult to learn,
  • A small community,

Duomly - programming online courses

7. Backbone.js

Very small, organized and efficient JavaScript library. That’s Backbone.

Jeremy Ashkenas created this library and published in 2010. Backbone doesn’t provide data binding, and creators base its organization on the MVC principle.
Since this is a library, learning is quite simple, especially with the extensive documentation it has.

How popular is it?

When appearing to frameworks, Backbone has significantly declined popularity. It has 27,284 stars at the moment and per year it gets a one star.

Where is it used?

Although not too popular, Backbone can have extraordinary applications for small and simple web apps. Backbone is not intended for large applications because in this case, the performance is low.

Big projects/companies that use it?

Companies who use Backbone are LinkedIn Mobile, Pandora, AudioVroom.

Pros
  • Beginner friendly,
  • Good choice for a small app,
  • Organized,
  • Clean,
Cons
  • It’s not a good choice for a big app,
  • Popularity declined with emerge of frameworks,

Duomly - programming online courses

The ranking of the frameworks with the highest amount of jobs
  1. React.js – 8,203

  2. Angular – 2,082

  3. jQuery – 1,795

  4. AngularJS – 830

  5. Vue.js – 370

  6. Ember.js – 170

  7. Backbone.js – 46

The rank of the languages with the highest salary

To estimate the most paid technology we have taken the median salary for the last six months.

  1. React.js – $62k

  2. Angular – $59k

  3. AngularJS – $59k

  4. Backbone.js – $59k

  5. Ember.js – $54k

  6. Vue.js – $53k

  7. jQuery – $50k

The easy to learn rank
  1. jQuery

  2. Backbone.js

  3. Vue.js

  4. React.js

  5. Angular

  6. AngularJS

  7. Ember.js

The selection and evaluation of the framework most depend on what kind of problem you want to solve. For example, if you need only a simple single-page application, Angular is the right choice. However, if we talk about the more demanding, then this is React. You should remember that, for example, Angular, Vue, and Ember are complete libraries while React becomes complete when including other libraries.

In the field of mobile application development, PWA is slowly occupying the Native app site, primarily because of its effectiveness. jQuery, Backbone, and AngularJS cannot compete Angular, React, Vue and Ember in this sphere. However, although they do not follow modern trends, they have their advantages, especially jQuery, which is still widely used today.

When it comes to a high amount of job and highest salary React and Angular developers are now the most paid and the most wanted, but it’s a matter of moments when Vue will reach their level. Vue is unique because it is very similar to Angular but far more straightforward and is the right choice for beginners. Another important thing about Vue. If you have followed the statistics of popularity, it has surpassed both Angular and React and, unlike them, it was not created by large companies. So, I think this fact is significant for the estimation and quality of the framework itself.

Winner: React and Vue

Duomly - programming online courses

Top comments (51)

Collapse
 
sgarciadev profile image
Sergei Garcia • Edited

Hi everyone! So, there's quite a large number of misconceptions in this post that I feel the strong need to address. These are coming from someone that has worked with most of the technologies on this list over the years first hand;

  • Angular (versions 2-8): 2 things here. For starters, just a quick FYI that 2-way databinding was primarily AngularJS (1) big party trick. And it was strongly discouraged from Angular 2+ onwards as incorrect usage of it led to extreme performance problems. Also, a common trend I've noticed is that Angular 2+ is usually commonly used by extremely large companies and clients (think corporate clients) where Strict Type Checking is far more useful to build scalable applications. So a notable Pro of Angular is it helps build ultra-large applications with less risk.
  • AngularJS: As someone that has worked with Angular 1 and +2, there is no way Angular 2-8 is easier to learn than older AngularJS. If learning TypeScript itself isn't a huge hurdle, what will be is the amount of abstractions and reliance on Code Bundlers like Webpack that Angular 2-8 introduced. This itself is a large reason why so many Angular 1 developers chose React instead of Angular 2 as their next framework. A more correct rating would have been setting Angular 2-8 as hard, and AngularJS as medium. Also, you should probably mention that the major reason why AngularJS was dropped was it performed horribly in DOM changes VS newer frameworks like React, Vue, and subsequently Angular 2+.
  • Vue and React: Given both Vue and React are both primarily used as the View in most MVC patterns, it makes little sense to have differing cons for both of them. They both need separate libraries to be scalable, and they both allow for incredible amounts of flexibility. However, this also means that too much flexibility can be daunting to beginners.
  • Vue: A really nice thing about Vue that is not nearly enough being talked about, is that it takes the very best things of React/Angular (1), and creates a new better, simpler, but still powerful tool. It brings React's flexibility and component driven nature, while adding Angular's custom DOM directives to remove the reliance on often messy HTML-in-JS (JSX) React addd. This brings an unexpected benefit that by learning Vue.js first, you will often have an easier time moving later to React and Angular.
  • Backbone: One of the grandaddy's of Front End frameworks, Backbone.js was created as it's name implies, to serve as "the backbone" of your application. It was never intended to be an all-in-one tool like the author assumes. Think of Backbone like another React/Vue. And like React/Vue, Backbone also has libraries that allow building scalable, large applications (see Marionette.js)
  • jQuery: I'm kind of worried that this was included on the list to begin with, given it's not even a framework, how quickly it's being phased out, and how what little use cases jQuery had for quick DOM manipulation are now covered by Vue.js

Hope this helps clear up some confusion, other than that it's a great article!

Collapse
 
tterb profile image
Brett Stevenson

I agree with most of your critiques, though I would like to point out that while Marionette.js may allow you to build large applications with Backbone, in my experience it's usually not a good idea.
I regularly work with a large application that uses Backbone and Marionette.js and maintenance and scalability often feels like a losing battle compared to modern frameworks.

Collapse
 
dylajwright profile image
Dylan

Great response, with facts not assumptions. One fact of life as well is AngularJS is reaching end of life, moving to long term support in a little over a year. Why learn a dead framework?

This is why such things as IE and bower still exist. New frameworks come out because they are improvements based on the current reality. Great broad statement there, be kind as not all frameworks are better. It's technology, 4K UHD is better than 1080p LED, same goes with frameworks. I hate when people destroy the "new" way of doing things. It's technology, it's advancements, it's the reason I choose to be in this field as it's a constant education.

Collapse
 
sgarciadev profile image
Sergei Garcia

Thank you for Dylan 🙂 Though I'd like to add, I do not want to discourage people from learning an "old", or so called "dead" framework. It's important not to fall into "hype driven development". And that just because something is new, it doesn't mean it will always be an improvement for everyone. Angular 2+ was a great example of that.

Sometimes, just because things aren't talked about as much, doesn't mean they aren't great technologies anymore. I like to think the same way about Ember. Nobody talks about tech like Ember.js, or heck, even Ruby at this point. But that's because they are mature tools that people are mostly happy with. There aren't new shiny things being introduced at breakneck pace anymore. And for many people, that is just perfect 🙂

Thread Thread
 
holtmansfield profile image
Holt Mansfield

I think people should absolutely be discouraged from learning angularJS. That would be a terrible investment of time.

Thread Thread
 
martinscola profile image
Martin Scola

As an AngularJS developer, working on a legacy project, I'd undoubtedly discourage new devs from learning AngularJS. It's not only a dead framework by now (March 2021), but also has been successfully replaced by Angular, not as an alternative, but as a replacement.
Encouraging new devs to learn old, outdated frameworks is doing them a disservice

Collapse
 
avasconcelos114 profile image
Andre Vasconcelos

This comment needs to be at the top.

Had a lot of reservations about how it presented AngularJS (and even recommended people to learn it in 2019) and Angular, Vue, and the inclusion of jQuery

Collapse
 
byrro profile image
Renato Byrro

The observation that learning Vue will soften the path to learn React was really helpful to me.

Collapse
 
albertomontalesi profile image
AlbertoM

I wouldn't even put AngularJS as it's only used on legacy/Enterprise projects. New projects are not being built with it anymore (I hope so!).
We had to migrate our codebase from AngularJS to angular 7, now 8, and it took us a few months. It was an interesting experience, but not a fun one.

Collapse
 
radekfabisiak profile image
Radoslaw Fabisiak

Yes, it's a good point, but I'm afraid it's like devs dream. Still, I see old, happy AngularJS or even jQuery in big enterprise projects and companies look for people with that skill. What is funnier, most of these projects are the best paid.

Collapse
 
albertomontalesi profile image
AlbertoM

Oh yeah, once you know a skill that most people don't learn anymore you are a rare beast and there are plenty of large Enterprise software that it's too painful and expensive to migrate. I also work on an Enterprise SaaS, it's a large codebase but not huge and it still took us 3/4 months to migrate to Angular 7

Collapse
 
sgarciadev profile image
Sergei Garcia

I think it's fair that he included them. Following that logic, he would not have included Backbone, Ember, and jQuery as they are all slowly but surely losing adoption as time goes on.

Also, while AngularJS might be considered legacy by fans of Angular (2-8), let's remind ourselves that Angular 2 changed so much at a fundamental level that it might as well be considered another framework entirely. Vue.js is far more of an Angular continuation than Angular 2 ever was.

Collapse
 
tobiassn profile image
Tobias SN

Please explain how Vue being young and flexible in structure is bad.

Collapse
 
duomly profile image
Duomly

It's not really bad(even very often is good) but sometimes it could be problematic to follow when framework is very young and will change constantly.

Collapse
 
sgarciadev profile image
Sergei Garcia

That doesn't make a lot of sense as a Con of Young Age... Even mature frameworks like Angular and React occasionally change radically (see Hooks). In the world of modern Front End, age is not a measure of few changes.

Collapse
 
tobiassn profile image
Tobias SN

Have you used Vue? I have, and I don't find it hard to follow at all. It's over 4 years old, and the last major release was over 3 years ago. I mean, features have been introduced in minor releases, but you don't even need to know about those to use it, as is the case with most software.

Collapse
 
stewartsabuka profile image
stewartsabuka

So far Vue changes have been minor and l don't see a problem with that, unlike other frameworks which transformed completely like AngularJS to Angular.

Thread Thread
 
duomly profile image
Duomly

We use Vue for small projects and don't see issues, it's true Angular had much bigger changes.

Thread Thread
 
aussieboi profile image
Marko Boskovic

Used Vue, for small and for big projects, and have no problem at all, it not up to frameworks how you organize structure of you apps. would put flexibility in pros, not cons.

Collapse
 
kayis profile image
K

Good summary.

About the SEO friendliness of React:

React sees itself as a UI library and not a framework. The reasoning is that it only offers basic UI features out of the box. Programming-model like I would consider it a framework.

Anyway, Next.js and GatsbyJS are seen as the frameworks for the library that React tries to be. They both come with pre-rendered HTML options that are more SEO-friendly. Next.js offers server-side rendering and GatsbyJS offers compile-time rendering.

I think this is also true for Vue.js, which in turn has projects like Nuxt.js and VuePress.

Collapse
 
duomly profile image
Duomly

True, we could add here stuff like for example react-helmet as well.

Collapse
 
philiphassialis profile image
Philip Alexander Hassialis

Minor correction: vue.js has 2way binding in the form of the v-model directive.

Collapse
 
avasconcelos114 profile image
Andre Vasconcelos

YES

As a big fan of Vue.js it astounds me that OP ranked Vue so low in here, Vue supports props like React does, but it also supports 2-way data binding to component-level variables (AND it lets you watch certain variables for changes over time, including watching store variables in Vuex!), it's performant and easy to learn, as well as it having a ton of support for all kinds of libraries

Collapse
 
edisonpappi profile image
Edison Augusthy

what about Svelte...?

Collapse
 
8detect profile image
Infinity Detective • Edited

After studying seriously about vue 3 i've decided to stick with react hooks for more convenient. 2-way binding is not a good idea ! Unnecessary ! Very confused ! Too many syntactic sugar, too many helper functions for vuex . Vue is easy to learn but actually more things to remember and of course more things must be changed in forthcoming version 3 😱
Good luck to Vue 🍀

Collapse
 
stephanelaforce profile image
Stéphane Laforce

What about Svelte?

Collapse
 
jckr profile image
Jerome Cukier

As a front-end engineer at Uber - we don't use jQuery. We're almost exclusively React, though a handful of projects use Angular of Vue.js. There's a couple of instances of jquery in our code in old projects.

Collapse
 
sunitk profile image
Sunit Katkar • Edited

I used to love Google GWT. It allowed working in Java and yet produce HTML and JS. Debugging was just like debugging a Java Swing app via Eclipse IDE. Of all the new frameworks, I personally like VueJS. But I'm sure a shiny new toy like Svelte will soon catch up and we will see articles like this on that :-)

For me, it's all about the expertise available in the team and the existing framework used in the company code base. For clean slate projects, all of the above pros and cons come into play .

Collapse
 
kdfemi profile image
MiniSoda

I was surprised when in you article you stated Angular documentation is not beginners friendly i beg to differ because i picked Angular up In June and the documentation has been really helpful, moreover TypeScript learning curve is not that high you practically don’t need to learn TypeScript if you want to learn Angular you can pick TypeScript concepts along as you learn Angular.

Collapse
 
webdeasy profile image
webdeasy.de

Very good summary, thanks! 😇

Collapse
 
duomly profile image
Duomly

I'm glad you like that :)

Collapse
 
yeneme profile image
Yene • Edited

Great blog, thank you for spending your time and effort in putting this list together.

Collapse
 
__shadz_ profile image
Chardenal Matthieu

Why the fact that Vue is not maintained by well-known companies is a con ?

Collapse
 
duomly profile image
Duomly

It could be a con if looking from a career point of view. Big companies very often have bigger projects, which can have an impact on the future and popularity of a framework.

Collapse
 
aminnairi profile image
Amin

Bigger company does not necessary means lasting projects over time. Google has many projects that were promising that have been stopped.

While a community project like the Linux kernel is lasting longer than most big company's projects. That should count for something...

Collapse
 
karan_shah89 profile image
Karan Shah

If you're giving out advice to learn something new, I would never add AngularJS, jQuery or BackboneJS (which uses jQuery too btw) to any list!

You should add other React Frameworks instead like GatsbyJS