Who has time to learn all the JavaScript frameworks anyway?

As front end developers, if competing standards weren’t enough, we also have to put up with a plethora of competing frameworks. Libraries are one thing, but frameworks take huge amounts of time to learn and the worst part is there’s always the new shiny one that does that one thing ever so slightly better.

And then of course you probably need to justify the time spent researching and final choice made to your boss from now and for the life of the product. And heaven help you if you chose wrong…

Why do we do this to ourselves? Where are the benefits? Can we all just get along? Give us your thoughts...

If you aren't able to comment below, it's possible that you need to login first. If you're still struggling, ping us on @javascriptkicks and we'll get right on that!


Robert Greyling
4/1/2015 8:57:29 PM
Seems I'm not the only one talking about this - spotted this earlier today: https://twitter.com/halspace2001/status/583257291484430336

Matthew Harris
4/2/2015 12:53:38 AM
Worst is that for some of them eg Ionic you have to learn angular first! And then each release has breaking changes. The developers themselves aren't immune from the same distraction either, with projects switching between grunt and gulp. I don't think I'm really complaing though to be honest as I like learning but for big business looking to invest it must be troublesome. As soon as you make your technological stand you become wildly out of date.

Robert Greyling
4/2/2015 7:51:41 AM
You're right @rtpHarry - it's hard not to come off sounding negative about the incredible innovation happening in this space. But as you point out, you have to decide the best course of action on a particular day, and usually you're stuck with it and that's a tough thing is such a fast moving dicipline.

Dom Barker
4/2/2015 8:31:25 AM
I've said it before, but one neat way of staying in date is to avoid the mega frameworks and instead stick to plain olde JS and libraries. It makes it easier to swap out bits of your application if something better comes along.

Christian Maioli M.
4/2/2015 1:29:42 PM
It seems to me that the JS community has an obsession with modularity, mostly due to the fact that the language itself promotes it. The plethora of frameworks issue is just a side-effect of this. Everyone wants to write their own modules as much as possible. Perhaps we should reuse more code and if we don't like something, contribute to that and improve it.

Matthew Harris
4/2/2015 3:51:03 PM
I think you're right about the modularity @christianmaioli - it seems that while everyone is still trying to find consensus on the best way to build things they are all going to do it their own way. I suppose I might have been looking at it the wrong way around last night - perhaps its not "oh I have to learn Angular before I can use Ionic", its "oh my Angular skills and code are reusable in Ionic".

Paul Wheeler
4/2/2015 4:35:30 PM
I agree heartily with @MostlyHarmlessD, code written in plain old javascript (maybe with a little help from transpilers) will outlast any framework and is the better investment. These days the logic I use to evaluate any given javascript framework is, will it let me use plain javascript in as many places as possible.

Robert Greyling
4/2/2015 9:41:15 PM
I agree @paulwheeler and @MostlyHarmlessD - going for plain JS is ideal in terms of code longevity. But the problem I have with it is that you look out at the jobs and candidates in the market and it's flooded with requests for and supply of specific skills like Angular or React, and it seems the companies themselves are _asking_ for those skills. Many of them couldn't care less about your foundation skill in JavaScript as long as you can "do Angular". Very seldom do you see job posts asking for plain old JavaScript, probably because most businesses have already made their bed with a Framework and are now looking for devs to support and expand it. How is that going to help front end developers to focus on the basics? I don't think it can, seems to be a game of supply and demand that can't be ignored....or can it?

Dom Barker
4/7/2015 8:19:06 AM
At Quill we just try to hire for skills. We are in the process of hiring a new senior front end engineer and don't ask for any specific frameworks - just experience of building non trivial javascript apps. Most people who have that experience have come across one or more of the major ones and thats fine. As a candidate looking for jobs then yes, things can be a lot tougher. Many employers insist on $YEARS of $FRAMEWORK and can't really see beyond that. It's particularly acute for contractors. OTOH, it's a pretty good sign that they don't have a good engineering culture, so you are probably being done a favour.

Andrew Robbins
4/4/2015 8:07:56 PM
I find the plethora of different options available incredibly valuable and inspiring. We work in the fastest changing industry in the world. The primary cause being the completely decentralized nature of the craft. Since everything is open-source, the only barrier to entry is your own intelligence and ambition. With freedom comes massive progress. When we're left with the unregulated choice to create and tinker, we're able to discover efficiency faster because everyone is both failing and succeeding at the same time. When it comes to JS frameworks, this is fantastic. It means we get to experience the energy and excitement of change, but more importantly, the ability to constantly produce code that's better, faster, and more maintainable.

Robert Greyling
4/7/2015 9:42:03 AM
@andrewmrobbins I completely agree that the plethora of options is incredibly inspiring - it shows just how much creativity is bustling around our area of expertise. Intelligence and ambition aside though, not everybody is lucky enough to be in the right place at the right time to nail a job with a forward thinking company or knows enough to be able to consult from gig to gig. Many front end devs are just guys and gals that need to put food on the table and get through the next round of redundancies in their enterprise work place. And to be fair, it's not the creators that should slow down or stop what they're doing - I'm not saying that at all because as you say, tremendous progress is being made. But is that progress focussed in a single direction to better the industry as a whole, or is that progress being made by different teams being spread too thin? I feel like the ES6 movement is an example of the first kind of progress, and I feel like a lot of teams and people are getting behind it as a standard and as a practice - which makes me very happy! I'm lucky enough to be in the first category and even then, given the amount of freedom I have, I'm hard pressed to stay up to date with how many things are changing, let alone have enough time to properly evaluate them enough to give a professional opinion on whether or not they should be used in the next project. And I'm one of the lucky ones :)

David Boureau
4/10/2015 7:35:13 AM
Excellent question, and the answer is : nobody. The so-called "innovation" in Javascript frameworks implies actually a ridiculously high churn rate with few, if not zero, added value for our customers. Each time you learn a new framework you loose all knowledge about routing, templating, etc of the previous framework you learned. Somehow jQuery was excellent but not structured enough, Backbone brought more structure but also more overhead, Backbone+Marionnette brings now everything you need. Adding layers to existing giants is really more efficient than switching all the stack all the time.

Robert Greyling
4/10/2015 8:31:58 AM
That's a great point @davidb583 - being able to reuse existing knowledge within your company or even between consulting jobs is incredibly important. In fact, it's probably why there is such a big push for "back to basics" plain old JavaScript - why? Because everybody in this game knows it! And doesn't have to learn something new. But if you have the Backbone or jQuery knowledge, you really would like some way to reuse that from all your developers! It's one of the reasons I'm quite excited about Aurelia coming out because they way they've done it, you can use their routing, but hook in your backbone views, or your knockout binding or ReactJs for fast rendering - it's all pluggable, and therefore gives you an opportunity to keep those skills you learned over the last few years and reused them without the framework forcing you to its will.

Charbs Black
4/10/2015 11:39:22 AM
Hey @RobertTheGrey, great piece as always. I still consider myself fairly new to the JS world, but I won't allow myself to fall for the same mistake that no one warned me about making a couple of years ago by learning jQuery and thinking i was a JS developer right then and there. For that reason, no matter what frameworks are out at the moment, my concern and my focus are all on understanding JavaScript, nothing but good old plain JS. I understand some people think this statement is laughable, but I really don't know how many devs who work on (whatever) framework can truly say they have a deep understanding of what JS does when these frameworks are being used. This is my opinion only, but I advise any up and coming JS dev to learn far beyond the fundamentals and slowly start shifting attention to ES6. I don't know if some of these frameworks will be there for us in a few years time.

Robert Greyling
4/10/2015 12:59:08 PM
I couldn't agree with you more @cayoub88 - very valid points. JQuery was (and is) excellent, even if it is overused, because it really opened our eyes to the possibilities of the web at a time where many vanilla JS devs were stagnating. It feels like jQuery is the originator of much of the innovation we've had over the last 10 years, to the point where many of the things expounded are now baked into the core language. I agree that ES6 is the logical extension for any JS developer going forward, and has a learning curve of sorts, but not nearly as much when you consider that many JS devs have background in languages that already have these features, so it's more of a merging of knowledge than learning from scratch. The same cannot be said for most JS frameworks unfortunately, and Angular is particularly bad at forcing a steep learning curve with very little benefit of potential knowledge reuse unless you stay on Angular, but even that is now up for question with v2. For me - I prefer vanilla JS, but if I must (and often I really really must) use a framework, I'd prefer that it stays out of my way while I go ahead and write JavaScript.

Gary Woodfine
4/15/2015 10:23:52 PM
In the time it took me to read all the comments and type this comment , 4 new javascript frameworks came into being and 2 died out!