It can be difficult to keep up with all the things going on in web development, especially since the JavaScript language itself has been changing over the last several years. After several years of relative stability1, the ECMAScript spec (ECMAScript is the specification for the JavaScript language) has changed quite a bit over the last 3 years, with more changes on the way. In this post I wanted to highlight a few of the resources I can recommend for keeping up with the language changes.

Learning ES6/ES2015

If you haven’t paid attention to any features that aren’t ready in all browsers yet, or you’re getting back to JavaScript development after being away for a while, you probably could use a resource to catchup on the ES6 JavaScript release from 2015. ES6 is now almost completely implemented in the latest versions of all major browsers, so if you’ve been ignoring it due to compatibility concerns, now is the time to learn. Fortunately there are a lot of great resources for learning about ES6. My favorite quick reference is the Learn ES2015 page from Babel. It’s a short, example filled page with explanations of all the major features of the language update. If you want something meatier, there have been several resources created by JS experts. Understanding ECMAScript 6 by Nicholas Zakas and Exploring ES6 by Axel Rauschmayer are books that go through the new features in detail. If you prefer video tutorials, Wes Bos has a whole video course on ES6.

Keeping up with new features

Things haven’t been changing as fast since the ES6 release. The first 2 “annual releases” of the ECMAScript spec contained only a combined 8 features. but there are still a lot of new features working their way through the ECMAScript pipeline. If you want to get a quick overview of the features being considered for future releases, the best place to look is the TC39 proposals repo on Github. TC39 is the organization that guides the future of the ECMAScript spec. Proposals go through a 4 stage process, where stage 1 can best be understood as “ideas”, and stage 4 is “confirmed for the next ECMAScript release”. Nicolás Bevacqua put up a good post last week describing this process in depth, as well as giving a brief description of the more advanced proposals in the queue. If you’re interested in keeping up with new proposals but want somebody to walk you through them, I recommend subscribing to Axel Rauschmayer’s 2ality blog. In addition to writing the ES6 book mentioned above, he regularly writes blog posts highlighting new proposals with detailed explanations of the feature implementation and motivation.

Testing new features

Almost all of the higher stage proposals on the TC39 list have been implemented by Babel and you can try them out in the Babel REPL or by setting up a small project that loads in Babel.

Keeping up with the conversation

If you’re a twitter user, probably the easiest way to keep up with language evolution is to follow the people who are shaping and teaching the new language features. Some twitter follow recommendations:

  1. From the release of the ECMAScript 5 spec to the ES6/ECMAScript2015 spec, the language wasn’t exactly stable in practice because browser implementations didn’t always move quickly, and there were still many incompatibilities. But standard language syntax stayed stable for quite a while, which allowed the browser ecosystem to iron out some of those kinks prior to the adoption of ES6. ↩︎