Articulo de referencia

Deno (software)

{{cite web|url=https://deno.com/blog/the-deno-company|title=Announcing the Deno Company|author=Ryan Dahl, Bert Belder|date=2021-03-29}} and contributors"},"released":{"wt":"{{St...

Deno ( / d n / [ 5 ] ) es un entorno de ejecución para JavaScript , TypeScript y WebAssembly que se basa en el motor JavaScript V8 y el lenguaje de programación Rust . Deno fue cocreado por Ryan Dahl , el creador de Node.js [ 6 ] , y Bert Belder. [ 7 ]

Deno asume explícitamente el rol de entorno de ejecución y gestor de paquetes dentro de un único ejecutable , en lugar de requerir un programa de gestión de paquetes separado . [ 5 ] [ 8 ]

Historia

Deno fue anunciado en JSConf EU 2018 por Ryan Dahl en su charla "10 cosas que lamento de Node.js". [ 9 ] En su charla, Dahl mencionó sus arrepentimientos sobre las decisiones de diseño iniciales con Node.js, centrándose en sus elecciones de no usar promesas en el diseño de API , el uso del sistema de compilación heredado GYP , node_modules y package.json, dejar de lado las extensiones de archivo , la resolución mágica de módulos con index.js y romper el entorno aislado de V8. [ 10 ] Finalmente presentó el prototipo de Deno, con el objetivo de lograr enlaces de llamadas al sistema a través del paso de mensajes con herramientas de serialización como Protocol Buffers , y proporcionar indicadores de línea de comandos para el control de acceso .

Deno se escribió inicialmente en Go y utilizó Protocol Buffers para la serialización entre lados privilegiados (Go, con acceso a llamadas al sistema) y no privilegiados (V8). [ 11 ] Sin embargo, Go pronto fue reemplazado por Rust debido a preocupaciones sobre el doble tiempo de ejecución y la presión de la recolección de basura . [ 12 ] Tokio se introdujo en lugar de libuv como la plataforma asíncrona basada en eventos, [ 13 ] y FlatBuffers se adoptó para una serialización y deserialización más rápida y "sin copia" [ 14 ] pero luego en agosto de 2019, FlatBuffers fue eliminado [ 15 ] después de publicar pruebas de rendimiento que midieron una sobrecarga significativa de la serialización en abril de 2019. [ 16 ]

En noviembre de 2018 se creó una biblioteca estándar, modelada a partir de la biblioteca estándar de Go, para proporcionar amplias herramientas y utilidades, resolviendo parcialmente el problema de la explosión del árbol de dependencias de Node.js. [ 17 ]

La versión oficial de Deno 1.0 se lanzó el 13 de mayo de 2020. [ 18 ]

Deno Deploy, inspirado en Cloudflare Workers, [ 19 ] se lanzó el 23 de junio de 2021. [ 20 ] Anunciado el 4 de mayo de 2022 Beta 4 mejoró el panel y agregó funcionalidad de facturación. [ 21 ]

Deno Fresh 1.0 se anunció el 28 de junio de 2022. [ 22 ] Incluye un nuevo framework web full stack para Deno que, por defecto, no envía JavaScript al cliente. El framework no tiene un paso de compilación, lo que permite mejoras de un orden de magnitud en los tiempos de despliegue. La versión 1.1 se lanzó el 8 de septiembre de 2022. [ 23 ]

La versión beta de Deno SaaSKit se anunció el 4 de abril de 2023. [ 24 ] Es una plantilla SaaS moderna de código abierto creada con Fresh y Deno.

Deno 2 se lanzó el 9 de octubre de 2024. [ 25 ] Principalmente trae mejoras de compatibilidad con Node.js y elimina características obsoletas.

Descripción general

Deno pretende ser un entorno de scripting productivo y seguro para el programador moderno. [ 5 ] Al igual que Node.js, Deno enfatiza la arquitectura orientada a eventos , proporcionando un conjunto de utilidades de E/S básicas no bloqueantes , junto con sus versiones bloqueantes. Deno podría usarse para crear servidores web , realizar cálculos científicos, etc. Deno es software de código abierto bajo la licencia MIT . [ 26 ]

Comparación con Node.js

Deno y Node.js son entornos de ejecución basados ​​en el motor JavaScript V8 , desarrollado por el Proyecto Chromium, el mismo que utilizan los navegadores web Chromium y Google Chrome . Ambos cuentan con bucles de eventos internos y ofrecen interfaces de línea de comandos para ejecutar scripts y una amplia gama de utilidades del sistema.

Deno se desvía principalmente de Node.js en los siguientes aspectos: [ 5 ]

  1. Solo admite módulos ES como los navegadores, mientras que Node.js admite tanto módulos ES como CommonJS . La compatibilidad con CommonJS en Deno es posible mediante el uso de una capa de compatibilidad. [ 27 ] [ 28 ]
  2. Admite URL para cargar dependencias locales o remotas, de forma similar a los navegadores , y utiliza especificadores de módulo como npm:y node:para importar módulos NPM o polyfill de Node.js. Node.js admite tanto URL [ 29 ] como módulos.
  3. No requiere un gestor de paquetes para la obtención de recursos, por lo tanto, no necesita un registro como npm . [ 30 ]
  4. Admite TypeScript de forma predeterminada, [ 31 ] utilizando un compilador TypeScript de instantánea o el compilador swc [ 32 ] con mecanismos de almacenamiento en caché.
  5. Su objetivo es lograr una mejor compatibilidad con navegadores que ofrecen una amplia gama de API web.
  6. Restringe el acceso al sistema de archivos y a la red de forma predeterminada para poder ejecutar código en un entorno aislado (sandbox).
  7. Admite una única API para utilizar promesas, ES6 y características de TypeScript, mientras que Node.js admite tanto API de promesas como de devolución de llamada.
  8. Minimiza el tamaño de la API principal, al tiempo que proporciona una amplia biblioteca estándar sin dependencias externas.
  9. Utiliza canales de paso de mensajes para invocar API de sistema privilegiadas y usar enlaces.

Fondos

El 29 de marzo de 2021 se anunció Deno Land Inc., con el respaldo de millones de dólares de Shasta Ventures , Mozilla Corporation y otros. Se creó para impulsar el desarrollo de Deno y ofrecer un servicio comercial a los usuarios. [ 1 ]

Un año después, Deno anunció una financiación adicional de Serie A de 21 millones de dólares liderada por Sequoia Capital . [ 33 ]

Referencias

  1. 1 2 Ryan Dahl, Bert Belder (29-03-2021). "Anuncio de la empresa Deno" .
  2. "Colaboradores, denoland/deno, Github" . GitHub . Consultado el 5 de julio de 2019 .
  3. denoland. "Versión v2.9.1 · denoland/deno" . Consultado el 2 de julio de 2026 .
  4. «deno/LICENSE.md en principal» . GitHub . Consultado el 24 de septiembre de 2025 .
  5. 1 2 3 4 "Manual de Deno" . deno.com . Consultado el 17 de mayo de 2019 .
  6. Schiemann, Dylan (26 de diciembre de 2018). "Deno: Entorno de ejecución seguro de TypeScript V8 del creador original de Node.js" . InfoQ . Archivado del original el 17 de mayo de 2019. Recuperado el 17 de mayo de 2019 .
  7. "El ecosistema de JavaScript está 'irremediablemente fragmentado'... así que aquí hay otro entorno de ejecución: Deno ahora es una empresa" . Archivado del original el 25/06/2024 . Consultado el 10/01/2025 .
  8. Paul Krill (21 de junio de 2018). "Los arrepentimientos de Ryan Dahl con Node.js dan lugar a Deno" . InfoWorld . Archivado del original el 14 de abril de 2019.
  9. Dahl, Ryan (06/06/2018). 10 cosas de las que me arrepiento de Node.js. JSConf EU . Recuperado el 17/05/2019 a través de YouTube.
  10. Dahl, Ryan (2018-06-06). "Errores de diseño en Node" (PDF) . Github .
  11. ^ "denoland/deno, rama" golang "" . GitHub .
  12. "Sugerencia: Considerar la posibilidad de portar el código a Rust y usar Tokio" . GitHub .
  13. "Tokio - El entorno de ejecución asíncrono para el lenguaje de programación Rust" . Tokio.rs .
  14. "¿Protobuf parece generar mucha sobrecarga para este caso de uso?" . GitHub .
  15. "Eliminar flatbuffers" . GitHub .
  16. "Reemplazar flatbuffers" . GitHub . 15 de abril de 2019. Consultado el 11 de julio de 2019 .
  17. "denoland/deno_std: módulos estándar deno" . GitHub . 3 de marzo de 2022.
  18. "Deno 1.0" . deno.com . 13 de mayo de 2020. Consultado el 14 de mayo de 2020 .
  19. Dahl, Ryan (4 de mayo de 2022). "Contenedores de JavaScript" . tinyclouds.org .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  20. Krill, Paul (24 de junio de 2021). "Deno Company presenta un servicio de alojamiento de JavaScript del lado del servidor" . InfoWorld . Recuperado el 14 de abril de 2022 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  21. Krill, Paul (3 de junio de 2022). "Deno Deploy avanza hacia la disponibilidad general y añade un plan de pago" . InfoWorld . Consultado el 24 de julio de 2022 .
  22. Luca, Casonato (22 de julio de 2022). "Introducción a Fresh 1.0 como nuevo framework web full stack para Deno" . Blog de Deno . Consultado el 24 de julio de 2022 .
  23. Casonato, Luca (2022-09-08). "Fresh 1.1 - JSX automático, plugins, DevTools y más" . Blog de Deno . Consultado el 2022-09-10 .
  24. Jiang, Andy (2023-04-04). "Anuncio de Deno SaaSKit: una plantilla SaaS de código abierto creada con Fresh" . Blog de Deno . Consultado el 4 de abril de 2022 .
  25. «Anunciando Deno 2» . Blog Deno . 2024-10-09 . Consultado el 27 de octubre de 2024 .
  26. "Deno está listo para producción" . InfoQ . Consultado el 1 de julio de 2020 .
  27. "Módulos: Módulos ECMAScript | Documentación de Node.js v17.6.0" .
  28. "Deno - Un entorno de ejecución moderno para JavaScript y TypeScript" .
  29. "Módulos: Módulos ECMAScript | Documentación de Node.js v17.6.0" .
  30. "Deno - Un entorno de ejecución moderno para JavaScript y TypeScript" .
  31. "Deno.js en producción. Conclusiones clave" . Medium.com . Consultado el 16 de mayo de 2022 .
  32. "Documentación" . GitHub . 3 de marzo de 2022.
  33. ^ "Deno recauda 21 millones de dólares" . deno.com . 21 de junio de 2022.{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  • Sitio web oficialEdita esto en Wikidata
Obtenido de " https://en.wikipedia.org/w/index.php?title=Deno_(software)&oldid=1330977973 "