Charting Stacks

Language Framework Popularity: A Look at JavaScript

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

TL; DR – Express is the biggest game in town by orders of magnitude. Early adopters are increasingly looking to Koa. Sails continues to grow in popularity.

Framework: ‘a basic structure underlying a system, concept, or text.’

We have recently looked at frameworks used with Java, and as we noted one of the factors which drives the popularity of a language is the availability of frameworks and tools which enhance developer productivity, something which Stephen O’Grady has covered in the past

In the bi-annual RedMonk Programming Language Rankings produced by my colleague Stephen O’Grady we consistently see JavaScript as one of the top three most popular languages. There are a number of factors that people point to, but the majority of growth in the usage of JavaScript in the language rankings is directly attributable to the growth in the usage in Node.js.

While many developers can, and still do, argue that ‘real programmers’ don’t use JavaScript, this is a demonstrably untrue statement in 2016. Companies such as Uber, Walmart, Disney and Paypal are running large parts of their mission critical, server side, infrastructure on JavaScript.

Looking to the future we continuously hear of developers choosing JavaScript as their preferred language with respect to the emerging serverless paradigm. The improvements, and gradual removal of some of the ‘quirks’ of the language, which are being driven by the ECMA process all point towards an even stronger future for the language in multiple settings.

For the purposes of this analysis we looked at the frameworks we hear mentioned most frequently in our conversations around JavaScript. These frameworks are primarily focused on the server side, with the criteria that we hear the framework mentioned in conjunction with creating REST APIs. This is by no means a fully exhaustive list, but it does capture the most popular frameworks that we hear about being used with JavaScript (some frameworks are layered together, with frameworks such as SailsJS, KrakenJS and FeathersJS all built on Express).

There are a number of other incredibly popular JavaScript frameworks focused on other problem spaces that we have not included here, such as Socket.io, Derby and Meteor. Front end frameworks such as Angular and React are also outside the scope of this particular piece of research.

If there is a framework you feel we should be looking at, either in this context, or in the wider JavaScript ecosystem, please do add a comment below or let me know on twitter.

Framework Popularity

We began our analysis by looking at the popularity of various frameworks on Github. Express emerged as the clear winner here.

final-javascript-fw-stars-20160912

final-javascript-fw-issues-20160912 final-javascript-fw-commits-20160912

Next we looked at download stats from npmjs.org.

final-npm-wexpress-20160916

It is here that the dominance of Express is really shown. At over 100 million cumulative downloads it is by far the most popular framework for use with JavaScript. The next closest competitor is HAPI, which has 3.3 million cumulative downloads. To put this in perspective Express got twice as many downloads in the month of August as HAPI has gotten in its entire lifetime. Now there are many factors that you should take into account, including upgrades, version iterations, dependencies, automated build systems and so forth. However, even taking all of these factors into account it is clear that, no matter what way you slice and dice the information, Express is the clear leader.

Among the remaining frameworks we see the following breakdown of downloads.

final-npm-woexpress-20160916

Only a subset of the frameworks were represented on Twitter.

final-avascript-fw-twitter-2016-09-16

Commerical and Community Contributions to Individual Frameworks

Before we delve into the frameworks, we do have to note the outsized influence of TJ Holowaychuk on both Express and Koa. He accounts for 75% and 44% of the code changes in the respective projects. It is fair to say that Node.js adoption would be nowhere near the level it is without his contributions. For this analysis all of TJ’s contributions are marked as community.

Express

Now while it is outside the scope of this analysis, it is impossible to talk about Express and not acknowledge the frustrations which emerged in the community in recent times, from the sale of the Express name to Strongloop, ultimately ending up in IBM, and a key maintainer leaving the project. There has been a defined drop off in commit activity over the last few years.

final-javascript-express-cci-20160912final-javascript-express-ccc-20160912

 

Ownership of Express moved from IBM to the Node Foundation in February of this year. As of now there has not been a noticeable uptick in activity.

Koa

The original team behind Express are now focused on the Koa framework. One of the key aspects of Koa is the decision to ditch callbacks in favour of generators. Now this impacts adoption in some unusual ways. For many developers coming to Node, callbacks were and are one of the more difficult concepts to understand, and people often end up in ‘callback hell’. The trade-off is once the investment has been made to learn an approach, e.g. callbacks, people are sometimes reluctant to move on.

final-javascript-koa-cci-20160912final-javascript-koa-ccc-20160912

Developers we speak to that are using Koa are very much in the early adopter area, but we do expect to see significant further growth in the usage of Koa.

Sails

Given our bias towards server side frameworks in this research, we debated including Sails as it is primarily discussed as a front end technology. However, Sails is reasonably widely used for creating REST APIs, hence its inclusion.

final-javascript-sailsjs-cci-20160912 final-javascript-sailsjs-ccc-20160912

Loopback

Loopback is the opensource basis for IBM’s API Connect product, and as you might expect IBM dominate the overall contributions to Loopback. Loopbacks focuses on making REST APIs easy to create and manage.

final-javascript-loopback-cci-20160912 final-javascript-loopback-ccc-20160912

 

HAPI

HAPI was originally created at Walmart, and is used in a number of large enterprises. There is still some growth in interest, and the community remains reasonably active.

final-javascript-hapi-cci-20160912 final-javascript-hapi-ccc-20160912

During 2015 a number of the main project leads, who collectively account for almost 88% of the code contributions to HAPI, moved onto other roles from Walmart, and we have taken this into account in our analysis. The project leads have stated they will continue to remain involved in HAPI.

Kraken

The Kraken framework was created at Paypal, and they remain by far the biggest contributor to the framework. The overall growth in interest appears to have tapered off at this point, as has them level of contributions from Paypal

final-javascript-karkenjs-cci-20160912 final-javascript-karkenjs-ccc-20160912

Feathers

Feathers is included here due to the spike in interest we noted in early 2016. We have heard of some usage for the generation of “real-time” REST APIs using the framework.

final-javascript-feathers-cci-20160912 final-javascript-feathers-ccc-20160912

Commercial Support & Licensing Information

When we move to large scale enterprise deployments, commercial support can become a significant factor for software, although this appears to be far less of a concern among the JavaScript community.  The MIT License is used by all of the top tier frameworks analysed bar Kraken.

Framework Commercial Support License
Express IBM MIT License
Sails None MIT License
Koa None MIT License
Loopback IBM MIT License
HAPI None Modified MIT (not clearly stated)
Kraken None Apache 2.0
Feathers None MIT License

Notes on the analysis

  • Data was pulled to the end of August
  • Where possible we have identified commercial contributions to a project, but there will be some minor gaps and inaccuracies in this mapping.

Disclaimers: Meteor and IBM (owners of StrongLoop) are RedMonk customers.

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *