Les changements de Deno en 2023
- Deno comprend désormais le fichier
package.json et peut importer des modules Node intégrés comme node:fs et node:crypto via le spécificateur node:.
- La nouvelle API de serveur web
Deno.serve a été stabilisée, et le débit HTTP a augmenté d’environ 73 % sur un an.
deno compile prend désormais en charge les workers, les imports dynamiques et les modules npm.
- Deno exploite mieux les Web Streams (
ReadableStream et WriteableStream) ainsi que AbortController dans l’ensemble de ses API, réduisant l’écart entre la programmation côté navigateur et côté serveur.
- Le fichier de configuration de Deno,
deno.json, peut maintenant aussi servir de carte d’imports, avec un schéma simplifié, la prise en charge des glob patterns et une utile propriété de haut niveau "exclude".
- Jupyter, l’outil open source de notebooks, prend désormais en charge Deno avec JavaScript et TypeScript.
- WebGPU a été ajouté à Deno après près d’un an de développement.
- Le TypeScript sans configuration de Deno améliore l’intégration avec les éditeurs grâce à des progrès notables dans le LSP et l’intégration VS Code.
- Fresh, le framework web basé sur Deno, s’enrichit avec la prise en charge de Tailwind, des partials, des fichiers de layout et d’autres fonctionnalités.
- Deno Deploy devient plus puissant grâce à des briques nativement distribuées à l’échelle mondiale comme Deno KV, Queues et Cron.
- La plateforme a lancé un service de subhosting en self-service pour permettre le déploiement et l’exécution de JavaScript multi-tenant non fiable.
Compatibilité renforcée avec Node et npm
- Deno étend sa compatibilité avec l’écosystème Node, notamment avec les modules Node intégrés comme
node:fs et node:child_process via le spécificateur node:.
- Plusieurs nouvelles fonctionnalités ont été introduites pour faciliter la transition de Node vers Deno :
- Le flag
--unstable-byonm permet d’utiliser votre gestionnaire de paquets npm préféré dans Deno.
- Le flag
--unstable-sloppy-imports assouplit la rigueur des imports de modules afin d’accommoder différents styles et pratiques de code.
- Le flag
--unstable-unsafe-proto prend en charge Object.prototype.__proto__, dont dépendent de nombreux paquets npm.
- La stabilisation de Node-API élargit la prise en charge en permettant d’utiliser des paquets npm qui en dépendent sans le flag
--unstable.
Des serveurs web plus simples et plus rapides avec Deno.serve()
- L’introduction puis la stabilisation de la fonction
Deno.serve() permet aux développeurs de démarrer un serveur avec un minimum de code.
- Des optimisations ciblées dans la bibliothèque cœur et les mécanismes de boucle d’événements améliorent fortement les performances.
- Le débit HTTP de Deno a nettement progressé dans les benchmarks utilisant une configuration de serveur "Hello, world" de base.
Un deno.json plus flexible
- Deno suit un principe de programmation qui vise à pouvoir être utilisé sans configuration complexe, et continue d’améliorer le fichier
deno.json pour conserver cette simplicité d’usage :
deno.json peut aussi être utilisé comme carte d’imports.
deno fmt prend en charge les points-virgules, offrant davantage de souplesse dans le style de code.
- L’intégration avec
package.json facilite les allers-retours entre les environnements Node et Deno.
- La structure de
deno.json a été simplifiée pour permettre aux développeurs de s’y repérer plus intuitivement.
- L’introduction des glob patterns permet un contrôle plus fin de l’inclusion ou de l’exclusion de fichiers et de répertoires.
Une expérience de développement plus fluide grâce au LSP
- L’intégration du Language Server Protocol (LSP) de Deno offre des fonctionnalités comme une navigation précise vers les définitions, un IntelliSense complet et un formatage fluide du code pour les projets TypeScript.
- Beaucoup d’efforts ont été consacrés à l’amélioration du LSP pour rendre le développement avec Deno plus fluide et plus intuitif.
WebGPU
- WebGPU intègre à Deno une technologie de pointe permettant aux développeurs d’exploiter directement la puissance du matériel GPU depuis JavaScript.
- WebGPU est disponible derrière le flag
--unstable-webgpu et constitue une étape importante dans l’extension des capacités des applications Deno.
Notebooks Jupyter
- Jupyter, l’outil open source de notebooks, prend désormais en charge Deno avec JavaScript et TypeScript.
- Cela permet de faire de la data science, de la visualisation et plus encore avec JavaScript et TypeScript modernes ainsi qu’avec les API standards du web.
Crates Rust open source remarquables
- Deno est lié à divers projets open source et y contribue activement afin d’étendre son ensemble de fonctionnalités et d’optimiser ses performances.
- Cette année, Deno a publié plusieurs crates Rust qui peuvent aussi être utiles de manière indépendante.
Fresh
- Fresh est le framework web full stack moderne de Deno, qui n’envoie pas de JavaScript côté client par défaut, et continue d’être amélioré pour rester simple à utiliser et plus performant.
Expansion de l’activité cloud de Deno
- Deno Subhosting, après avoir servi aux edge functions de Netlify et aux boutiques e-commerce des clients de Deco.cx, est devenu un service autonome accessible gratuitement à tous.
- Le lancement de briques cloud comme Deno KV, Queues et Cron marque une nouvelle avancée vers la vision d’une simplification radicale du développement web.
Deno 2
- Deno 2 doit proposer un runtime amélioré, avec notamment des annonces intéressantes autour d’une meilleure compatibilité avec Node et npm, ainsi que de la gestion et de l’optimisation des dépendances de projet.
L’avis de GN⁺ :
- Il est important que Deno améliore fortement sa compatibilité avec Node.js tout en se concentrant sur la simplification du développement web. Cela peut faciliter la transition vers Deno pour les développeurs Node.js existants et encourager son adoption.
- L’intégration de fonctionnalités avancées comme WebGPU montre que Deno dépasse le simple rôle de plateforme server-side pour convenir à un éventail plus large de développement d’applications. Cela peut être particulièrement attractif pour les développeurs qui ont besoin de calcul haute performance exploitant le GPU.
- Les progrès du framework Fresh et de Deno Deploy suggèrent que Deno peut jouer un rôle important dans le développement web full stack, tout en renforçant sa position comme service cloud. Ces avancées augmentent la probabilité que Deno s’impose comme un acteur majeur du web moderne.
2 commentaires
Commentaires sur Hacker News
pkgde Node.js.deno-coreest très basique et difficile à intégrer. Il pense que Deno pourrait devenir le « runtime de plugins » du monde des outils JS et précise qu’à l’heure actuelle, il communique avec un processus enfant Node.js via stdio depuis un processus hôte Rust.