JavaScript für ungeduldige Programmierer (ES2022-Ausgabe)
Bitte unterstützen Sie dieses Buch: kaufen Sie es oder spenden Sie
(Werbung, bitte nicht blockieren.)

3 Geschichte und Entwicklung von JavaScript



3.1 Wie JavaScript entstanden ist

JavaScript wurde im Mai 1995 in 10 Tagen von Brendan Eich entwickelt. Eich arbeitete bei Netscape und implementierte JavaScript für deren Webbrowser, Netscape Navigator.

Die Idee war, dass die wichtigsten interaktiven Teile auf der Client-Seite in Java implementiert werden sollten. JavaScript sollte eine Skriptsprache sein, um diese Teile zu verbinden und HTML etwas interaktiver zu gestalten. Angesichts seiner Rolle als Unterstützung für Java musste JavaScript wie Java aussehen. Das schloss bestehende Lösungen wie Perl, Python, TCL und andere aus.

Anfänglich änderte sich der Name von JavaScript mehrmals

3.2 Standardisierung von JavaScript

Es gibt zwei Standards für JavaScript

Die Sprache, die von diesen Standards beschrieben wird, heißt ECMAScript, nicht JavaScript. Ein anderer Name wurde gewählt, da Sun (jetzt Oracle) eine Marke für den letzteren Namen hatte. Das "ECMA" in "ECMAScript" stammt von der Organisation, die den primären Standard hostet.

Der ursprüngliche Name dieser Organisation war ECMA, ein Akronym für European Computer Manufacturers Association. Später wurde er in Ecma International geändert (wobei "Ecma" ein Eigenname und kein Akronym ist), da sich die Aktivitäten der Organisation über Europa hinaus erweitert hatten. Das anfängliche Akronym in Großbuchstaben erklärt die Schreibweise von ECMAScript.

Grundsätzlich bedeuten JavaScript und ECMAScript dasselbe. Manchmal wird folgende Unterscheidung getroffen

Daher ist ECMAScript 6 eine Version der Sprache (ihre 6. Ausgabe).

3.3 Zeitleiste der ECMAScript-Versionen

Dies ist eine kurze Zeitleiste der ECMAScript-Versionen

3.4 Ecma Technical Committee 39 (TC39)

TC39 ist das Komitee, das JavaScript weiterentwickelt. Seine Mitglieder sind streng genommen Unternehmen: Adobe, Apple, Facebook, Google, Microsoft, Mozilla, Opera, Twitter und andere. Das heißt, Unternehmen, die normalerweise erbitterte Konkurrenten sind, arbeiten zum Wohle der Sprache zusammen.

Alle zwei Monate finden TC39-Treffen statt, an denen von Mitgliedern ernannte Delegierte und eingeladene Experten teilnehmen. Die Protokolle dieser Treffen sind öffentlich in einem GitHub-Repository.

3.5 Der TC39-Prozess

Mit ECMAScript 6 wurden zwei Probleme mit dem damals verwendeten Veröffentlichungsprozess offensichtlich

Als Reaktion auf diese Probleme führte TC39 den neuen TC39-Prozess ein

Das Ergebnis: kleinere, inkrementelle Veröffentlichungen, deren Features bereits im Feld getestet wurden. Abb. 1 veranschaulicht den TC39-Prozess.

Figure 1: Each ECMAScript feature proposal goes through stages that are numbered from 0 to 4. Champions are TC39 members that support the authors of a feature. Test 262 is a suite of tests that checks JavaScript engines for compliance with the language specification.

ES2016 war die erste ECMAScript-Version, die nach dem TC39-Prozess entwickelt wurde.

3.5.1 Tipp: Denken Sie in einzelnen Features und Stufen, nicht in ECMAScript-Versionen

Bis einschließlich ES6 war es am gebräuchlichsten, über JavaScript in Bezug auf ECMAScript-Versionen nachzudenken – zum Beispiel: „Unterstützt dieser Browser ES6 schon?“

Ab ES2016 ist es besser, in einzelnen Features zu denken: Sobald ein Feature Stufe 4 erreicht hat, können Sie es sicher verwenden (sofern es von den von Ihnen anvisierten JavaScript-Engines unterstützt wird). Sie müssen nicht auf die nächste ECMAScript-Veröffentlichung warten.

3.6 FAQ: TC39-Prozess

3.6.1 Wie läuft es mit [meinem Lieblingsvorschlag für ein Feature]?

Wenn Sie sich fragen, in welchen Stufen sich verschiedene vorgeschlagene Features befinden, konsultieren Sie das GitHub-Repository proposals.

3.6.2 Gibt es eine offizielle Liste der ECMAScript-Features?

Ja, das TC39-Repo listet fertige Vorschläge auf und gibt an, in welchen ECMAScript-Versionen sie eingeführt wurden.

3.7 JavaScript weiterentwickeln: Das Web nicht brechen

Eine Idee, die gelegentlich aufkommt, ist, JavaScript aufzuräumen, indem alte Features und Eigenheiten entfernt werden. Während die Attraktivität dieser Idee offensichtlich ist, hat sie erhebliche Nachteile.

Nehmen wir an, wir erstellen eine neue Version von JavaScript, die nicht abwärtskompatibel ist, und beheben alle ihre Fehler. Infolgedessen würden wir auf folgende Probleme stoßen

Was ist also die Lösung? Können wir beides haben? Der für ES6 gewählte Ansatz heißt "One JavaScript"

  Quiz

Siehe Quiz-App.