Advanced Static Types in TypeScript

This course explores the capabilities of TypeScript’s type system and shows how to use advanced static types in practice.

Watch the Course

Death to Confusing ECMAScript Version Names

For the longest time, "ECMAScript 6" or "ES6" were the official terms used to refer to the language version succeeding ES5. Over the years, we've had ES1, ES2, ES3, ES4 (which never came about), and ES5. Hence, naming the new version "ES6" would only be logical.

Shortly before finishing the work on ES6, however, TC39 decided to transition the ECMAScript standardization process to a yearly release cadence. Each new release would carry the standardization year in its name. Thus, "ECMAScript 6" officially became "ECMAScript 2015".

Of course, the JavaScript community had been talking about the new version for years. The term "ES6" was used all over the Internet, making a last-minute rebranding difficult, if not impossible. The genie was out of the bottle, and the name was out there. Fast-forward one year, and we've seen the standardization of ECMAScript 2016, which some people now refer to as "ES7".

ECMAScript 2016 Language Specification

Here's the thing, though: "ES7" is nowhere near as widespread a term as "ES6" was or still is. Therefore, I suggest we drop the term "ES7" in favor of "ES2016" — once and for all. Let's call the child by its name instead of coining an unofficial second term.

Moreover, I'd rather have a single name for each JavaScript version than two, if only for avoiding confusion. Plus, we won't have to add the offset 2009 to a given version number if we want to determine which year's standard someone is referring to.

Naming is hard already. Let's not make it even harder.

Learn Node