Vollzeitblogger

Was ist node.js?

July 22, 2013

Node.js ist JavaScript auf der Serverseite und dafür bekannt viele Verbindungen gleichzeitig bedienen zu können. Dadurch lassen sich skalierbare und schnelle (web)-Andwendungen schreiben.

Durch Googles V8 JavaScript Engine, die führ Jahre dominant war in ihrer schnellen Ausführung von JavaScript im Browser Chrome, wird JavaScript code auf dem Server interpretiert.

Node.js ist eventbasiert

Im Gegensatz zu PHP in Kombination mit Apache wird bei node.js nur ein CPU Prozess gestartet, der sich um alle Anfragen kümmert, was den Arbeitsspeicherkonsum verringert. Durch das nicht vorhandene Threading ist es wichtig, dass node.js mit non-blocking I/O, als nicht blockierendem IN/OUT funktioniert.

Was ist nonblocking I/O?

Node.js setzt auch auf nonblocking I/O, was bedeutet das für Lese- und Schreibzugriffe auf Festplatten und Netzwerkquellen, nicht gewartet werden muss. Das Programm läuft weiter und führt die betreffenden Funktionen erst wieder aus wenn der Lese- oder Schreibzugriff erfolgreich war.

“Warten” auf eine Festplatte mag für uns Menschen nicht mehr spürbar sein, aber in CPU-Zyklen verhält sich das Ganze etwas anders. Eine CPU braucht 3 Zyklen um auf den Leve-1 cache zuzugreifen, beim Arbeitsspeicher sind es schon 250.

Festplatten: 41 000 000 Zyklen Netzwerk: 240 000 000 Zyklen

Diese Wartezeiten können in node.js im Prinzip effektiver genutzt werden, als bei anderen Sprachen/Stacks, da es kaum Funktionen besitzt die warten müssen, sondern diese können weiter laufen, sobald Festplatte oder ein anderer Server bereit sind.

Paketmanager npm

Als Standardpaketmanager hat sich npm etabliert. Über 35.000 kleine Pakete sind über npm verfügbar. Ähnlich der ruby gems kann man mit npm Module installieren und in der eigenen Applikation verwenden. Abhängigkeiten werden in npm lokal aufgelöst, also im Verzeichnis und nicht zentral im System, was den Vorteil hat, das viele Konflikte vermieden werden.

Beispiel zum installieren von express.js:

<code>npm install express
</code>

Danach wird sich express, inklusive Abhängigkeiten im Verzeichnis node_modules befinden.

Wer nutzt node.js?

Der Bedarf für skalierbare Applikationen ist groß und viele Unternehmen unterstützen und nutzen node.js Heute. Die Prominentesten dürften Microsoft, LinkedIn, Yahoo, Walmart und Myspace.

Auf der Seite des populären node.js Frameworks express.js gibt es noch eine Liste von Webseiten, die auf node.js setzen.

Wer entwickelt node.js?

Primär Joyent, auf deren github account node auch gehosted ist. Darüber hinaus hat eine breite Masse an Entwicklern zu node.js direkt oder npm Modulen beigetragen. Im letzen Monat wurden 228 commits von 39 verschiedenen Entwicklern aufgenommen.

Quellen:


© 2023, by Jonathan M. Hethey