javascriptgoogle-chromeecmascript-6netscape

Why didn't Chrome create its own implementation of ECMAScript?


In 1995 Netscape created JavaScript, followed by Internet Explorer that also created JScript.

As I understand, so as to avoid the "Best viewed with IE" or "Best viewed with Netscape" and make the life easier for programmers, the ECMAScript standard was developed, and JavaScript was standardised (JScript also adopted the standard).

Taking into account that JavaScript is a trademark of Oracle Corporation, why modern browsers like Chrome or Opera used that old implementation of ECMAScript (JavaScript) in a time where the dominant web programming language was JScript, instead of creating a new implementation also compliant with the ECMAScript specification?

In other words: JavaScript is the Netscape/Mozilla implementation of the ECMA specification, and JScript is Microsoft dialect of ECMAScript. Why Chrome adopted JavaScript and didn't create, for example, ChromeScript or an implementation without trademark?


Solution

  • Why didn't Chrome create its own implementation of ECMAScript?

    Chrome did create their own implementation of ECMAScript. The engine that ran their implementation of ECMAScript was and still is called V8 and is still in use today. In fact, it's now used by Chrome, Edge and Node.js (and others).

    The public at the time didn't really know the phrase ECMAScript - they mostly just new about Javascript from Firefox and perhaps knew about JScript in IE. When Javascript was taken to a standard's body, they decided they wanted a name that had no trademark affiliation at all. In the words of Brendan Eich (the inventor of the language), the term "ECMAScript" chosen as clearly no trademark association at all and ugly enough that nobody would ever actually use the term in a user-facing product.

    ECMAScript was not and still is not something John Q Public would know about (if not a developer). People knew of "Javascript" from the original Netscape days and currently at the time in Firefox/Mozilla. Some people knew that Microsoft's competing implementation that was similar (but not identical) was called JScript. Though even people developing largely for IE at the time would refer to Javascript as the language they were writing.

    So, when Google developed their own new implementation of ECMAScript, they referred to it to the public as Javascript. That was just a name used to describe their implementation. That name meant NOTHING at all about its heritage. The V8 Javascript engine was entirely new, not a spin-off from something else.

    To summarize, V8 is designed to be ECMAScript compatible and is known to the public in Chrome as a Javascript implementation.


    In a note of history, "Javascript" was originally developed at Netscape. "Java" was originally developed at Sun Microsystems. Somehow in the relationship between Netscape and Sun Microsystems, Netscape was allowed to use the term "Javascript", but Sun actually owned the trademark on it. Eventually, the Netscape browser was spun out into the Mozilla foundation and Sun was acquired by Oracle. So, yes Oracle owns the trademark to the term "Javascript", but many are allowed to use it to describe their implementations of ECMAScript. Other companies, at various times, have preferred to stay completely away from any possible trademark issues and that's why others have use JScript, ActionScript, etc... to name their implementations.

    You would need a trademark lawyer to go deeper into the legal issues around using the term Javascript.

    When Mozilla spun out of AOL/Netscape as an independent company, they had a few firedrills around whether they could continue to use the term "Javascript" in their code and user interface. Some of those are documented in their bug system. I don't know the precise legal dealings that decided it all, but suffice it to say that they are still using the term "Javascript" many, many years later. Sun Microsystems wasn't bothered by that at the time and even a more litigious Oracle who now owns the trademark (by way of its acquisition of Sun) has not tried to stop its use at Mozilla or other places.


    Keep in mind that V8 in Chrome implements a language to the ECMAScript standard. Chrome extends ECMAScript as do all browsers by adding their own global objects to the environment such as the window object in the browser. Those global objects in the browser are standardized in different standards efforts that have to do with browsers, not with the actual ECMAScript language.