JavaScript or should I say ECMAScript?
What's in a name?
Did you know that the name JavaScript belongs to Netscape?
The scripting language developed at Netscape was originally called LiveScript. Perhaps in an effort to bask in the reflected glory of Sun Microsystem's Java programming language, LiveScript was later renamed JavaScript, though in reality it bears no resemblance to Sun's Java.
A disagreement between Netscape and Microsoft over licensing ultimately led Microsoft to reverse engineer JavaScript and create their own version called JScript. Inevitably differences between the two variants of the language quickly appeared and linger to this day.
In order to bring some predictability to JavaScript, it was eventually standardized by the European Computer Manufacturers Association (ECMA). This standardized version of the language is, officially at least, referred to ECMAScript. In practice most people will always call it JavaScript, regardless of which implementation of the language they developing with, or browser they are targeting.
A brief history of JavaScript
Netscape 2 was released in early 1996 and offered completely new technologies created by the Netscape group, the most important of which were frames and JavaScript. JavaScript was a programming language written by Brendan Eich.
Eich was tasked with making Navigator's newly added Java support more accessible to non-Java programmers, He eventually decided that a loosely-typed scripting language suited the environment and audience, namely the few thousand web designers and developers who needed to be able to tie into page elements (such as forms, or frames, or images) without a bytecode compiler or knowledge of object-oriented software design.
The language he created was christened "LiveScript", to reflect its dynamic nature, but was quickly (before the end of the Navigator 2.0 Beta cycle) renamed to JavaScript.
JavaScript had been known as Mocha then LiveWire then LiveScript during its early development and it is thought that Netscape marketing wanted to try to cash in on the popularity of Java by renaming the language built into their browser to JavaScript. Note that while some Java and JavaScript code may appear similar, they are in fact two entirely different languages that serve completely different purposes.
Later in 1996, Netscape passed their JavaScript language to the European Computer Manufacturers Association (ECMA) for standardisation. The ECMA produced the ECMAscript standard, which embodied the JavaScript core syntax, but did not specify all aspects of the DOM level 0. With the release of Netscape 3 later in the same year, Netscape had produced JavaScript 1.1, which could also change the location of images, bringing on a wave of Web sites that used this most popular of Web page effects, making images change when the mouse passed over them. The images were also referenced as children of the document object and thus the DOM level 0 was completed.
Microsoft responded to JavaScript by releasing its own VBScript language (itself capable of hooking into embedded components). In addition, they released a port of JavaScript called "JScript", on 16 July, 1996. Internet Explorer 3.0, otherwise an amazing technical accomplishment from the standpoint of support for new W3C-sanctioned standards like Cascading Stylesheets, was one revision behind Navigator's JavaScript, which by then allowed for the wildly popular image swapping, and would remain behind until the release of version IE 3.02.
With the release of Netscape 4 in 1997, Netscape produced their most advanced technology to date, DHTML. Using a combination of yet more proprietary HTML tags and portions of the new W3C CSS 1 recommendation, JavaScript 1.2 gave programmers the ability to change the CSS style for document components, in particular the position and visibility of elements on the page, which were adopted by the W3C for their CSS 2 specification. The NS Layers DOM was born!
As Layers became more popular, Microsoft released Internet Explorer 4 browser in 1997. Unlike the Layers DOM model, the proprietary DOM model of IE 4 allowed any part of the document to be referenced, and have any CSS style changed, including many CSS 2 declarations. Most could have their contents rewritten. It also offered many other extensions, such as filters and transitions. This new syntax for referencing document components was more reliable and far more versatile and the W3C decided to adopt many of its syntaxes and components for their forthcoming DOM recommendation.
In mid 1998, Netscape released a new version of their browser, still relying on the layers DOM. They had failed to fix many of the bugs that plagued their browser, despite the new JavaScript 1.3 version. They also released the source code, and stopped charging for their browser.
In 1999, Microsoft released Internet Explorer 5, the first fifth generation browser, which supported a large amount of the W3C DOM 1 recommendation, as well as the proprietary techniques used by Internet Explorer 4. It also supported what is the current version of ECMAscript, ECMAscript 3, equivalent to JavaScript 1.5 (JavaScript 1.4 was used only by Netscape's server side JavaScript). As with all Internet Explorer versions, it still used a JavaScript version with several core extensions, known as JScript.
The W3C DOM allowed much greater functionality than the previous DOMs. It gave ways to create, remove and modify html elements, even after the page had loaded. All aspects of the page could be changed. Attributes could be added and removed from HTML elements. All styles could be changed, added or removed.
JavaScript Name Terminology
These names are subject to interpretation by the browser developers. This makes the JavaScript version unreliable, do not rely on it!
ECMAscript - The core syntax for JavaScript, defining control stuctures, intrinsic objects and variable types, operators, functions, scope, etc.
DOM level 0 - Says how to refer to forms, inputs, images, links and anchors as children of the document object.
Layers DOM - Says how to refer to positioned elements (layers) and modify their style as children of the document object with nested references.
Proprietary DOM - Says how to refer to elements and modify their style using the all collection of the document or parent object and the style child object of the element.
W3C DOM - Says how to refer to elements and modify their style using various getElementBy... methods of the document or parent object and the style child object of the element. Also says how to represent all document elements as a tree structure. Also allows elements to be created, modified or deleted even after the document has loaded.
Mocha - An early name for JavaScript, not recognised by most browsers.
LiveWire - An early name for JavaScript, not recognised by most browsers, used as the name of Netscape's server side JavaScript.
LiveScript - An early name for JavaScript, recognised by most browsers.
JavaScript - A collective name for all versions of JavaScript.
JavaScript1.0 - The first version of JavaScript to be released - Early ECMAscript + DOM level 0 without images.
JavaScript1.1 - Early ECMAscript + DOM level 0.
JavaScript1.2 - ECMAscript + DOM level 0 + layers or proprietary DOM.
JavaScript1.3 - More advanced ECMAscript + DOM level 0 + layers or proprietary DOM.
JavaScript1.4 - Server side JavaScript.
JavaScript1.5 - Even more advanced ECMAscript + DOM level 0 + W3C DOM.
JavaScript2.0 - JavaScript 1.5 with several extensions added by Mozilla - may become a future standard.
JScript - Microsoft's JavaScript variations with extended core features.
Active Scripting - Microsoft's user friendly way of saying 'JScript'.
Iain White on Google+.
Read Iain White's Web Developer blog.