cover

Bun 1.0

author photo

Héctorbliss

@hectorbliss


robot logo saying hello

No te quedes atrás: Actualízate

Suscríbete para recibir información sobre nuevos frameworks, updates, eventos, tips, hacks y más.

Es uno de los proyectos open source, más ambiciosos de los últimos años, es uno de esos proyectos que con tiempo, trabajo duro y paciencia sorprenden a la comunidad web entera. 🤯

Este proyecto ha estado en la boca de muchos desarrolladores experimentados, yo lo he seguido de reojo, principalmente porque me interesan los nombres detrás del proyecto. Nombres como el de Jarred Sumner y Colin McDonnell que es también el creador de Zod y tRPC.

Bun 1.0 es la primera versión estable y lista para producción.

Pero, ¿por qué debería emocionarnos que Bun tenga una versión lista para producción?

En este post, vamos a responder esa y algunas preguntas más como:

¿Qué hace a Bun tan popular?

¿Cómo me podría ayudar Bun en mi día a día? Y finalmente,

¿Qué no se puede hacer con Bun ahora mismo?

¿Qué hace a Bun tan popular?

El contexto siempre es importante, y nos encontramos en una etapa en el desarrollo de la plataforma web, donde JavaScript es el rey. Por eso las herramientas que nos van apareciendo, giran en torno a este lenguaje poco escalable, pero muy importante, que incluso los nuevos lenguajes de programación giran en torno a él, como TypeScript que es un superset de JavaScript, es decir que JavaScript es TypeScript válido, pues es su razón de ser y existir. 😘

bun speed

Entendiendo entonces la importancia que tiene JavaScript para la web, no podían tardar en aparecer los runtimes, te puedes imaginar a un runtime como el encargado de ejecutar tu código. Un runtime lee, interpreta y ejecuta tu código permitiendo que tu programa interactúe con los recursos de la computadora que necesita para trabajar. 🤖

El primero en sacar a JavaScript del navegador fue Node.js, permitiéndonos usar, de nuevo, este lenguaje falible, ahora en el servidor, donde es todavía más importante usar TypeScript para asegurarnos de escribir código escalable.

El creador de Node.js creo un segundo runtime con un nombre que comparte las mismas letras del primero: Deno.

Con este segundo runtime Ryan Dahl dijo que quería corregir sus errores, refiriéndose a Node.js.

La primera vez que escuché todo esto, sentí que mi universo se expandió. Pues en mi pequeño mundo de desarrollador JR., yo pensé que Node.js era dios, y oh sorpresa, aparece la ciencia.

Bun es muy popular porque tiene raíces fuertes en la comunidad open source, y también ha aprendido de sus predecesores. Con Bun puedes hacer lo mismo que con Node.js, bueno, virtualmente lo mismo...

¿Cómo me podría ayudar Bun en mi día a día?

La meta de Bun es simple: “Eliminar la lentitud y la complejidad sin eliminar todo lo genial de JavaScript”.

Bun quiere que todas las herramientas que ya estás acostumbrado(a) a usar con JavaScript, sigan funcionando con Bun y no tener la necesidad de desaprender convenciones con las que estás familiarizado(a). Lo cual no es decir poca cosa, pero por ahora su objetivo avanza con un paso firme y constante, te dejo un enlace a la lista de compatibilidad que Bun tiene con Node.js, además de tener propuestas modernas e interesantes, como que con Bun puedes olvidarte por completo de nodemon, que npx es cinco veces más rápido o que no hay necesidad de instalar dotenv.

Pero además Bun quiere eliminar la necesidad de pensar en configurar Webpack o Rollup, al ofrecernos transpilación y empaquetado gratis, incluso puedes olvidarte de babel, esbuild o parcell. Bun reconoce los comandos de npm y escribe en node_modules, así que tampoco los extrañarás. Y sí, Bun es compatible con Jest y Vitest. 🤯

Bun reúne todo esto porque cree profundamente en la experiencia del developer. Además de buscar optimizar el trabajo que los runtimes hacen de forma redundante, critican lo que ellos llaman “duct tape” refiriéndose a parchados y adaptaciones de cinta, que terminan fallando.

Algo muy loco e importante de Bun es que tiene una compatibilidad con Node.js que ellos llaman “perfect compatibility”. Puedes correr “virtualmente” cualquier programa de Node.

¿Tal vez por eso es tan popular? No pierdes compatibilidad, pero ganas velocidad y simplicidad.

«Well, I’m in». 🤗 🥟

¿Qué no puedo hacer con Bun ahora mismo?

Es difícil responder esta pregunta, pues Bun es compatible con TypeScript y JSX sin necesidad de instalar nada.

Es compatible con ESM & CommonJS, los dos.

Tienes acceso a la Fetch API de la web: fetch, Request, Response, WebSocket y Streams.

Tienes hot-reloading con un simple flag —hot.

Bun está pensado para integrar plugins, inspirados por lo que ha hecho esbuild.

Pero algo aún más loco, es que mientras Deno lucha por llevar a producción su base de datos KV, Bun ya nos incluye una SQLite.

const db = new Database(':memory'); const query = db.query('DELETE sin WHERE'); query.get(); // ==> {data:"blissmo"}

La única respuesta que puedo ofrecer, es tal vez: que Bun, aún no se puede usar en producción con Windows.

Mientras que en MacOS y Linux, Bun está listo para producción. Sorry Windows fans 🥸

windows bun

Bun ha recorrido un largo camino para llegar aquí, convirtiéndose en el runtime de JavaScript más rápido jamás visto. 🏎️

Yo estoy más que listo, para instalarlo y echarle un vistazo, ahora que lo puedo emplear en producción.

El código para levantar un servidor web es un ejemplo de la simplicidad contenida en este runtime con mascotita apetitosa y feliz, si te gustaría ver un mini proyecto web, con Bun, déjame saberlo.

¿Qué tal? ¿Tú también vas a sustituir Node.js para experimentar?

Te dejo el comando de instalación:

curl -fsSL https://bun.sh/install | bash

Abrazo. Bliss.

Enlaces relacionados

Compatibilidad

banner

¿Quieres mantenerte al día sobre los próximos cursos y eventos?

Suscríbete a nuestro newsletter

Jamás te enviaremos spam, nunca compartiremos tus datos y puedes cancelar tu suscripción en cualquier momento 😉

robot logo saying hello
facebook icontwitter iconlinkedin iconinstagram iconyoutube icon

© 2016 - 2023 Fixtergeek