Learning JavaScript can be confusing, especially when some articles sprinkle in acronyms like ES5, ES8, ES followed by some number. Here’s a fun 2 minute history lesson to make sense of it all.
1995 — a guy named Brendan Eich was recruited by Netscape to make a language that could be run in the browser. He ended up writing it in 10 days. Originally, it had the code name Mocha but was launched as LiveScript, then renamed as JavaScript because everyone thought Java was the most awesome thing in the world and no one wanted to use a thing called LiveScript.
1996 — Microsoft decided to release their own version of JavaScript called JScript and was supported in Internet Explorer 3.0. JScript has since been supported by the company through Internet Explorer up until 2011 with Internet Explorer 9.
1997 — To prevent a scripts war, Netscape went to the European Computer Manufacturers Association, aka ECMA and asked them to standardize JavaScript. They agreed on one condition — the language has to use their name. At first Netscape wasn’t too keen on the name because it sounded too much like a skin disease. A compromise was made by adding Script to the end of the name, resulting in ECMAScript — shorted to ES to avoid pronouncing ECMA. The first edition came out in in June. JavaScript, as a result, becomes subset to ECMAScript and uses the standard as its governing and principle design.
1998 — Macromedia Inc (now part of Adobe Systems) created something similar called ActionScript. The last stable release was in 2006. No one talks about ActionScript anymore since the death of Flash and is considered a dialect of ECMAScript.
ES1 (June 1997), ES2 (June 1998), ES3 (Dec 1999), ES4 (Abandoned) — are the first 4 editions of ECMAScript. We don’t really need to know the details of these because programming seems to age in dog years and these versions can now be considered ancient.
ES 5 (December 2009) — ten years after politics resulted in the abandonment of ES4, ES5 was released.
ES6 / ES2015 (June 2015) — ES6 was the name popularized before release but came out under the name ES2015 to reflect the year it was released. This means that ES6 and ES2015 are the same thing. Officially its called ES2015 but most people know it as ES6.
ES2016 (ES7 / June 2016), ES2017 (ES8 / June 2017), ES2018 (ES9 / June 2018) — New versions of ECMAScript has now moved to yearly revisions and releases. Don’t worry, everything is backward compatible and new features such as asynchronous iteration and generators, regular expression features and rest/spread parameters have been added to make life easier.
June 2019? — flattening arrays through Array.prototype.flat()
and optional catch binding is currently on the table for ES2019. There’s still 3-ish months away before the new features is available to us.
LiveScript, JScript, ECMAScript, ES are all just alternative names for JavaScript.
Everything that looks, smells and feels like JavaScript but not JavaScript is probably a subset/dialect of ECMAScript of some sort — with ECMAScript being the parent governing standard that was used to create the language.
JavaScript has gone through several name changes and aliases. It still has nothing to do with Java, except for certain aspects like syntax and the name. Design wise, it’s closer to Self and Scheme, which Brendan Eich initially tried to implement but got rejected because Netscape wanted something that looked cool like Java.