The lifecycle of a JavaScript framework is brief, according to a new analysis by Stack Overflow. However, the data may also highlight the difference between major frameworks and those that satisfy a specific niche.
In a blog post, Stack Overflow developer Ian Allen says a JavaScript framework's lifespan includes a quick rise in popularity and a slow burn as the framework loses favor:
There appears to be a quick ascent, as the framework gains popularity and then a slightly less quick but steady decline as developers adopt newer technologies. These lifecycles only last a couple of years.
Allen uses frameworks such as backbone.js, ember.js, and knockout.js as examples of this pattern. Using the same Stack Overflow Trends tool used in their analysis, InfoQ overlaid (on the same scale) those smaller frameworks vs larger ones such as Angular.js, Angular, and React.js.
Figure 1. Graph of % of Stack Overflow questions per month for various JavaScript frameworks.
This version of the data shows that Angular (2+) and React are still on their upswing and are not holding to the same popularity pattern as the smaller frameworks. Or, perhaps their lifespan is the same shape, but because of the size of the community usage, it operates on a different timeline.
Vue.js is an interesting point in time to look at. It's relatively new, not showing any activity until the middle of 2014. If the two to three year lifespan is accurate, we could start to see it fade in 2018 or early 2019 as new frameworks enter the market. On the other hand, if it is a true competitor to Angular and React, the rise is only just beginning.
Figure 2. Graph of % of Stack Overflow questions per month for Vue.js
Stack Overflow is an indirect indicator, however. While the question and answer site is very popular among software developers, there are reasons why this may be misleading. For example, Hacker News user Kajayacht says the questions may already be answered:
... as time goes on, the [jQuery] questions have already been asked. So of course there's going to be less questions asked about jQuery in 2017 versus 2009, because if I need to figure out how to select elements based on an attribute rather than a class or id, it's already there.