© iurii/Shutterstock.com
Entwickler Magazin
Neue Runtime für serverseitiges JavaScript

Deno - der neue Dino in der Webwelt

In seinem Vortrag „10 Things I Regret About Node.js“ hat Ryan Dahl, der Schöpfer von Node.js, von falschen Designentscheidungen gesprochen, die seinerzeit bei der Entwicklung von Node.js getroffen worden seien. Da man die Zeit nicht zurückdrehen kann, hat Dahl sein neues Projekt Deno ins Leben gerufen. Das Ziel: Schwächen von Node sollen revidiert und eine moderne, sichere Plattform für serverseitiges JavaScript bereitgestellt werden. Ist der Versuch geglückt?

Sebastian Springer


Manchmal haben Produkte Erfolg, obwohl sie nicht perfekt sind und zahlreiche Fehler aufweisen. Ein Paradebeispiel ist JavaScript, eine Skriptsprache, die weit entfernt ist von technischer Exzellenz und elegantem Sprachdesign. Dennoch ist JavaScript mit eine der weltweit meist verwendeten Sprachen. Ähnliches gilt auch für Node.js, die serverseitige JavaScript-Plattform, die primär in Web- und Kommandozeilenapplikationen zum Einsatz kommt. Node.js-Entwickler Ryan Dahl hat nun ein neues Projekt ins Leben gerufen: Deno. Es soll von den Erfahrungen mit Node.js profitieren und eine neue, sichere Plattform sein. Auch in Deno werden Applikationen weiterhin in JavaScript beziehungsweise TypeScript implementiert – allerdings ändern sich einige Dinge grundlegend im Vergleich zur Entwicklung mit Node.js. Eine Gegenüberstellung der beiden Plattformen wäre allerdings nicht gerecht, da sich Deno aktuell noch in einer sehr frühen Phase befindet und sich sowohl die Schnittstellen als auch einige Architektur- und Designentscheidungen ändern können. Aus diesem Grund werfen wir einen Blick auf die Aspekte von Deno, die sich von Node unterscheiden, und zeigen, wie sich diese Unterschiede auf die tägliche Arbeit auswirken.

Was macht Deno besser als Node?

Die Idee hinter Deno ist dieselbe wie bei Node: Es soll eine Plattform zur Ausführung von JavaScript abseits vom Browser bieten. Wie bei Node ist auch Deno keine vollständige Eigenimplementierung, sondern bedient sich bei verschiedenen, bereits bestehenden Projekten. So kommt für JavaScript die Google Engine V8 zum Einsatz. Diese etabliert sich zunehmend zum Standard, wenn es um die Ausführung von JavaScript in verschiedenen Umgebungen geht. Browserseitig ist V8 sowohl in Chrome als auch mittlerweile in Edge integriert. Serverseitig setzen sowohl Node als auch Deno auf diese Engine. Im Gegensatz zu Node, dessen Kern in C++ geschrieben ist, nutzt Deno Rust als Programmiersprache. Rust wurde von Mozilla Research entwickelt und soll eine bessere Sicherheit als C++ beim Speicherzugriff bieten, bei einer ähnlich guten Performance. So ist es auch nicht verwunderlich, dass eines der zentralen Elemente, der Event Loop von Deno, in Rust implementiert wurde. Mit Rusts asynchroner Laufzeit Tokio hat Ryan Dahl auch hier auf ein bereits etabliertes Projekt zurückgegriffen.

Sicherheit und Ressourcenzugriff

Einer der größten Kritikpunkte an Node sind Sicherheitslücken bei der Ausführung. Im Browser wird JavaScript in einer Sandbox ausgeführt, ...

Entwickler Magazin
Neue Runtime für serverseitiges JavaScript

Deno - der neue Dino in der Webwelt

In seinem Vortrag „10 Things I Regret About Node.js“ hat Ryan Dahl, der Schöpfer von Node.js, von falschen Designentscheidungen gesprochen, die seinerzeit bei der Entwicklung von Node.js getroffen worden seien. Da man die Zeit nicht zurückdrehen kann, hat Dahl sein neues Projekt Deno ins Leben gerufen. Das Ziel: Schwächen von Node sollen revidiert und eine moderne, sichere Plattform für serverseitiges JavaScript bereitgestellt werden. Ist der Versuch geglückt?

Sebastian Springer


Manchmal haben Produkte Erfolg, obwohl sie nicht perfekt sind und zahlreiche Fehler aufweisen. Ein Paradebeispiel ist JavaScript, eine Skriptsprache, die weit entfernt ist von technischer Exzellenz und elegantem Sprachdesign. Dennoch ist JavaScript mit eine der weltweit meist verwendeten Sprachen. Ähnliches gilt auch für Node.js, die serverseitige JavaScript-Plattform, die primär in Web- und Kommandozeilenapplikationen zum Einsatz kommt. Node.js-Entwickler Ryan Dahl hat nun ein neues Projekt ins Leben gerufen: Deno. Es soll von den Erfahrungen mit Node.js profitieren und eine neue, sichere Plattform sein. Auch in Deno werden Applikationen weiterhin in JavaScript beziehungsweise TypeScript implementiert – allerdings ändern sich einige Dinge grundlegend im Vergleich zur Entwicklung mit Node.js. Eine Gegenüberstellung der beiden Plattformen wäre allerdings nicht gerecht, da sich Deno aktuell noch in einer sehr frühen Phase befindet und sich sowohl die Schnittstellen als auch einige Architektur- und Designentscheidungen ändern können. Aus diesem Grund werfen wir einen Blick auf die Aspekte von Deno, die sich von Node unterscheiden, und zeigen, wie sich diese Unterschiede auf die tägliche Arbeit auswirken.

Was macht Deno besser als Node?

Die Idee hinter Deno ist dieselbe wie bei Node: Es soll eine Plattform zur Ausführung von JavaScript abseits vom Browser bieten. Wie bei Node ist auch Deno keine vollständige Eigenimplementierung, sondern bedient sich bei verschiedenen, bereits bestehenden Projekten. So kommt für JavaScript die Google Engine V8 zum Einsatz. Diese etabliert sich zunehmend zum Standard, wenn es um die Ausführung von JavaScript in verschiedenen Umgebungen geht. Browserseitig ist V8 sowohl in Chrome als auch mittlerweile in Edge integriert. Serverseitig setzen sowohl Node als auch Deno auf diese Engine. Im Gegensatz zu Node, dessen Kern in C++ geschrieben ist, nutzt Deno Rust als Programmiersprache. Rust wurde von Mozilla Research entwickelt und soll eine bessere Sicherheit als C++ beim Speicherzugriff bieten, bei einer ähnlich guten Performance. So ist es auch nicht verwunderlich, dass eines der zentralen Elemente, der Event Loop von Deno, in Rust implementiert wurde. Mit Rusts asynchroner Laufzeit Tokio hat Ryan Dahl auch hier auf ein bereits etabliertes Projekt zurückgegriffen.

Sicherheit und Ressourcenzugriff

Einer der größten Kritikpunkte an Node sind Sicherheitslücken bei der Ausführung. Im Browser wird JavaScript in einer Sandbox ausgeführt, ...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang