Sebastian Springer MaibornWolff

Ein Werkzeug, das die Verbreitung von Node.js beeinflusst hat wie kein anderes, ist der Node Package Manager. Er unterstützt die Philosophie von Node.js, die besagt, dass der Kern der Plattform nur die nötigste Funktionalität bieten und alles Weitere durch das darum liegende Ökosystem abgedeckt werden soll.

Die Node.js-Plattform gibt es bereits seit Januar 2009. Sieben Jahre sind in der Webentwicklung jedoch eine lange Zeit; es lohnt sich also, einen Blick in die Vergangenheit zu werfen und die teilweise recht turbulente Entwicklung der populären JavaScript-Plattform genauer unter die Lupe zu nehmen.

Node.js war schon immer als Plattform für die Webentwicklung gedacht. Dass sich daraus eine Umgebung für Kommandozeilenwerkzeuge entwickelte, war eher Zufall. Ryan Dahl, der Erfinder von Node.js, benötigte eine Lösung für die Anzeige des Downloadfortschritts in einer Webapplikation. Da es zu diesem Zeitpunkt noch keine zufriedenstellende Lösung gab, verband er die JavaScript Engine des Chrome-Browsers, besser bekannt unter dem Namen V8, mit einigen Zusatzbibliotheken wie dem Event Loop libev, der libeio, die asynchrone Ein- und Ausgabeoperationen ermöglicht, sowie einigen weiteren Bibliotheken. Ein dünner Layer in C++ ermöglicht es den selbst in JavaScript geschriebenen Node.js-Modulen, ihre Arbeit zu verrichten. Durch diese Architektur erhalten Sie als Entwickler Zugriff auf die Ressourcen Ihres Systems und können über JavaScript das Netzwerk oder das Dateisystem ansprechen. An diesen Grundsätzen hat sich bis heute wenig geändert.

Neben Node.js selbst war das Jahr 2009 außerdem das Entstehungsjahr einiger weiterer bedeutender Werkzeuge und Bibliotheken im Umfeld von Node.js. So begann Isaac Schlueter im September 2009 mit der Arbeit am Node Package Manager, kurz: npm, und TJ Holowaychuk machte den ersten Commit an Express.js, dem am häufigsten eingesetzten Web-Application-Framework für Node.js. Bis zu diesem Zeitpunkt war Node.js ein Open-Source-Projekt ohne jede Unterstützung von außen. Um die Entwicklung jedoch weiter fortführen zu können, musste sich Ryan Dahl auf die Suche nach Sponsoren machen und tat dies schließlich im November 2009 auf der jsconf.eu im schönen Berlin. Die Aufzeichnung der Session, in der Ryan Dahl die Plattform vorstellt, finden Sie auf YouTube. Die Präsentation war so überzeugend, dass sich mit Joyent ein Unterstützer für Node.js fand. Das Unternehmen ist spezialisiert auf Virtualisierung und Cloud Computing und bot Ryan Dahl eine Vollzeitbeschäftigung an, um sich der Weiterentwicklung von Node.js zu widmen.

Node.js wird gesellschaftsfähig

Die Node.js-Versionen bis v0.6 waren von häufigen Änderungen geprägt. Und zwar nicht kleinen, unbedeutenden Änderungen und Verbesserungen, sondern Brüchen im API, die einem Entwickler das Leben wirklich schwer machten. Auch die Performance der Plattform war nicht die beste, und so mehrten sich die kritischen Stimmen, die der Plattform ein kurzes Leben voraussagten. Die Entwickler um Ryan Dahl nahmen sich jedoch dieser Probleme an und lösten auch eine der größten Herausforderungen: Zu diesem Zeitpunkt war es nämlich nicht ohne Weiteres möglich, Node.js auf einem Windows-System zu installieren und zu betreiben, was die Nutzerbasis und somit die Verbreitung der Plattform erheblich einschränkte.

Mit der im Jahr 2011 veröffentlichten Version 0.6 hielten einige bedeutende Änderungen Einzug in die Plattform. So wurde der npm ein fester Bestandteil von Node.js und die libuv, eine Abstraktionsbibliothek um den Event Loop und die Ein- und Ausgabebibliothek, wurde integriert. Mit diesem Schritt konnte Node.js nun auch problemlos unter Windows installiert werden. Die wachsende Community um Node.js hielt 2012 gespannt den Atem an, als Ryan Dahl seinen Abschied vom Projekt verkündete. Viele konnten sich nicht vorstellen, wie es ohne den Erfinder der Plattform weitergehen sollte. Die Projektleitung übernahm Isaac Schlueter, ebenfalls ein Mitarbeiter von Joyent. Er führte die Entwicklung von Node.js wieder in ruhigere Gewässer. Zu dieser Zeit galt auch der Grundsatz, dass die stabilen Versionen der Plattform eine gerade Zahl trugen und die Entwicklerversionen eine ungerade; 0.6 war also der stabile Zweig und 0.5 die Entwicklungsversion. In den nachfolgenden Versionen 0.8, 0.10 und 0.12 beschäftigten sich die Entwickler vor allem mit der Verbesserung der Performance und der Stabilität, um den Kritikern den Wind aus den Segeln zu nehmen. Währenddessen wurden auch vermehrt Forderungen nach einer Version 1.0 laut: Noch galt Node.js als Werkzeug für Entwickler, das sich nicht unbedingt für den Produktivbetrieb eignete – noch viel weniger, wenn es um geschäftskritische Anwendungen ging.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 3.16 - "Laravel"

Im Titelthema dieser Ausgabe dreht sich alles um das Thema Laravel 5.2 – wir sehen uns an, welche Vorteile dieses Framework bietet.

Alle Infos zum Heft
211801State of Node.js
X
- Gib Deinen Standort ein -
- or -