How JS evolved in all these years?
What about JavaScript? What is its history?
The name JavaScript is probably a misunderstood programming language name. Is this language related to Java? Is it only the script form for Java? Is it only for writing scripts and not real programs? Many kinds of questions revolve around JavaScript.
When Brendan Eich first conceived of the language, he code-named it Mocha. Internally at Netscape, the brand LiveScript was used. But when it came time to publicly name the language, “JavaScript” won the vote to be called so.
Why? Because this language was originally designed to appeal to an audience of mostly Java programmers, and because the word “script” was popular at the time to refer to lightweight programs. Lightweight “scripts” would be the first ones to embed inside pages on this new thing called the web!
In other words, JavaScript was a marketing ploy to try to position this language as a palatable alternative to writing the heavier and more well-known Java of the day. It could just as easily have been called “WebJava” for that matter.
There are some superficial resemblances between JavaScript code and Java code. Those similarities don’t particularly come from shared development, but from both languages targeting developers with assumed syntax expectations from C (and to an extent, C++).
In some ways, legal relationships run even deeper than the syntax. Oracle (via Sun), the company that still owns and runs Java, also owns the official trademark for the name “JavaScript” (via Netscape). This trademark is almost never enforced, and likely couldn’t be at this point.
For these reasons, some have suggested we use JS instead of JavaScript. That is a very common shorthand, if not a good candidate for official language branding itself. Indeed, JS almost exclusively refers to the language.
Further distancing the language from the Oracle-owned trademark, the official name of the language specified by TC39 and formalized by the ECMA standards body is ECMAScript.
“Java is to JavaScript as ‘ham’ is to ‘hamster’.” – Jeremy Keith, 2009
JS 20 years after the first realization.
Since 2016, the official language name has also been suffixed by the revision year; for example, the ECMAScript 2020, otherwise abbreviated ES2020. In other words, the JavaScript/JS that runs in your browser or in Node.js, is an implementation of the ES2020 standard. If you are living in 2030, the standard of ECMAScript should be ES2030.
Note: 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” is what you should stick to. Whether you call it JS, JavaScript, ECMAScript, or ES2020, it is most definitely not a variant of the Java language, and has nothing to do with Java Language, except the similarity of the name of Java on it!
As we mentioned before, TC39 is the technical steering committee that manages JS language. Their primary task is managing the official specification for the language. They meet regularly to vote on any agreed changes, which they then submit to ECMA, the standards organization.
JS’s syntax and behavior are defined in the ES specification. ES2020 happens to be the 10th major numbered specification/revision since JS’s inception in 1995, so the specification’s official URL is hosted by ECMA, you will find “10.0”: https://www.ecma-international.org/ecma-262/10.0/
The TC39 committee is comprised of between 50 and about 100 different people from a broad section of web-invested companies, such as browser makers (Mozilla, Google, Apple) and device makers too. All members of the committee are volunteers, though many of them are employees of these companies and so may receive compensation in part for their duties on the committee.
TC39 meets generally about every other month, usually for about three days, to review work done by members since the last meeting, discuss issues, and vote on proposals. Meeting locations rotate among member companies willing to host.