Deno

– Das müsst ihr über die Laufzeitumgebung wissen!

Datum

17.11.2020

Dieser Beitrag wurde verfasst von:

Andreas Löw

Die Laufzeitumgebung Node.js dürfte den meisten von euch wohl ein Begriff sein. Deno nennt sich die neueste Kreation von Ryan Dahl, dem ursprünglichen Schöpfer von Node.js es wurde mehr oder weniger von den Mängeln von Node.js inspiriert und weist ihm gegenüber tatsächlich einige spannende Neuerungen auf.

Was es mit Deno genau auf sich hat und ob es Node.js potentiell ersetzen wird, erfahrt ihr in unserem Blogbeitrag. Oder ihr schaut euch einfach unser neuestes YouTube-Video zu dem Runtime Environment an:


Das steckt hinter Deno

Der Name Deno an sich sagt schon einiges über die neue Laufzeitumgebung aus: Ändert ihr die Reihenfolge der Buchstaben, ergibt sich daraus der Begriff Node. Das ist kein Zufall, denn sowohl hinter Deno als auch hinter Node.js steckt derselbe Kopf: Software Engineer Ryan Dahl. Nun – wo liegt der Unterschied?

Bei beiden handelt es sich um Laufzeitumgebungen für serverseitiges JacaScript. Aber: Deno bietet im Gegensatz zu Node.js bereits von Haus eine TypeScript-Umgebung. Es wurde ursprünglich in Go programmiert, allerdings wurde nach einer Zeit die Entscheidung getroffen auf Rust zu wechseln. Im Hintergrund arbeitet neben Rust die schon aus Node.js bekannte V8 JavaScript Engine.

Eine Besonderheit an Deno ist das Mehr an Sicherheit, welches die Laufzeitumgebung bietet. Im Gegensatz zu Node.js ist es hier nicht möglich, die von V8 vorgesehene Sandbox einfach zu verlassen. Es ist vielmehr notwendig, dem Programm zunächst eine Erlaubnis zu erteilen. Mehr Details hierzu findet ihr in unserem Video.

Diese Tools bietet es euch

Wie erwähnt, punktet Deno, wenn es ums Thema Sicherheit geht. Darüber hinaus bietet das Runtime Environment eine Vielzahl an Tools, sodass es beinahe den Anschein eines ganzen Frameworks erweckt. Angefangen bei Debugger-Tools über Formatter bis hin zu Prettier könnt ihr viele Anwendungen nutzen, ohne vorab Zeit für Installationen aufwenden zu müssen. Darüber hinaus gibt es einen Bundler, der eure TypeScript-Datei automatisch in eine JavaScript-Datei wandelt sowie ein Linting-Tool. Auch Test könnt ihr ohne initiale Installation ausführen.

Module – Das gibt es zu beachten

Es fällt auf, dass bei Deno kein required-Befehl verwendet wird, um Module herunterzuladen oder einzubinden. Anstatt dessen werden sie über einen Link, entsprechend der aus Go bekannten ES Modules-Technik, importiert oder exportiert.

Für viele vielleicht ein Manko: Innerhalb von Node gibt es weder package.json, noch Node-, noch npm-Module – lediglich die bereits erwähnten ES-Module. Deno muss folglich seine eigenen Plug Ins sowie seine eigenen Module aufbauen. Es ist zu erwarten, dass es eine ganze Weile dauern wird, bis ein ähnliches Niveau wie bei node.js mit dem Package-Manager erreicht ist.

Deno vs. Node.js

Zum Schluss die Frage: Wird Deno node.js ersetzen? Zum aktuellen Zeitpunkt ein ganz klares: Nein! Node.js ist ein ausgereiftes Produkt mit vielen Modulen und Möglichkeiten, während Deno gewissermaßen noch in den Kinderschuhen steckt. Es bleibt allerdings festzuhalten, dass Deno eine sehr vielversprechende Architektur bietet. Darüber hinaus fällt auf, dass bei der Laufzeitumgebung eine Vielzahl smarter Designentscheidungen getroffen wurden, die sich bei Node.js nicht mehr so einfach korrigieren lassen. Für produktive Projekte ist Deno derzeit noch nicht zu empfehlen, für kleinere Spielprojekte allemal! 


Ihr wollt mehr über Deno erfahren? Dann schaut euch in jedem Fall unser YouTube-Video an! Neben mehr Detailwissen findet ihr darin zwei spannende Demos, die euch den Einstieg in Deno erleichtern werden.