While I don’t have the time remaining at RedMonk to do a truly in-depth analysis, I did want to post a quick hit with some stats and conclusions.
This analysis began by pulling a list of frameworks from the excellent TodoMVC, because as we all know, if it doesn’t work well for a todo list, it clearly can’t handle a larger app </sarcasm>. But I had to start somewhere, so start I did.
I first took a look at Stack Overflow and plotted tags referencing any of these frameworks over time (click to embiggen/focus):
I was frankly shocked by the overwhelming dominance of Angular.js. Although it’s well-known that Angular is quite popular, this is nearly absurd. It’s so popular that it’s impossible to even see trends in the other frameworks.
So I next removed Angular from the comparison and plotted everything again (click to embiggen/focus):
This produced some more broadly useful results. Frameworks tended to segment into a couple of main tiers, with few exceptions.
- Ember.js (note more recent and continued growth; this is top-ranked outside of Angular)
- Knockout (trending downward)
- Backbone.js (trending downward)
- Kendo UI
- Ext JS
- Dojo (barely)
- SAPUI5 (OpenUI5) —There are strong hints that this may be rising out of the pack as well, see graph below
Being RedMonk, we’re typically on the lookout for new, emerging technologies, so the rogue behavior of React and Polymer is of particular interest. They’re separately plotted here, in addition to SAPUI5/OpenUI5 (click to embiggen/focus):
Looking at up-to-the-minute information suggests that Polymer may have stalled out for the time being, while React continues to grow. This is in keeping with anecdata from the (far too many) conferences I attend, where I hear increasingly often about React but very little Polymer. Another surprise is SAPUI5/OpenUI5, which is one worth tracking in the future.
Regardless — in terms of new and emerging JS frameworks, those are ones to watch out for.
Update (2015/04/03): Added notes on SAPUI5/OpenUI5.
Disclosures: SAP is a client. Google (Angular, Polymer) and Facebook (React) are not.