Was ist eigentlich Node.js?

  1. Erläuterung von Javascript
  2. Erläuterung von Node.js
  3. Vorteile von Node.js
  4. Node.js bei Mittwald

Erläuterung von Javascript

Die Programmiersprache Javascript ermöglicht es dir, deine Website flexibel zu gestalten und Inhalte dynamisch anzupassen. Klassische Anwendungsbeispiele dafür sind "Slider", mit denen du deine Bildergalerie intuitiv durchforsten kannst oder Code-Snippets, welche die Größe der Container auf das Endgerät deines Kunden anpassen und somit für eine optimale Darstellung sorgen. Des Weiteren lassen sich Benutzer-Eingaben auf ein bestimmtes Schema überprüfen, womit du dafür sorgst, dass das E-Mail-Feld nur mit validem Input abgesendet werden darf. Wie in jeder anderen Programmiersprache auch, stehen dir hier Mittel zur Verfügung, um Logiken und Bedingungen zu implementieren, mit denen du die Steuerung deiner Website in der Hand hast.

Javascript kann aber noch viel mehr als nur das. Du kannst deinen Kunden simple Anwendungen wie einen Liveticker zur Verfügung stellen, aber auch hochkomplexe Anwendungen oder kleine 2D / 3D-Spiele. Google Maps ist ein sehr gutes Beispiel dafür, um zu sehen, wie mächtig Javascript sein kann.

Ich lehne mich mal weit aus dem Fenster und behaupte, dass nahezu jeder Webentwickler bereits einmal Javascript dazu verwendet hat, um ein Element des DOM (Document Object Model) mit einem anderen CSS-Style zu versehen oder nachträglich Inhalte in einer Liste einzufügen. Das DOM ist die Schnittstelle zwischen Skripten, wie z.B. Javascript und den Elementen deiner Website. Alle Bilder, Texte, Tabellen und deren Styles können durch das DOM angesprochen und verändert werden, womit man durch Betätigung eines Buttons das Color-Schema vom Light Mode in den Dark Mode versetzen oder ein Menü dynamisch an ein Endgerät anpassen kann, wenn dessen Auflösung zu niedrig ist. Javascript wird von deinem Browser auf deinem PC oder deinem Smartphone ausgeführt, nachdem das HTML und CSS geladen wurden – wir sprechen also generell von einer Code Ausführung auf der Client-Seite (auch Frontend genannt). 

"Javascript everywhere". Webentwicklung vereinheitlicht.

"Javascript everywhere". Node.js versucht die Webentwicklung zu vereinheitlichen.

Erläuterung von Node.js

Node.js ist eine Laufzeitumgebung für Javascript, die nicht auf eine Host-Anwendung wie einen Webbrowser angewiesen ist. Das heißt, dass man Javascript auch auf Serverseite (auch Backend genannt) ausführen und zur Entwicklung serverseitiger Skripte, Tools und Webapplikationen nutzen kann. Damit wird Javascript auch für Backendentwickler attraktiv, denn für solche Anwendungsgebiete benötigt man sonst Kenntnisse über andere Programmiersprachen, wie z.B. PHP, Python, Ruby oder ASP.NET. 

Mit Node.js möchte man die Webentwicklung vereinheitlichen und bekommt die Möglichkeit, eine Programmiersprache –sowohl im Frontend als auch im Backend – zu verwenden. Dadurch ergeben sich einige Vorteile:

  • Javascript gehört zu den einfacher zu lernenden Sprachen
  • Man kann die gleichen Namenskonventionen im Frontend und Backend verwenden, sodass man eine aufgeräumte und durchgängige Code Basis hat
  • Als Entwickler benötigst du nun nicht mehr verschiedene Tools zum Entwickeln, sondern kannst die dir bereits bekannten Tools weiternutzen

Während Javascript hauptsächlich im Frontend verwendet wird, um Manipulationen am DOM vorzunehmen, wird Node vor allem  eingesetzt, um im Backend Daten entgegenzunehmen, diese in Datenbanken (SQL, MongoDB, ...) abzuspeichern und die verarbeiteten Daten wieder auszuliefern.

Wofür benötige ich denn Backend-Services? Viele Anwendungen im Internet, Apps auf deinem Computer oder Smartphone sind reine Bedienelemente für den Kunden. Die Apps an sich kommunizieren mit den Backend-Services über eine Schnittstelle (API - Application Programming Interface) und tauschen Daten aus. Die eigentliche Arbeit geschieht dabei im Backend (auf Servern im Rechenzentrum oder in der Cloud). Dort werden die Daten entgegengenommen, auf Validität geprüft und in einer Datenbank gespeichert. Je nachdem, um was für einen Service es sich handelt, werden weitere Prozesse angestoßen (E-Mails oder Push-Nachrichten versendet, Workflows gestartet, ...), deine Daten verarbeitet und in irgendeiner Form wieder an dich zurückgeschickt, wo du sie in deiner App dargestellt bekommst.

Einsatzgebiete von Node.js

Vorteile von Node.js

Was macht Node.js denn nun so besonders? Zum einen gehört Javascript zu den einfacher zu erlernenden Sprachen und stellt damit eine kleinere Einstiegshürde dar. Des Weiteren ist Node hochskalierbar und ziemlich schnell in der Verarbeitung der Daten. Das liegt unter anderem daran, dass Node asynchron und parallel arbeiten kann. Non-Blocking I/O ist hier das Stichwort, denn gestartete Funktionen müssen nicht erst auf die Beendigung einer Aktion warten. Normales Javascript ist eigentlich "single-threaded"und arbeitet Daten sequentiell ab, was bedeutet, dass nur eine Aktion gleichzeitig gestartet werden kann – und wenn diese Aktion bearbeitet wird, warten die restlichen Komponenten auf Fertigstellung. Dafür wird ein asynchrones Event-System geboten, wodurch paralleles Arbeiten ermöglicht wird, ohne dass man komplexe Multi-Threading-Architekturen einsetzen muss. Die aufrufende Funktion wird bei Node mithilfe einer Callback-Funktion über die Beendigung des Prozesses benachrichtigt und in der Zwischenzeit können andere Aufgaben parallel abgearbeitet werden.

Zusätzlich zur Performance wird ein Paket-Manager mitgeliefert (npm - Node Package Manager), der dir eine riesige (wenn nicht sogar die größte) Anzahl an Open-Source Paketen bereitstellt, welche dir zur freien Verfügung stehen und dafür sorgen, dass du das Rad nicht neu erfinden musst. So kannst du direkt mit der Core-Logik deiner Services durchstarten. Mithilfe von npm lassen sich Module samt aller Abhängigkeiten suchen, installieren, aktuell halten und auch wieder löschen.  

Node.js bei Mittwald

Unsere Entwickler bei Mittwald in der Produktentwicklung setzen ebenfalls auf Node.js. Zusammen mit Golang ist Node die zweite Haupt-Programmiersprache, die zur Erstellung von Backend-Services verwendet wird. Je nachdem welchen Zweck der Service erfüllen muss, wird entschieden, welche Programmiersprache zum Einsatz kommt und besser geeignet ist. Auch die Entwickler haben ihre Vorlieben, aber im Endeffekt hat jede der Sprachen ihre Vor- und Nachteile und anhand der Stärken wird sich dann für die passende Sprache entschieden.

Wenn du jetzt Lust auf das Thema bekommen hast, dann wird dich die Nachricht freuen, dass wir derzeit daran arbeiten, dir Node.js auch als Kunden anzubieten. Wir halten dich hier auf dem Laufenden.

Kommentare

  1. Anja Koser am
    Hallo Stefan,
    danke für deine Frage. Wir arbeiten aktuell daran und informieren unsere Kunden, wenn es losgeht.
    Viele Grüße
    Anja
    Antworten
  2. Stefan am
    Wann können wir nodejs im softwaremanager zuschalten?
    Antworten

Kommentar hinzufügen