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... [Read Full]
markdown guide
 

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!

 

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.

 

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.

 

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 πŸ™‚

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

 

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

 

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

 

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.

 

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.

 

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

 

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.

 

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

 

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.

 

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.

 

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.

 

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.

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

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.

 

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.

 

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

 

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

 

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

 
 

Nah, we are too busy to migrate our projects out of Angular, we don't have time.

 

Wow such original article. Iterating through pros and cons of jaded frameworks with their salaries at the end. Better write out some tough narrow feature of the one framework instead of adding another meaningless article.

 

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 πŸ€

 
 

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.

 

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.

 

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

 

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.

 

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...

 

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

 

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 .

 

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

 
 

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

 

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

 

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

 
 
 

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

 

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

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 ?

 

"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

 
 
 

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

 

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

 
code of conduct - report abuse