DEV Community

Discussion on: The best front-end framework to learn in 2019

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
 
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
 
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
 
byrro profile image
Renato Byrro

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

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