Den Kinderschuhen entwachsen – 25 Jahre JavaScript
Was 1995 als einfache Skriptsprache begann, ist heute die Grundlage praktisch jeder modernen Webanwendung. Zeit für einen Blick zurück, aber auch nach vorn.
- Golo Roden
Mit Jubiläen bei Programmiersprachen ist das so eine Sache. Was als Geburtsstunde gilt, kann variieren. Fakt ist, dass die Netscape Communications Corporation in Verbindung mit Sun Microsystems am 4. Dezember 1995, also vor genau 25 Jahren, eine neue Programmiersprache namens JavaScript ankündigte, die als offene und plattformunabhängige Sprache speziell für den Einsatz im Internet gedacht war. Ein wesentliches Ziel war von Anfang an, eine Sprache zu erschaffen, die zwar einfach, zugleich aber auch mächtig sein sollte.
Zu dem Zweck suchte Netscape jemanden, der den Lisp-Dialekt Scheme mit einer C-artigen Syntax versehen und in den hauseigenen Webbrowser Navigator einbauen konnte. Der Aufgabe widmete sich Brendan Eich, der erst im Februar 1995 zu Netscape gestoßen war. In seinem Vortrag "A Brief History of JavaScript" berichtet er, dass er dafür lediglich zehn Tage Zeit gehabt und währenddessen wenig geschlafen habe.
Bemerkenswert ist, dass JavaScript von vornherein als Sprache nicht nur für den Client, sondern auch für den Server gedacht war. Bereits in der Pressemitteilung von Netscape ist die Rede davon, dass man JavaScript benutzen könne, um serverseitig auf Datenbanken zuzugreifen und Webseiten dynamisch zu rendern. Während der Erfolg auf dem Client rasch gegeben war, blieb er auf dem Server allerdings zunächst aus.
JavaScript im Webbrowser – und auf dem Server
Das änderte sich erst mit dem von Ryan Dahl entwickelten und 2009 veröffentlichten Projekt Node.js, das eine serverseitige Laufzeitumgebung für JavaScript darstellt und inzwischen zu einer der wichtigsten Plattformen zur Entwicklung skalierbarer und komplexer Web- und Cloud-Anwendungen geworden ist, die alle nennenswerten Cloud-Anbieter unterstützen.
Obwohl JavaScript frühzeitig zur Standardisierung bei der ECMA eingereicht wurde, worauf der Name ECMAScript zurückgeht, sah es nach einigen Jahren zuerst danach aus, als ob die Hochzeit von JavaScript bereits vorbei sei: Die vierte Version der Sprache erschien nie, da sich die verschiedenen Hersteller der Webbrowser nicht auf einen gemeinsamen Nenner einigen konnten. Damit war ECMAScript 3 aus dem Dezember 1999 für lange Zeit der aktuelle Stand.
Erst im Dezember 2009 beziehungsweise im Juni 2011 kam wieder Bewegung in JavaScript, als die Versionen 5 und 5.1 veröffentlicht wurden, die jeweils zumindest eine geringfügige Verbesserung darstellten. Der große Wurf wurde dann für Version 6 unter dem Codenamen "Harmony" geplant, der dann aber von Jahr zu Jahr verschoben wurde. Erst im Sommer 2015 erschien die Version endlich, allerdings unter dem Namen ECMAScript 2015.
Asynchrone Programmierung, TypeScript & Co.
Mit der Änderung der Versionsnummer ging auch der Plan einher, ab sofort einem jährlichen Veröffentlichungszyklus zu folgen, weshalb JavaScript (beziehungsweise genau genommen ECMAScript) seither in den Versionen 2016, 2017, 2018, 2019 und 2020 erschienen ist, mit mal mehr, mal weniger neuen Features. Als größte Änderung der vergangenen fünf Jahre dürfte man die Einführung der beiden Schlüsselwörter async
und await
werten können, die zu einer deutlichen Vereinfachung der asynchronen Programmierung beigetragen haben.
Das hohe Tempo in der JavaScript-Welt zieht allerdings nicht nur Licht, sondern auch Schatten nach sich. Einerseits sorgt das Momentum für eine energiegeladene Community, die sich ständig konstruktiv und kreativ weiterentwickelt, andererseits leidet darunter die langfristige Verlässlichkeit, was insbesondere im Enterprise-Kontext zu neuen Herausforderungen führt.
Dennoch hat JavaScript inzwischen auch die Unternehmenswelt erobert. Das liegt zum einen an der enormen Professionalisierung der Sprache und des Ökosystems in den vergangenen zehn Jahren, zum anderen aber auch nicht zuletzt an TypeScript. Dabei handelt es sich um eine vollständig zu JavaScript kompatible Sprache, die im Wesentlichen ein statisches Typsystem ergänzt, was gerade in großen und komplexen Projekten eine enorme Hilfe darstellt und Sicherheit bietet.
JavaScript im Unternehmenseinsatz
Insgesamt lässt sich sagen, dass sich JavaScript im Hinblick auf die Funktionalität von Jahr zu Jahr mehr an "klassische" Sprachen wie C# annähert, es dabei aber schafft, sich seine Leichtgewichtigkeit und Flexibilität zu bewahren. Umgekehrt dient genau dieser Aspekt Sprachen wie C# häufig auch als Vorbild, weshalb die Annäherung durchaus aus beiden Richtungen zugleich stattfindet.
Beachtlich sind aber auch Entwicklungen, die über JavaScript hinausgehen und die Sprache erweitern, beispielsweise die von Facebook eingeführte Erweiterung JSX, die JavaScript um einen XML-Datentyp ergänzt, mit dem sich beispielsweise HTML nativ in JavaScript einbetten lässt. Zwar ist JSX keine offizielle Spracherweiterung, weshalb ein Compiler erforderlich ist, doch beherrscht unter anderem TypeScript JSX von Haus aus.
Eine glänzende Zukunft
Da die Relevanz des Web und der Cloud im Allgemeinen stetig zunimmt und mit WebAssembly inzwischen ein zukunftsträchtiger Standard zur Interoperabilität mit anderen Sprachen zur Verfügung steht, ist JavaScript heute mehr denn je eine hervorragende Grundlage für die Entwicklung zeitgemäßer Anwendungen.
In all der Zeit ist es gelungen, das ursprüngliche Ziel von JavaScript zu bewahren, Einfachheit und Mächtigkeit auf elegantem Weg zu verbinden. Zugegebenermaßen enthält JavaScript auch einige merkwürdige Besonderheiten, doch spielen diese in den neueren Versionen der Sprache und dem immer besseren Tooling eine immer geringere Rolle. Insofern hat sich der Ansatz von JavaScript durchaus bewährt, und es steht außer Zweifel, dass das auch in der Zukunft so bleiben wird.
In diesem Sinne, alles Gute zum 25. Geburtstag!
PS: Was sind Ihre Erlebnisse zu JavaScript? Wie haben Sie die Sprache kennen gelernt? Wann mussten Sie sie erstmals einsetzen? Wir freuen uns über Ihre Glückwünsche und Kommentare im Forum.
(ane)