I have gotten a lot of confusing questions from both beginners to mid-level JavaScript developers on the versions of JavaScript. Their confusion comes from the fact that there is a lot of instability in the language. Before we dive into these essential concepts, let's get these confusions out of the way.

The first thing you need to know which explains all the instability and continuous changes to the framework is that it was built within ten days in May of 1995. The language was developed by Brendan Eich, who at that time, was a Netscape Engineer. After Netscape, he co-founded Mozilla (famous for Firefox). Currently, he's building at Brave.

JavaScript was initially named Mocha, then renamed LiveScript the same year. After receiving a Sun trademark, it finally got the name JavaScript. The language was a great tool, and other browsers looked to adapt it. For this to be possible, the need for standards came up, and the language was changed to become ECMA.

The language got the name ECMAScript during the standardization process making other names you know today an implementation including "JavaScript." One other popular implementation is "ActionScript." The standardization process kept updating the language to make it better which lead to the need for versioning the standards.

In a bid to making ECMAScript a better language for browsers, lots and lots of changes went in to improve what Brendan had done. The improvements come in batches, and each batch is released at a particular time.

To keep track of these changes, each batch of changes were versioned. ECMAScript 2 released in 1998 followed by ECMAScript 3 in 1999. ECMAScript 3 (ES3) is what has become the touchstone JavaScript today.

Fast-forward to now, a lot of controversies and disagreement happened between the ES3 period to what we have now. All in an effort to make this one language a great tool for browsers.

ES6, which after ECMA decided to use years as version instead of numbers, became ES2015, is the version released in 2015. It came with a lot of changes at a time where JavaScript was becoming enormously popular. A large number of changes and additions didn't help beginners so well because on attempting the to learn "JavaScript," they end up hearing more confusing terms like ES6 and the likes.

It also didn't help that browsers didn't support ES6 features which led to the introduction of transpilers.

Nothing changed in previous versions of JavaScript. Just fewer nice tools to help make the language easier to work with.

The question I always get comes in either of these forms:

  1. What is ECMAScript 2015/ES6?
  2. Should I learn ES6 instead of JavaScript?
  3. Why do we need a different version of JavaScript?

Let's get some answers!

ES2015 (aka ES6) is a version of JavaScript just like ES3 (which you have been used to writing). It introduces new features to the language which we will see in this series. ES2015 is not a new language, it doesn't bring breaking changes (which means your old JS works), and supports progressive enhancement so you can use what features are available in your browser and mix them with old language features.

Now that you know that these two terms are not different from each other, you can learn ES2015 just to enhance your JavaScript skills and keep in touch with cutting-edge technologies.

Being the year 2017, ES2015 has been out for some time now. Browsers are adopting the features more and more. ES2015 is the future of the JS language. Now is an excellent time to learn JavaScript with all that ES2015 has to offer.

ES2015 is not a different language, it does not introduce breaking changes, and does not require an entirely different environment to run. The new version only tries to make JavaScript better with many improvements.

For example, when declaring variables, var works as well as let and const. let and const were introduced in ES2015 to simplify variable management in JavaScript but don't imply that var is not to be used anymore or doesn't work anymore.

We'll be touching on many ES6 features in this course and will learn modern JavaScript.


What did you think of the article? Let us know!
(these comments are powered by GitHub issues and use 0 trackers)