getify / You-Dont-Know-JS

A book series on JavaScript. @YDKJS on twitter.
Other
178.28k stars 33.42k forks source link

"Don't use terms like "JS6" or "ES8" to refer to the language", but "ES6" is used throughout. #1657

Closed flimzy closed 4 years ago

flimzy commented 4 years ago

I have searched for this, but may have missed it.

Edition: 2nd

Book Title: Get Started (and possibly others)

Chapter: Many

Section Title: Many

Problem:

At the end of "What's With That Name", we are advised:

Don't use terms like "JS6" or "ES8" to refer to the language. Some do, but those terms only serve to perpetuate confusion. "ES20xx" or just "JS" are what you should stick to.

Yet the term "ES6" is used frequently, including later in the same chapter under "Jumping the Gaps" (https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/get-started/ch1.md#jumping-the-gaps), and in the following chapter (https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/get-started/ch2.md#each-file-is-a-program).

It's unclear to me whether this is violating the advice in the note, or maybe there's a subtle distinction between this use of "ES6" and "referring to the language" as ES6. Either an edit, or clarifying the advice would probably be helpful.

getify commented 4 years ago

The intent of this admonition is not to go back in history and change what people validly called the language's versions in the past. For example, JS was pretty much exclusively named "ES3" for that version (from 1999-2009), and then "ES5" (from 2009 - 2015). We can't expect to back and retroactively invent "ES1999" and "ES2009", respectively.

At the time the next version after ES5 was coming together, ES6 was the official name of the language version, in fact all the way up until just a few months before that version landed (when they tried to late-switch to "ES2015"). I don't think it was reasonable to change the language version name that late, since (for example) some of us had already published books with "ES6" in the title.

Quoting the text (emphasis added):

And indeed, since 2016, the official language name has also been suffixed by the revision year; as of this writing, that's ECMAScript 2019, or otherwise abbreviated ES2019.

So... "ES6" is at least as official as "ES2015" (or even moreso if you ask me). So this statement you quoted applies to other (unofficial and incorrect/confusing) names for different versions, such as "ES8" and "JS6".

From "ES2016" forward, the proper version name is "ES(full-year)". But that doesn't apply backwards prior to that convention taking hold.

flimzy commented 4 years ago

Thank you for the clarification. What you explain here does make sense.