Kapitel 5. Standardisierung: ECMAScript
Inhaltsverzeichnis
Das Buch kaufen
(Werbung, bitte nicht blockieren.)

Kapitel 5. Standardisierung: ECMAScript

Nachdem JavaScript auf den Markt kam, implementierte Microsoft die gleiche Sprache unter dem Namen JScript im Internet Explorer 3.0 (August 1996). Um Microsoft teilweise in Schach zu halten, beschloss Netscape, JavaScript zu standardisieren und bat die Standardisierungsorganisation Ecma International, den Standard zu hosten. Die Arbeit an einer Spezifikation namens ECMA-262 begann im November 1996. Da Sun (jetzt Oracle) die Marke für den Begriff JavaScript besaß, konnte dies nicht der offizielle Name der zu standardisierenden Sprache sein. Daher wurde ECMAScript gewählt, abgeleitet von JavaScript und Ecma. Dieser Name wird jedoch nur verwendet, um sich auf Versionen der Sprache zu beziehen (wobei man sich auf die Spezifikation bezieht). Jeder nennt die Sprache immer noch JavaScript.

ECMA-262 wird von Ecmas Technical Committee 39 (TC39) verwaltet und weiterentwickelt. Seine Mitglieder sind Unternehmen wie Microsoft, Mozilla und Google, die Mitarbeiter ernennen, um an der Komiteearbeit teilzunehmen; Beispiele hierfür sind Brendan Eich, Allen Wirfs-Brock (Herausgeber von ECMA-262) und David Herman. Um das Design von ECMAScript voranzutreiben, führt TC39 Diskussionen über offene Kanäle (wie die Mailingliste es-discuss) und hält regelmäßige Treffen ab. An den Treffen nehmen TC39-Mitglieder und eingeladene Experten teil. Anfang 2013 reichte die Zahl der Teilnehmer von 15 bis 25.

Im Folgenden ist eine Liste von ECMAScript-Versionen (oder Editionen von ECMA-262) und deren Hauptmerkmale aufgeführt:

ECMAScript 1 (Juni 1997)
Erste Ausgabe
ECMAScript 2 (August 1998)
Redaktionelle Änderungen zur Angleichung von ECMA-262 an den internationalen Standard ISO/IEC 16262
ECMAScript 3 (Dezember 1999)
do-while, reguläre Ausdrücke, neue Zeichenkettenmethoden (concat, match, replace, slice, split mit regulärem Ausdruck usw.), Ausnahmebehandlung und mehr
ECMAScript 4 (eingestellt Juli 2008)

ECMAScript 4 wurde als nächste Version von JavaScript entwickelt, mit einer in ML geschriebenen Prototyp-Implementierung. Allerdings konnte sich TC39 nicht auf seinen Funktionsumfang einigen. Um eine Sackgasse zu vermeiden, traf sich das Komitee Ende Juli 2008 und erzielte eine Einigung, die in vier Punkten zusammengefasst ist

  1. Entwicklung eines inkrementellen Updates von ECMAScript 3 (das ECMAScript 5 wurde).
  2. Entwicklung einer wichtigen neuen Version, die weniger leistet als ECMAScript 4, aber viel mehr als das inkrementelle Update von ECMAScript 3. Der Codename für die neue Version ist Harmony, aufgrund der Natur des Treffens, bei dem sie konzipiert wurde. Harmony wird in ECMAScript 6 und ECMAScript 7 aufgeteilt.
  3. Features aus ECMAScript 4, die fallen gelassen werden würden, beinhalteten Pakete, Namespaces und Early Binding.
  4. Andere Ideen sollten im Konsens mit allen Mitgliedern von TC39 entwickelt werden.

Somit stimmten die Entwickler von ECMAScript 4 zu, Harmony weniger radikal als ECMAScript 4 zu gestalten, und der Rest von TC39 stimmte zu, die Dinge weiter voranzutreiben.

ECMAScript 5 (Dezember 2009)
Fügt einen strengen Modus, Getter und Setter, neue Array-Methoden, Unterstützung für JSON und mehr hinzu (siehe Kapitel 25)
ECMAScript 5.1 (Juni 2011)
Redaktionelle Änderungen zur Angleichung von ECMA-262 an die dritte Ausgabe des internationalen Standards ISO/IEC 16262:2011
ECMAScript 6
Derzeit in Entwicklung, es wird geschätzt, dass es bis Ende 2014 ratifiziert wird. Die meisten Engines werden wahrscheinlich die wichtigsten ECMAScript 6-Funktionen bei der Ratifizierung unterstützen. Vollständige Unterstützung kann länger dauern.

Konsensfindung und Schaffung eines Standards sind nicht immer einfach, aber dank der gemeinschaftlichen Bemühungen der oben genannten Parteien ist JavaScript eine wirklich offene Sprache mit Implementierungen von mehreren Anbietern, die bemerkenswert kompatibel sind. Diese Kompatibilität wird durch eine sehr detaillierte, aber dennoch konkrete Spezifikation ermöglicht. Die Spezifikation verwendet beispielsweise oft Pseudocode und wird durch eine Testsuite, test262, ergänzt, die eine ECMAScript-Implementierung auf Konformität prüft. Interessanterweise wird ECMAScript nicht vom World Wide Web Consortium (W3C) verwaltet. TC39 und das W3C arbeiten dort zusammen, wo es Überschneidungen zwischen JavaScript und HTML5 gibt.

Weiter: 6. Historische Meilensteine von JavaScript