If you find this post useful, you can sign up to my mailing list, check out the other posts on my blog, or follow me on twitter. I've also got a couple of active side projects that you might like to check out:
- ippy.io - An app for creating beautiful resumes
- many.tools - A collection of useful utilities for designers and devs
If you're new to JavaScript development, you've likely seen the terms ES6 and ES2015 mentioned, and perhaps wondered what the **** the writer was talking about.
You might've even suspected a typo - after all, you're learning JS not ES.
Regrettably, it's not a typo - you've just entered the somewhat confusing world of JavaScript version naming. Welcome.
So… What is ES?
ES is shorthand for ECMAScript.
I know, I know, you thought you were learning JavaScript! Well, you are, but turns out you're kind of sort of also learning ECMAScript. Two for the price of one!
ECMAScript is the specification that defines the functionality that the JavaScript language is expected to implement. Technically, JavaScript is an implementation of the ECMAScript standard.
It's actually quite interesting if you want to read more about it.
If not, for the most part you can get away with mentally substituting ES => JS, and ECMAScript => JavaScript.
And What About The Numbers?
The numbers are versions.
Like all programming languages, JavaScript has developed over time. New features have been added, making our lives as programmers easier, and allowing us to more effectively author complex applications (without our code devolving into carbonara).
As these new versions are released they are named. ES6, ES2015, ES7, ES2017 - these are all versions of the ECMAScript standard.
When you see references to an ES version, the author will often be writing about particular features of JavaScript that are have become available in said version.
Unfortunately, particularly for a few years, there were multiple names flying around for the same versions.
- ES6 is ES2015
- ES7 is ES2016
Whats happened here is that while originally ECMAScript versions were incrementally numbered and named, with the release of ES2015 there was a transition to naming based on the year of release.
- ES6 (ECMAScript version 6) was released in June of 2015, so ES6 => ES2015
- ES7 (ECMAScript version 7) was released in June of 2016, so ES7 => ES2016
Kind of makes sense right?
Unfortunately we in the JavaScript community often still use ES6/ES2015 and to a lesser degree ES7/ES2016 interchangeably, so you kind of just need to remember that these are equivalent.
ES2015 and ES2016 are also versions in which some fairly substantial changes were introduced to the language spec, so you're more likely to run into discussion of these versions than others.
The Future
Thankfully, in the years since the release of ES2016, the community appears to have somewhat settled into the year based naming scheme.
While you'll still see references to ES8, ES9 and ES10, referring to them as ES2017, ES2018 and ES2019 seems to have become the more common practice.
So cheers, to a slightly less confusing future 🍻
Top comments (0)