Deno im Jahr 2023
(deno.com)Veränderungen bei Deno im Jahr 2023
- Deno versteht
package.json-Dateien und kann eingebaute Node-Module wienode:fsundnode:cryptoüber dennode:-Specifier importieren. - Die neue Webserver-API
Deno.servewurde stabilisiert, und der HTTP-Durchsatz wurde im Jahresvergleich um etwa 73 % verbessert. deno compileunterstützt nun Worker, dynamische Imports und npm-Module.- Deno nutzt Web Streams (
ReadableStreamundWriteableStream) sowieAbortControllerAPI-weit besser und verringert damit die Kluft zwischen Browser- und Server-seitiger Programmierung. - Die Deno-Konfigurationsdatei
deno.jsonkann jetzt auch als Import Map verwendet werden, vereinfacht das Schema und ergänzt Glob-Unterstützung sowie eine nützliche Top-Level-Eigenschaft"exclude". - Das Open-Source-Notebook-Tool Jupyter unterstützt Deno nun mit JavaScript und TypeScript.
- WebGPU wurde nach fast einem Jahr Entwicklungsarbeit zu Deno hinzugefügt.
- Deno's konfigurationsloses TypeScript bietet dank deutlicher Verbesserungen bei LSP- und VS-Code-Integration eine bessere Editor-Integration.
- Fresh, das Deno-basierte Web-Framework, wurde um Funktionen wie Tailwind-Unterstützung, Partials und Layout-Dateien erweitert.
- Deno Deploy wurde mit global verteilten Bausteinen wie Deno KV, Queues und Cron leistungsfähiger.
- Es wurde Self-Service-Subhosting eingeführt, damit die Plattform nicht vertrauenswürdiges Multi-Tenant-JavaScript bereitstellen und ausführen kann.
Verbesserte Kompatibilität mit Node und npm
- Deno erweitert seine Kompatibilität mit dem Node-Ökosystem, einschließlich eingebauter Node-Module wie
node:fsundnode:child_process, über dennode:-Specifier. - Für einen nahtlosen Wechsel von Node zu Deno wurden mehrere neue Funktionen eingeführt:
- Mit dem Flag
--unstable-byonmkann innerhalb von Deno der bevorzugte npm-Paketmanager verwendet werden. - Das Flag
--unstable-sloppy-importslockert die Strenge bei Modul-Imports und berücksichtigt verschiedene Coding-Stile und Praktiken. - Das Flag
--unstable-unsafe-protounterstütztObject.prototype.__proto__, auf das viele npm-Pakete angewiesen sind.
- Mit dem Flag
- Durch die Stabilisierung der Node-API können npm-Pakete, die von der Node-API abhängen, nun ohne das Flag
--unstableverwendet werden, wodurch der unterstützte Umfang wächst.
Einfachere und schnellere Webserver mit Deno.serve()
- Die Funktion
Deno.serve()wurde eingeführt und stabilisiert, sodass Entwickler mit minimalem Code einen Server starten können. - Durch gezielte Optimierungen an Core-Bibliotheken und Event-Loop-Mechanismen wurde die Performance deutlich verbessert.
- Deno's HTTP-Durchsatz stieg in Benchmark-Tests mit einer einfachen Standardkonfiguration für einen "Hello, world"-Server sichtbar an.
Flexibleres deno.json
- Deno verfolgt das Prinzip, ohne komplexe Konfiguration nutzbar zu sein, und verbessert die Konfigurationsdatei
deno.jsonkontinuierlich, um die einfache Nutzung zu erhalten:deno.jsonkann nun auch als Import Map verwendet werden.deno fmtunterstützt Semikolons und bietet damit mehr Flexibilität beim Code-Stil.- Die Integration mit
package.jsonerleichtert den Wechsel zwischen Node- und Deno-Umgebungen. - Die Struktur von
deno.jsonwurde vereinfacht, damit Entwickler sich intuitiver darin zurechtfinden. - Durch die Einführung von Glob-Mustern lassen sich Dateien und Verzeichnisse präziser ein- oder ausschließen.
Flüssigeres Entwicklungserlebnis mit LSP
- Die Integration des Language Server Protocol (LSP) in Deno bietet Funktionen wie präzises Springen zu Definitionen, umfassendes IntelliSense und nahtlose Code-Formatierung für TypeScript-Projekte.
- Es wurde viel Aufwand in die Verbesserung des LSP gesteckt, um das Coding in Deno flüssiger und intuitiver zu machen.
WebGPU
- WebGPU integriert moderne Technologie in Deno, mit der Entwickler die Leistung von GPU-Hardware direkt mit JavaScript nutzen können.
- WebGPU ist hinter dem Flag
--unstable-webgpuverfügbar und ein wichtiger Meilenstein für die Erweiterung der Fähigkeiten von Deno-Anwendungen.
Jupyter-Notebooks
- Das Open-Source-Notebook-Tool Jupyter unterstützt Deno nun mit JavaScript und TypeScript.
- Dadurch werden Data Science, Visualisierung und mehr mit modernem JavaScript, TypeScript und Web-Standard-APIs möglich.
Bemerkenswerte Open-Source-Rust-Crates
- Deno ist mit verschiedenen Open-Source-Projekten verbunden und trägt aktiv dazu bei, den Funktionsumfang von Deno zu erweitern und die Performance zu optimieren.
- In diesem Jahr hat Deno einige Rust-Crates veröffentlicht, die auch eigenständig nützlich sein können.
Fresh
- Fresh ist Deno's modernes Full-Stack-Web-Framework, das standardmäßig kein clientseitiges JavaScript ausliefert, und wird kontinuierlich verbessert, um die Nutzung zu vereinfachen und die Performance zu steigern.
Ausbau von Deno's Cloud-Geschäft
- Deno Subhosting wurde von einer Unterstützung für Netlifys Edge Functions und die E-Commerce-Shops von Deco.cx-Kunden zu einem eigenen Service weiterentwickelt und ist nun für alle kostenlos nutzbar.
- Mit der Einführung von Cloud-Bausteinen wie Deno KV, Queues und Cron wurden Fortschritte in Richtung der Vision erzielt, Webentwicklung grundlegend zu vereinfachen.
Deno 2
- Deno 2 soll eine verbesserte Runtime bieten, einschließlich spannender Ankündigungen zur besseren Kompatibilität mit Node und npm sowie zur Verwaltung und Optimierung von Projektabhängigkeiten.
Meinung von GN⁺:
- Wichtig ist, dass Deno die Kompatibilität mit Node.js deutlich verbessert und sich auf die Vereinfachung der Webentwicklung konzentriert. Das kann bestehenden Node.js-Entwicklern den Wechsel zu Deno erleichtern und die Verbreitung von Deno fördern.
- Die Integration moderner Funktionen wie WebGPU zeigt, dass Deno über eine reine Server-Side-Plattform hinauswächst und für ein breiteres Spektrum an Anwendungsentwicklung geeignet wird. Das kann besonders für Entwickler attraktiv sein, die High-Performance-Computing mit GPU-Unterstützung benötigen.
- Die Weiterentwicklung des Fresh-Frameworks und von Deno Deploy deutet darauf hin, dass Deno eine wichtige Rolle in der Full-Stack-Webentwicklung spielen kann, und stärkt Deno's Position als Cloud-basierter Service. Diese Entwicklungen erhöhen die Wahrscheinlichkeit, dass sich Deno als wichtiger Akteur der modernen Webentwicklung etabliert.
2 Kommentare
Hacker-News-Kommentare
pkg-Lösung von Node.js.deno-core-Crate sei sehr rudimentär und schwer einzubetten. Er hoffe, dass Deno in der Welt der JS-Tools zu einer „Plugin-Runtime“ werden könne, und erklärte, dass er derzeit in einem Rust-Hostprozess über stdio mit einem Node.js-Kindprozess kommuniziere.