The ECMAScript standard describes a Web ScriptingLanguage that can enrich and enliven Web pages in a Web browser. ECMAScript is the only standard scripting language on the Web; it is based on the ECMA-262 specification, which outlines an ObjectOriented ProgrammingLanguage for performing computations and manipulating objects within a host environment, such as the browser. For the complete ECMA-262 specification, see http://www.ecma-international.org/publications/standards/Ecma-262.htm . ''The ECMAScript standard describes the language, but doesn't explicitly tie it to Web scripting. Although that is by far the most common use for the language, it is incorrect to assume that the DocumentObjectModel is somehow tied to the standard.'' ---- '''History''' Started out as LiveScript (in September 1995) under Netscape Navigator 2.0 beta, Netscape changed the name to JavaScript in a joint announcement with Sun (December 4, 1995 - http://wp.netscape.com/newsref/pr/newsrelease67.html). Originally based on the specification of and still commonly referred to as JavaScript. ''JavaScript is the Netscape implementation of the ECMAScript standard.'' ''Note that despite having similar names, JavaScript and JavaLanguage are quite different languages.'' BrendanEich is the creator of JavaScript ( http://wp.netscape.com/columns/techvision/innovators_be.html ). The O'Reilly network has resumed the JavaScript history quite well here: http://www.oreillynet.com/pub/a/javascript/2001/04/06/js_history.html ---- Is EcmaScript actually used anywhere? I mean, IE uses JScript, not EcmaScript, and Netscape uses JavaScript. (More: MacromediaFlash uses EcmaScript in its scripting language ActionScript. SVG (ScalableVectorGraphics) uses it.) JScript implements all of the EcmaScript specification (according to Microsoft's documentation) but extends it with additional features. The same applies to JavaScript. See also http://www.mozilla.org/js. These people work together with the ECMA committee for the next version of JavaScript and the 4th version of the standard. The Mozilla project has two open-source engines (one in Java and one in C) that can be embedded into other projects. Other groups have implementations of their own like Opera, KDE, Day, Lotus, SAP, etc. EcmaScript is used or implemented in numerous environment: * SpiderMonkey (JavaScript-C) Engine ( http://www.mozilla.org/js/spidermonkey/ ) * RhinoInterpreter: JavaScript for Java ( http://www.mozilla.org/rhino/ ) * FESI ( http://www.lugrin.ch/fesi/index.html ) * JSDB use it to implement a database and an XML processor ( http://www.jsdb.org/ ) * Microsoft IIS can use JScript with ASP or JScript.NET with ASP.NET * WindowsScriptHost can use JScript ( http://msdn.microsoft.com/library/en-us/script56/html/wsoriWindowsScriptHost.asp ) * ActionScript: Macromedia software as Flash and Director use it as a programming language, other software as DreamWeaver, AuthorWare, Flash(JSFL) use it to extend the environment, the FlashCom server use it server-side * almost all Adobe software Photoshop, Illustrator etc (example: http://partners.adobe.com/asn/illustrator/scripting.jsp) * in some discreet software as 3DSmax you can use JScript * Netscape server at one time used JavaScript server-side (but not anymore apparently) ---- KjsEmbed is a good example of an EcmaScript application outside of Netscape/Mozilla or InternetExplorer. Cheers, -- JasonNocks ---- ''"EcmaScript for XML (E4X) is a programming language extension that adds native XML support to EcmaScript (JavaScript). It does this by providing access to the XML document in a form that feels natural for ECMAScript programmers."'' -- http://en.wikipedia.org/wiki/E4X See also: * "E4X - XLINQ in Javascript, but when" on ASP.NET News -- http://www.dotnetslackers.com/XLinq/re-14014_E4X_XLINQ_in_Javascript_but_when.aspx ---- '''ECMAScript Edition 4''' ECMAScript Edition 4 / JavaScript 2.0 is hardly recognizable as JavaScript. * Proposed ECMAScript Edition 4 standard (http://developer.mozilla.org/es4/) * Compare with Netscape/Mozilla's JavaScript 2.0 spec (http://www.mozilla.org/js/language/js20/) * "What's Wrong with JavaScript 2.0" (http://www.blisted.org/wiki/papers/opinions/JavaScript2.0) * "JavaScript 2 and the Future of the Web" presentation slides by BrendanEich of Mozilla (http://developer.mozilla.org/presentations/xtech2006/javascript/) * Some discussion at LambdaTheUltimate (http://lambda-the-ultimate.org/node/1543) The ECMAScript 4 standard appears to be turning the language into a cross between JavaLanguage and PythonLanguage, mostly Java. ''Yes, and based on my brief skim of the proposed standard (first link above), the JavaLanguage influence threatens to mortally wound the language. StrongTyping doesn't work. It doesn't work for CeePlusPlus, it doesn't work for JavaLanguage, and it threatens mortal injury to ECMAScript. The entire appeal of the current JavaScript standard is that it is NOT strongly typed. The PythonLanguage offers the same appeal. Should it continue in this direction, I hope that the industry '''ignores''' this alleged "standard" and continues to support the far-superior current standard. -- TomStambaugh'' Somewhere in there (can't find it now) is a proposal to include Pythonesque generators [GeneratorsInPython] and ListComprehension''''''s. Those would be fine with me, especially the comprehension as it's nice SyntacticSugar for what you can already do with JavaScript Arrays. But introducing "classes" and "interfaces" makes the language yet another ''boring'' ObjectOrientedLanguage. It's already OO as a PrototypeBasedLanguage, and as far as I'm concerned, it's the prototype-ness that makes JavaScript the fascinating, powerful language that it is (that and FirstClassFunction''''''s... oh, and associative arrays, and ...). Per the proposed new ECMAScript standard, every object will still have a prototype, but I figure the Java-trained ArmyOfProgrammers won't notice it, find it interesting, or make use of it. Now, if browsers were to embed a RubyLanguage or PythonLanguage engine... -- ElizabethWiethoff ---- See also ActiveXscripting ---- CategoryJavaScript