JavaScript: 2014 in Review

2014-12-31 00:00:00 +0000 by Alex R. Young

I can't keep up with the libraries that people send to DailyJS -- there are just too many! I've always felt like this is a good thing: it's a sign the community is creative and works hard to solve problems in interesting new ways.

It's hard to decide on a framework or library for a particular task: should you use Koa, Express, or Hapi on the server? Gulp or Grunt as a build system? Then there's client-side development, with its rich set of libraries. This year alone I've used React, Angular, Knockout, and Backbone.

One of the reasons there are so many Node modules is npm is so good. There's still room for improvement, and the npm blog has been useful for tracking new and upcoming changes to the package manager. It seems like more people than ever are using npm for client-side development as well, so it'll be interesting to see if Bower still occupies its niche in 2015.

Speaking of 2015, I expect to see more people using ES6 features. We've already seen several libraries that use generators to make synchronous-style APIs for client-side modules, and server-side databases. Generators seem hard to learn so it'll take a while for these APIs to catch on.

There's still scepticism and even irritation in the Node community about ES6 modules. We've spent years writing CommonJS modules and happen to like the syntax, so ES6 modules are a hard pill to swallow. There's a gist from 2013 about Node and ES6 modules that has comments from well-known Node programmers, and since then es6-module-loader by Guy Bedford has appeared. This library is a polyfill that provides System.import for loading ES6 modules. Guy wrote a great article, Practical Workflows for ES6 Modules with lots of details on ES6 modules from a Node programmer's perspective.

I don't think 2015 will see a big Node/ES6 module controversy, though. It seems like CommonJS modules are here to stay, and perhaps eventually we'll start using both formats.

Another potential controversy is the future of Node forks. io.js got a of initial attention, but it seems to have cooled off over the last fortnight. But I think forks are positive and I'm excited to see what people do with alternative takes on Node.

If you do anything in 2015, please make more libraries and frameworks. We don't want a totalitarian open source community, we want a big wonderful mess, because open source is an ongoing conversation with no truly right solutions.