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. Gravatar
    Rüdiger Czieschla Stadt Freiburg am
    ... und wieder sind 2 Monate verstrichen. Wo ist denn das Problem? Gibt es etwas konkretere Pläne, wann Nodejs unterstützt wird? Es gibt auf unseren Webseiten durch die fehlende Unterstützung v.a. bei Mobilgeräten reichlich unschöne Effekte.
    Antworten
    1. Gravatar
      Katarina Uphoff am
      Hallo Rüdiger,

      danke für deine Nachricht. Ich hab gesehen, dass du ein Ticket eröffnet hast und habe gerade mit Christian drüber gesprochen. Er meldet sich heute am späten Nachmittag via Ticket bei dir.

      Viele Grüße von

      Katarina
      Antworten
      1. Gravatar
        Roberto Cornice am
        Hi
        Wie ist denn der aktuelle Stand? Ab wann können wir mit der Unterstützung von node.js auf den Agenturservern rechnen?
        Antworten
  2. Gravatar
    boehm am
    Es ist ja inzwischen wieder einige Zeit vergangen...
    gibt es inzwischen ein ungefähres Datum, an dem man mit nodeJS rechnen kann?
    Antworten
    1. Katarina Uphoff am
      Hey boehm,
      stimmt, es ist wieder einige Zeit vergangen - Zeit, in der wir an der Weiterentwicklung unserer Produkte arbeiten. Euch Node.js anzubieten ist einer von vielen Tasks auf unserer Roadmap. Wir haben hier erste Tests gemacht, die uns aber noch nicht zufriedengestellt haben. Daher drehen wir jetzt weitere Runden, bis es so sitzt, dass wir damit zufrieden sind und es euch anbieten können. Und wenn das so weit ist, geben wir euch hier im Blog und auf Social Media Bescheid.
      Viele Grüße aus dem Marketing-Team
      Antworten
      1. Gravatar
        Peter am
        Und wieder anderthalb Monate vergangen. Gibt es denn nicht wenigstens einen ungefähren zeitlichen Rahmen?
        Eine klarere Kommunikation diesbezüglich wäre wünschenswert, so könnten euch einige Kunden entgehen.
        Viele Grüße
        Peter
        Antworten
  3. Gravatar
    Jörg Westarp am
    Moin @Mittwald,
    kann man in euren Agenturpaketen denn Node.js nutzen?
    Das wäre ein echt guter Grund für einen Wechsel zu euch.
    Antworten
    1. Tobias Schmidt am
      Hallo Jörg,
      momentan noch nicht. Wir arbeiten aber bereits daran und sind in der Testphase. Sobald das Feature verfügbar ist, werden wir das öffentlich kommunizieren. Stay tuned.

      Viele Grüße
      Tobias
      Antworten
  4. Gravatar
    Matthias am
    Ja würde mich auch sehr interessieren...

    *push*

    ;)
    Antworten
    1. Anja am
      Hallo Jonathan, hallo Matthias,

      danke für eure Anfragen. Wir arbeiten immer noch daran und werden unsere Kunden natürlich informieren, sobald es hier etwas Neues gibt.

      Viele Grüße

      Anja
      Antworten
  5. Gravatar
    Jonathan am
    Hallo, gibt es schon einen neuen Status zu Nodejs für Kunden? Danke!
    Antworten
  6. 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
  7. Gravatar
    Stefan am
    Wann können wir nodejs im softwaremanager zuschalten?
    Antworten

Kommentar hinzufügen