DEV Community

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

The best front-end framework to learn in 2019

Duomly on October 16, 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...
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

Collapse
 
ashraful profile image
Mohamad Ashraful Islam

How it's a cons that "Vue is not maintained by big company like Google"?

Collapse
 
aussieboi profile image
Marko Boskovic

Big company using Vue?
You can add Pornhub, Apple, Google.

Collapse
 
devpato profile image
Pato

I thought my homies from pornhub only used php and jquery mainly. Didn;t know about vue

Collapse
 
harrika profile image
henry kirya

so why isn't anyone talking bout svelte the new kid on the block?. I find it has an easier learning curve than even Vue yet its just as powerful

Collapse
 
devpato profile image
Pato

"The best front-end framework to learn in 2019" should be re-named to the best front-end technologies to learn. Most of the techs mentioned here are not even frameworks

Collapse
 
vajohn profile image
Lajabu John

Where is flutter in all this

Collapse
 
8detect profile image
Infinity Detective • Edited

Off the topic ! Do you really know what flutter is for

Collapse
 
vajohn profile image
Lajabu John

Do you? or are we having a biased conversation about web frameworks and not front-end frameworks ?

Thread Thread
 
8detect profile image
Infinity Detective • Edited

Flutter is an open-source UI software development kit created by Google. It is used to develop applications for Android, iOS, Windows, Mac, Linux, Google Fuchsia. and the web. The first version of Flutter was known as codename "Sky" and ran on the Android operating system


en.wikipedia.org/wiki/Flutter_(sof...

mostly Flutter is use for Mobile App by now ! and all the front-end topics are about the battle of these top three : angular, react and vue !
google for me any such topics that people want to talk about flutter in the terms of best top front-end frameworks comparison then ?

Collapse
 
starvsion profile image
Junhai

Correction : Vue is both 1-way and 2-way data binding

Collapse
 
manyeya profile image
Khutso siema

You scared of calling svelte a framework?

Collapse
 
pallu profile image
Pallab Gupta

Knockout?

Collapse
 
vgerasimova profile image
vgerasimova

I would add here blazor also

Collapse
 
jbender11 profile image
John Bender

Any thoughts on Sencha Ext-js?

Collapse
 
camilablnpa profile image
Camila

Thank you !