Kapitel 6. Historische Meilensteine von JavaScript
Inhaltsverzeichnis
Das Buch kaufen
(Werbung, bitte nicht blockieren.)

Kapitel 6. Historische Meilensteine von JavaScript

JavaScript brauchte lange, um eine Wirkung zu erzielen. Viele JavaScript-bezogene Technologien existierten eine Weile, bis sie vom Mainstream entdeckt wurden. Dieser Abschnitt beschreibt, was von der Erfindung von JavaScript bis heute geschah. Durchweg werden nur die populärsten Projekte erwähnt und viele ignoriert, auch wenn sie zuerst da waren. Zum Beispiel wird das Dojo Toolkit aufgeführt, aber es gibt auch das weniger bekannte qooxdoo, das etwa zur gleichen Zeit entstand. Und Node.js wird aufgeführt, obwohl Jaxer früher existierte.

1997—Dynamic HTML
Dynamic HTML ermöglicht es Ihnen, den Inhalt und das Erscheinungsbild einer Webseite dynamisch zu ändern. Dies erreichen Sie, indem Sie das Document Object Model (DOM) der Seite manipulieren, eine baumartige Datenstruktur. Dinge, die Sie tun können, sind das Ändern von Inhalten, das Ändern von Stilen sowie das Anzeigen und Verbergen von Elementen. Dynamic HTML erschien zuerst in Internet Explorer 4 und in Netscape Navigator 4.
1999—XMLHttpRequest
Diese API ermöglicht es einem clientseitigen Skript, eine HTTP- oder HTTPS-Anfrage an einen Server zu senden und Daten zurückzuerhalten, normalerweise in einem Textformat (XML, HTML, JSON). Sie wurde in Internet Explorer 5 eingeführt.
2001—JSON, ein auf JavaScript basierendes Datenaustauschformat

Im Jahr 2001 benannte und dokumentierte Douglas Crockford JSON (JavaScript Object Notation), dessen Hauptidee darin besteht, JavaScript-Syntax zur Speicherung von Daten im Textformat zu verwenden. JSON verwendet JavaScript-Literale für Objekte, Arrays, Strings, Zahlen und Booleans, um strukturierte Daten darzustellen. Zum Beispiel:

{
    "first": "Jane",
    "last": "Porter",
    "married": true,
    "born": 1890,
    "friends": [ "Tarzan", "Cheeta" ]
}

Im Laufe der Jahre ist JSON zu einer beliebten, leichtgewichtigen Alternative zu XML geworden, insbesondere wenn strukturierte Daten und nicht Markup dargestellt werden sollen. Natürlich ist JSON über JavaScript einfach zu konsumieren (siehe Kapitel 22).

2004—Dojo Toolkit, ein Framework für die Programmierung von JavaScript im großen Stil
Das Dojo Toolkit erleichtert die Programmierung im großen Stil, indem es die notwendige Infrastruktur bereitstellt: eine Vererbungbibliothek, ein Modulsystem, eine API für grafische Widgets im Desktop-Stil und mehr.
2005—Ajax, browserbasierte Anwendungen im Desktop-Format

Ajax ist eine Sammlung von Technologien, die Webseiten ein Maß an Interaktivität verleihen, das mit dem von Desktop-Anwendungen konkurriert. Ein beeindruckendes Beispiel dafür, was über Ajax erreicht werden kann, wurde im Februar 2005 vorgestellt: Google Maps. Diese Anwendung erlaubte es Ihnen, über eine Weltkarte zu schwenken und zu zoomen, wobei nur der aktuell sichtbare Inhalt in den Browser heruntergeladen wurde. Nachdem Google Maps herauskam, bemerkte Jesse James Garrett, dass es bestimmte Merkmale mit anderen interaktiven Websites teilte. Er nannte diese Merkmale Ajax, eine Kurzform für Asynchronous JavaScript and XML.[7] Die beiden Eckpfeiler von Ajax sind das Laden von Inhalten asynchron im Hintergrund (über XMLHttpRequest) und das dynamische Aktualisieren der aktuellen Seite mit den Ergebnissen (über Dynamic HTML). Dies war eine beträchtliche Usability-Verbesserung gegenüber dem ständigen Neuladen ganzer Seiten.

Ajax markierte den Mainstream-Durchbruch von JavaScript und dynamischen Webanwendungen. Es ist interessant zu bemerken, wie lange das dauerte – zu diesem Zeitpunkt waren die Ajax-Zutaten bereits jahrelang verfügbar. Seit der Einführung von Ajax sind andere Datenformate populär geworden (JSON statt XML), andere Protokolle werden verwendet (z. B. Web Sockets zusätzlich zu HTTP), und bidirektionale Kommunikation ist möglich. Aber die grundlegenden Techniken sind immer noch dieselben. Der Begriff Ajax wird heutzutage jedoch viel weniger verwendet und wurde meist durch die umfassenderen Begriffe HTML5 und Web Platform (die beide JavaScript plus Browser-APIs bedeuten) ersetzt.

2005—Apache CouchDB, eine JavaScript-zentrierte Datenbank
Grob gesagt ist CouchDB eine JSON-Datenbank: Sie füttern sie mit JSON-Objekten, ohne dass Sie im Voraus ein Schema angeben müssen. Darüber hinaus können Sie Ansichten und Indizes über JavaScript-Funktionen definieren, die Map/Reduce-Operationen durchführen. Daher passt CouchDB sehr gut zu JavaScript, da Sie direkt mit nativen Daten arbeiten können. Im Vergleich zu einer relationalen Datenbank gibt es keine auf Abbildung bezogene Impedanzfehlanpassung. Im Vergleich zu einer Objektdatenbank vermeiden Sie viele Komplikationen, da nur Daten gespeichert werden, kein Verhalten. CouchDB ist nur eine von mehreren ähnlichen NoSQL-Datenbanken. Die meisten von ihnen haben eine ausgezeichnete JavaScript-Unterstützung.
2006—jQuery, Hilfe bei der DOM-Manipulation
Das Browser-DOM ist einer der schmerzhaftesten Teile der clientseitigen Webentwicklung. jQuery machte die DOM-Manipulation zum Vergnügen, indem es Browserunterschiede abstrahierte und eine leistungsstarke API im Fluent-Stil zum Abfragen und Modifizieren des DOM bereitstellte.
2007—WebKit, das mobile Web zum Mainstream machen
Basierend auf früheren Arbeiten von KDE, ist WebKit eine HTML-Engine, die 2003 von Apple eingeführt wurde. Sie wurde 2005 als Open Source veröffentlicht. Mit der Einführung des iPhone im Jahr 2007 wurde das mobile Web plötzlich zum Mainstream und hatte im Vergleich zum nicht-mobilen Web kaum oder gar keine Einschränkungen.
2008—V8, beweist, dass JavaScript schnell sein kann
Als Google seinen Chrome-Webbrowser einführte, war eines seiner Highlights eine schnelle JavaScript-Engine namens V8. Sie veränderte die Wahrnehmung von JavaScript als langsam und führte zu einem Geschwindigkeitswettlauf mit anderen Browserherstellern, von dem wir immer noch profitieren. V8 ist Open Source und kann als eigenständige Komponente verwendet werden, wann immer Sie eine schnelle eingebettete Sprache benötigen, die weit verbreitet bekannt ist.
2009—Node.js, Implementierung von JavaScript auf dem Server

Node.js ermöglicht es Ihnen, Server zu implementieren, die unter Last gut funktionieren. Dazu verwendet es ereignisgesteuerte, nicht-blockierende I/O und JavaScript (über V8). Der Erfinder von Node.js, Ryan Dahl, nennt die folgenden Gründe für die Wahl von JavaScript:

  • „Weil es nackt ist und keine I/O-APIs mitbringt.“ [Node.js kann so seine eigenen nicht-blockierenden APIs einführen.]
  • „ Webentwickler benutzen es bereits.“ [JavaScript ist eine weit verbreitete Sprache, insbesondere im Webkontext.]
  • „ Die DOM-API ist ereignisbasiert. Jeder ist es bereits gewohnt, ohne Threads und auf einer Ereignisschleife zu laufen.“ [Entwickler sind an einen asynchronen Programmierstil gewöhnt.]

Dahl konnte auf früheren Arbeiten zu ereignisgesteuerten Servern und serverseitigem JavaScript (hauptsächlich dem CommonJS-Projekt) aufbauen.

Die Attraktivität von Node.js für JavaScript-Programmierer geht über die Möglichkeit hinaus, in einer vertrauten Sprache zu programmieren; man kann dieselbe Sprache sowohl auf dem Client als auch auf dem Server verwenden. Das bedeutet, dass man mehr Code teilen kann (z. B. zur Validierung von Daten) und Techniken wie isomorphes JavaScript anwenden kann. Isomorphes JavaScript befasst sich mit dem Zusammenstellen von Webseiten entweder auf dem Client oder auf dem Server, mit zahlreichen Vorteilen: Seiten können auf dem Server gerendert werden, um eine schnellere Erstansicht zu ermöglichen, SEO-Vorteile zu erzielen und auf Browsern zu laufen, die entweder JavaScript nicht unterstützen oder eine zu alte Version haben. Aber sie können auch auf dem Client aktualisiert werden, was zu einer reaktionsschnelleren Benutzeroberfläche führt.

2009—PhoneGap, native Apps in HTML5 schreiben
PhoneGap wurde von einer Firma namens Nitobi entwickelt, die später von Adobe übernommen wurde. Die Open-Source-Grundlage von PhoneGap heißt Cordova. Die ursprüngliche Mission von PhoneGap war es, die Implementierung nativer mobiler Apps über HTML5 zu ermöglichen. Seitdem hat sich die Unterstützung auf Nicht-Mobile-Betriebssysteme erweitert. Aktuell unterstützte Plattformen sind Android, Bada, BlackBerry, Firefox OS, iOS, Mac OS X, Tizen, Ubuntu, Windows (Desktop) und Windows Phone. Neben HTML5-APIs gibt es auch PhoneGap-spezifische APIs für den Zugriff auf native Funktionen wie Beschleunigungsmesser, Kamera und Kontakte.
2009—Chrome OS, den Browser zum Betriebssystem machen

Mit Chrome OS ist die WebPlattform die native Plattform. Dieser Ansatz hat mehrere Vorteile:

  • Es ist viel einfacher, ein Betriebssystem zu erstellen, da die gesamte Benutzeroberflächentechnologie bereits vorhanden ist.
  • Viele Entwickler wissen bereits (hauptsächlich), wie man Apps für das Betriebssystem schreibt.
  • Die Verwaltung von Apps ist einfach. Das hilft bei öffentlichen Installationen wie Internetcafés und Schulen.

Die Einführung des mobilen Betriebssystems webOS (das ursprünglich von Palm stammte und nun LG Electronics gehört) liegt vor der Einführung von Chrome OS, aber die Idee des "Browsers als OS" ist beim letzteren offensichtlicher (deshalb wurde es als Meilenstein gewählt). webOS ist sowohl weniger als auch mehr. Weniger, weil es sehr auf Handys und Tablets fokussiert ist. Mehr, weil es Node.js integriert hat, um Dienste in JavaScript zu implementieren. Ein neuerer Eintrag in der Kategorie Web-Betriebssysteme ist Mozillas Firefox OS, das auf Handys und Tablets abzielt. Mozillas Wiki nennt einen Vorteil von Web-Betriebssystemen für das Web

Wir brauchen auch einen Hügel, den wir erklimmen können, um unsere Bemühungen zu umreißen und zu fokussieren. Kürzlich haben wir das pdf.js-Projekt [das PDFs über HTML5 rendert, ohne Plugins] gesehen, das kleine Lücken aufgedeckt hat, die gefüllt werden mussten, damit "HTML5" eine Obermenge von PDF wird. Wir wollen jetzt einen größeren Schritt machen und die Lücken finden, die Webentwickler daran hindern, Apps zu erstellen, die – in jeder Hinsicht – den nativen Apps für iPhone, Android und WP7 gleichwertig sind.

2011—Windows 8, HTML5-Apps erster Klasse
Als Microsoft Windows 8 einführte, überraschte es alle mit der umfassenden Integration von HTML5 in das Betriebssystem. HTML5-Anwendungen sind in Windows 8 Bürger erster Klasse, auf einer Stufe mit denen, die über etablierte Technologien wie .NET und C++ implementiert wurden. Um diesen Punkt zu demonstrieren, hat Microsoft mehrere wichtige Windows 8-Anwendungen in HTML5 geschrieben (plus Aufrufe nativer APIs), darunter den App Store und die E-Mail-App.


[7] Ajax ist eine Kurzform, aber kein Akronym, weshalb es nicht als AJAX stilisiert wird.

Weiter: III. JavaScript im Detail