Einstieg in die Entwicklung von Web-Apps mit Meteor

JavaScript-Webframeworks gibt es wie Staub auf dem Mond. Jedoch ist jedes nur auf dem Gebiet gut, für das es geschaffen wurde. Meteor versteht sich als eine Plattform, die eine Best-of-Auswahl von Frameworks mit MongoDB und Node.js kombiniert.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 21 Min.
Von
  • Niko Köbler
  • Heiko Spindler
Inhaltsverzeichnis

JavaScript-Webframeworks gibt es wie Staub auf dem Mond. Jedoch ist jedes nur auf dem Gebiet gut, für das es geschaffen wurde. Meteor versteht sich als eine Plattform, die eine Auswahl der besten Frameworks mit MongoDB und Node.js kombiniert und Entwicklern so das Zusammensuchen abnehmen möchte. Ihre Hauptmerkmale sind eine einheitliche Basis in JavaScript-Code für Client und Server, das automatisches Propagieren der Änderungen von Code und Daten, ein vergleichsweise einfaches API-Design und intelligentes Packaging und Deployment von Applikationen.

Meteor ist eine JavaScript-Plattform, die von der Datenbank über den Server bis hin zum Client alles abdecken möchte und dabei den Schwerpunkt auf das Aktualisieren von Daten in Echtzeit über alle Clients hinweg legt. Als Datenbank kommt MongoDB zum Einsatz, während auf dem Server Node.js Verwendung findet – alle Ressourcen lassen sich folglich mit einer einzigen Sprache nutzen.

Weiterhin setzt Meteor auf viele bekannte JavaScript-Bibliotheken, wie Amplify, AppCache, Backbone.js, Handlebars, jQuery und Underscore.js, und kombiniert sie unter einer eigenen API. Auch die Verwendung von CoffeeScript in Meteor-Applikationen ist möglich. Zurzeit liegt das Framework in der Version 0.6.5 vor, ein genauer Termin für eine Version 1.0 ist noch nicht bekannt. Die Entwickler selbst sagen "mehr als einen Monat, weniger als ein Jahr", was ihnen viel Spielraum lässt.

Die Meteor-Entwickler beschreiben die Plattform mit folgenden sieben Prinzipien:

  1. Data on the Wire: Es werden nur Daten über das Netzwerk gesendet, kein HTML. Zudem entscheidet der Client, was er mit den Daten macht und wie er sie darstellt.
  2. One Language: JavaScript wird als einzige Sprache verwendet, für den Code sowohl in Client- als auch in Server-Anwendungen.
  3. Database Everywhere: Die Datenbank steht sowohl dem Server als auch dem Client zur Verfügung und beide greifen mit einer einheitlichen API darauf zu.
  4. Latency Compensation: Vorauswahl und Modellsimulationen auf dem Client ermöglichen es, eine latenzfreie Datenbankverbindung zu simulieren.
  5. Full Stack Reactivity: Live-Daten und reaktive Programmierung werden zum Standard. Möglichst alle Schnittstellen, von der Datenbank bis zu den Client-Templates, werden Event-getrieben ausgelegt (passend dazu: das reaktive Manifest).
  6. Embrace the Ecosystem: Meteor selbst ist quelloffen und integriert andere Open-Source-Frameworks, statt sie zu ersetzen oder nachzubilden.
  7. Simplicity equals Productivity: Einfachheit steht an erster Stelle. Der beste Weg, etwas einfach aussehen zu lassen, ist, es einfach zu machen. Erreicht wird dies durch leichtgewichtige und klassische APIs. (Erinnert an einen Werbeslogan eines einfachen Mobilfunk-Providers und ist sicherlich das Marketing-lastigste aller sieben Prinzipien, aber dennoch wahr.)

Zurzeit unterstützt Meteor die Betriebssysteme Mac OS X und Linux. Für Windows gibt es inoffizielle Binaries, offizielle Unterstützung steht für die Zeit nach dem 1.0-Release auf dem Plan. Der Einsatz der bisherigen Versionen kann noch zu Abstürzen führen. Deshalb wird in den folgenden Beispielen von einer Unix-Shell ausgegangen.

Um Meteor einsetzen zu können, ist es zunächst mit dem Befehl

$ curl https://install.meteor.com | /bin/sh

zu installieren. Alle Meteor-Kommandos beginnen mit dem Schlüsselwort meteor, dem dann der gewünschte Befehl folgt. Einen Überblick aller verfügbaren Anweisungen erhält man mit

$ meteor --help

Hängt man diesem Kommando den Befehlsnamen selbst an, erscheinen detailliertere Informationen und mögliche Optionen.

Das erste Projekt ("myapp") lässt sich mit

$ meteor create myapp

erstellen. Meteor erzeugt als Folge ein Unterverzeichnis namens myapp und darin einen weiteren Ordner .meteor, der Konfigurationsdaten für die Anwendung enthält.