Estás leyendo la publicación: Bun.js es el nuevo asesino de Node.js
De intensas complejidades surgen simplicidades: Winston Churchill. ¿Quién hubiera pensado que el “hombre de las grandes citas” se refería al tiempo de ejecución de JavaScript ‘Bun’, que nació casi 100 años después de esta famosa cita?
Durante 13 años completos, ‘Node.js’, un entorno de tiempo de ejecución de Javascript, fue un campeón indiscutible. Ahora, parece que sus días han terminado. El fundador de Node, Ryan Dahl, está decepcionado con su propia invención y ahora ha lanzado ‘Deno’, un tiempo de ejecución moderno para JavaScript y TypeScript.
Pero Dahl no era la única persona inteligente en la sala. Jarred Sumner, otro genio, estaba demasiado preocupado por cómo todo era tan lento en JavaScript, cuando decidió hornear ‘Bun’.
Desarrolló Bun, un tiempo de ejecución de JavaScript, en el lenguaje de programación Zig, que también es compatible con los estándares web mientras apunta a la compatibilidad con la API de Node.js para facilitar a los desarrolladores la migración del código existente.
Bun es un tiempo de ejecución de JavaScript con un paquete nativo, un transpilador, un ejecutor de tareas y un cliente npm integrado. Es un tiempo de ejecución de JavaScript contemporáneo, similar a Node o Deno.
Según el sitio web, Bun está destinado a ser un reemplazo directo para sus aplicaciones o scripts de JavaScript y TypeScript existentes en su computadora, servidor o borde local. Bun admite cientos de Node.js y Web API de forma nativa, incluido el 90 % de las funciones de Node-API (módulos nativos), fs, path, Buffer y otras.
Bun tiene como objetivo ejecutar la mayoría de JavaScript fuera de los navegadores, mejorando el rendimiento y la complejidad de la infraestructura, así como la productividad de los desarrolladores con herramientas mejores y más fáciles de usar.
¿Apostando fuerte a la velocidad?
Bun se creó desde cero con tres objetivos principales en mente: comenzar rápido (con la ventaja competitiva en mente), lograr nuevos niveles de rendimiento (al extender JavaScriptCore, el motor) y ser una herramienta fantástica y completa (empaquetador, transpilador, gerente de empaquetación).
A diferencia de Node y Deno, que funcionan en V8, un motor JavaScript desarrollado por Chromium Project para Google Chrome, Bun usa un motor JS diferente. Utiliza JavaScript Core de Webkit, que generalmente se considera más rápido. Además, está escrito en un lenguaje de programación de bajo nivel llamado ‘Zig’.
Según el sitio web oficial, “el objetivo de Bun es ejecutar la mayor parte del JavaScript del mundo fuera de los navegadores, mejorando el rendimiento y la complejidad de la infraestructura futura al tiempo que aumenta la productividad del desarrollador con herramientas mejores y más simples”.
Mientras tanto, los usuarios también han señalado algunos inconvenientes del software.
Problemas destacados
Bun actualmente no tiene un depurador.
También hay problemas con la agrupación y la transpilación. Existen diferentes marcos, Angular, Svelte, Vue y otros, que tienen diferentes formatos de archivo, pero estos marcos aún no se pueden usar con Bun.js.
Existe JavaScript XML, que permite a los codificadores escribir HTML en React, Angular, Svelte y Vue; sin embargo, no puedes usarlo con Bun.js en este momento.
Bun.js viene con compatibilidad con TypeScript lista para usar, y están cometiendo el mismo error que cometieron los desarrolladores de Deno, aunque a mayor escala debido a la agrupación/transpilación, y es necesario brindar asistencia para que Bun.js central se mantenga activo. con mejoras de TypeScript.
Para recibir las funciones más recientes de TypeScript, tendrá que esperar a que Bun.js también agregue soporte.
tratando de complacer a todos
Bun intenta ser una herramienta todo en uno, lo que impone una responsabilidad importante a sus colaboradores y está causando problemas.
Bun debería considerar tener pequeñas herramientas separadas que logren una cosa bien pero que, sin embargo, puedan funcionar orgánicamente entre sí. Bun.js actualmente ha colocado todos los elementos en una placa que los usuarios deberán separar, elegir y usar.
Bun-core, un administrador de paquetes y tiempo de ejecución, podría ser la solución. Ofrecería la funcionalidad esencial necesaria para impulsar nuestra aplicación con una velocidad increíble y poca sobrecarga. Luego, se puede instalar un módulo separado utilizando una administración de paquetes integrada para proporcionar funciones como agrupación o transpilación, soporte para diferentes marcos y más. El núcleo central luego podría exponer la API para ampliarla con los módulos: nuestros ingredientes.
Mientras tanto, Node todavía se actualiza de forma rutinaria, con la versión 18.0 lanzada recientemente, y su futuro parece seguro incluso con Deno y Bun alrededor. Node se utiliza en las infraestructuras de muchas empresas, como PayPal, y las nuevas empresas siguen su ejemplo.
Bun.js todavía está en versión beta y tiene un soporte mínimo; necesitaría Windows Subsystem for Linux para ejecutarlo en Windows. A pesar de sus diversas características, aún no se puede considerar como un software listo para producción porque aún queda mucho trabajo por hacer.