El soporte para Bun ahora será limitado y pasará a estar en desuso
(github.com/yt-dlp)- Este issue sigue en estado Open, y a partir del próximo lanzamiento de yt-dlp y/o de
ejs, el alcance del soporte para Bun se limitará a versiones entre1.2.11y1.3.14, y además ese soporte pasará a considerarse en proceso de desuso - yt-dlp seguirá usando Bun como un runtime de JavaScript compatible con
ejs, pero se reserva el derecho a eliminar por completo el soporte para Bun si la carga de mantenimiento aumenta demasiado - La versión mínima soportada sube de
1.0.31a1.2.11; consideran que compilar el paqueteejscon Bun anterior a1.2.0ignora el archivo de bloqueo deejs, lo que representa una seria preocupación de seguridad considerando los recientes ataques a la cadena de suministro de npm - La razón para fijar
1.2.11como límite inferior, y no1.2.0, es que en versiones de Bun anteriores a1.2.11no se puede ejecutar la suite de pruebas deejs - El límite superior se fijó en
1.3.14, y se argumenta que esta fue la última versión construida sobre la base de código original en Zig - Se plantea como preocupación futura de mantenimiento y confianza el hecho de que Bun fue reescrito recientemente en Rust usando Claude, y que su dirección de desarrollo parece orientarse a volverse “totalmente vibe-coded”
- Un comentario respondió que Deno también se está volviendo “vibe coded”, pero el mantenedor contestó que hay una gran diferencia entre usar Claude y depender completamente de Claude
- Ante la pregunta de si las versiones
1.3.4a1.3.14también deberían excluirse del soporte por posible influencia del “vibe coding” tras la adquisición por parte de Anthropic, el mantenedor respondió que lo revisará - Algunos usuarios se opusieron, señalando que bloquear la ejecución con las versiones más recientes de Bun antes de que exista un problema real es una restricción preventiva sin fundamento, y que debería permitirse continuar con advertencias o flags
- Otro comentario explicó que, como se puede pasar directamente la ruta del binario de Bun a
--js-runtimes, es posible seguir usando la versión más reciente de Bun normalmente y asignar una versión estática de Bun1.3.14solo para yt-dlp como alternativa - Junto con este aviso, también se enlazaron el issue sobre el fin del soporte para Node v20 y v21, y el issue para elevar la versión mínima soportada de Deno a
v2.3.0; además, se indicó que la documentación wiki de EJS todavía no refleja este cambio - El mantenedor dejó un comentario fijado, pensando en las respuestas llegadas desde Hacker News, pidiendo que antes de comentar consideren primero si realmente les interesa el problema de usar Bun en yt-dlp
1 comentarios
Comentarios en Hacker News
Se entiende la decisión. Si la mayor parte del código no fue escrita por quien le da mantenimiento, no debe ser nada fácil entender bien la base de código
De hecho, revisar todo el código reescrito es prácticamente imposible. Son exactamente 1 millón de líneas de código https://github.com/oven-sh/bun/pull/30412
Al final, es casi como escribir lo mismo con otra sintaxis, y por eso probablemente a los desarrolladores de Rust les parece feo. Da la impresión de que los desarrolladores de Bun querían código que les resultara familiar
Aun así, creo que esto debió haberse llamado 2.0. Así habría parecido menos apresurado. Incluso en 1.3.14 ya hay algunas regresiones, pero ahora hay tantos pequeños incendios relacionados con Rust que parece que nadie les presta mucha atención
El problema más grande es que Bun sigue persiguiendo funciones nuevas y brillantes y no termina de cerrar las cosas. Las pruebas cubren la mayor parte de Vitest, pero no todo; la mayor parte de Jest, pero no todo; y la mayor parte de pnpm, pero no todo. Ahora también metieron funciones de imagen, así que es la mayor parte de sharp, pero no todo. El servidor de desarrollo también es la mayor parte de Vite, pero otra vez no todo. Los procesos de larga duración son más o menos parecidos a Node, pero tienen fugas de memoria, y supongo que esa fue una motivación para el cambio a Rust
Cuando vi la publicación sobre las rutinas de imágenes, se me bajó el ánimo. Era otro objeto brillante más, y junto con los bugs en las pruebas, al final terminé mudándome por completo a Vitest
No estoy convencido de que esta reescritura en sí sea una buena idea ni de que vaya a salir bien, pero la lógica contraria también me cuesta trabajo aceptarla
Nadie sabe qué hace ese más de 1 millón de líneas. A nadie le apasiona realmente trabajar con eso. Reciben requisitos y, salvo por la superficie que tienen que tocar, tratan todo lo demás como una caja negra
Así terminas con 14 implementaciones de servicios de fondo que hacen lo mismo, 8 dependencias con el mismo propósito, 6 frameworks traslapados y una incompatibilidad total de estilos y enfoques. Y aun así, a nadie parece importarle mucho
Me parece mejor que puro “vibe coding”, pero aunque eso podría ser tolerable en partes poco importantes, me cuesta aceptarlo en infraestructura central donde de verdad hay que pensar profundamente
No es como si estuvieran discriminando a alguien por su raza o religión. Si no quieres una gran superficie hecha con vibe coding, no veo por qué habría que dar tantas explicaciones
Eso entra dentro de la discrecionalidad “artística” como desarrollador, y parece que la gente olvidó que el software, por naturaleza, lleva opinión incorporada
Si funciona, seguirá funcionando. Lo único es que ellos no quieren darle soporte ni mantenimiento ni resolver issues para eso
Si Bun portado a Rust fuera mejor en todos los aspectos medibles, si pasara todas las pruebas, tuviera el mismo o mejor rendimiento y además corrigiera bugs existentes, entonces cuesta ver por qué importaría en qué lenguaje está escrito o cómo se implementó. Lo importante es que la calidad sea mayor
Si no puedes confiar en la versión de Rust cuando el equipo de Bun la lanzó y aprobó, entonces tampoco es lógico confiar en la versión Zig de hace dos semanas. Los desarrolladores de yt-dlp quedan como tontos
Me gusta muchísimo usar Bun, así que me da algo de tristeza ver que la dirección cambie de esta forma después de la adquisición por Anthropic
Quiero un buen Node con baterías incluidas, pero no quiero que esté hecho con vibe coding
No estoy diciendo que apoye la fusión. Estoy en contra de este enfoque YOLO de ingeniería. Solo que no he visto noticias desde el anuncio y tengo curiosidad por cómo va avanzando la transición
Claro, irónico en el sentido terriblemente triste
Esta decisión parece más un juicio político que uno de ingeniería. ¿Ya vieron aumentar en Bun los fallos de segmentación, la falta de memoria, las vulnerabilidades de seguridad o los bugs después de la reescritura en Rust?
Claro que no, porque la reescritura todavía ni siquiera se integra. Parece más bien una decisión tomada porque la intervención de la IA da mala espina
Las herramientas de ingeniería no se eligen por sensaciones, sino por si hacen lo que quieres que hagan. Si Bun empieza a tener más bugs y se siente como peor software, entonces dejaré de usarlo, pero ese juicio se basará en datos. Jarred ya hizo muchas cosas impresionantes con Bun, y no parece probable que publique una reescritura que no cumpla sus propios estándares de calidad, así que pienso observar qué pasa
Si uno cree razonablemente que puede haber más vulnerabilidades, usar a los usuarios para experimentar sería incluso una irresponsabilidad
La decisión responsable se parece más a “no vamos a dar soporte inmediato para ejecutar nuestro software en el nuevo lanzamiento de Bun cortado desde main”
Lo que sí decepciona es que no parezca haber intención de reevaluar versiones futuras, sino más bien de no darle soporte nunca más. Aunque, claro, los desarrolladores de yt-dlp no le deben nada a nadie
Una reescritura completa de 1 millón de líneas es, en la práctica, un runtime nuevo con el mismo ABI que el anterior, y para muchos consumidores aguas abajo resulta incómodo usar eso como dependencia de producción
Incluso si, para efectos de la discusión, Bun se hubiera reescrito entero a mano por humanos, la situación sería la misma. Me parece una decisión bastante estándar y, aunque personalmente creo que la calidad general de la reescritura con LLM de Bun probablemente será buena, no apostaría mi producto ni mi empresa a ello. Prefiero elegir yo los cambios riesgosos en mi software, no asumirlos a la fuerza por una dependencia aguas abajo
No me voy a quedar sentado esperando a que empiecen a explotar bugs y todo se venga abajo
Si un proyecto se guía por gente que piensa solo en “si la herramienta hace lo que quiero”, yo lo quitaría de mis dependencias
El momento más fácil para alejarte de una herramienta que va camino a ser un choque de trenes es antes de integrarla
Esto trata de la conversión a Rust, pero todavía no se ha lanzado
Hablan de “problemas previsibles de compatibilidad y seguridad”, pero la versión Zig de Bun también se cae bastante
Me gustaría que yt-dlp enlazara fundamentos más detallados de por qué habría problemas de compatibilidad previsibles. Ambos proyectos tienen suites de pruebas, así que en un mundo ideal una reescritura rápida debería ser posible
Puede que no quieran avivar más la situación, pero si encontraron problemas concretos, me gustaría verlos
Bun.rs debería haber sido una 1.4 o 2.0, y también me habría gustado que hubiera lanzamientos alfa/beta
Pero apenas lleva una semana público y hasta ahora casi no se ven datos reales de regresiones. Se parece más a una queja de “simplemente no me gusta”
Esta lógica se lee casi como “libfoo empezó a desarrollarse con emacs en vez de vim, así que ya no se puede confiar en él”
Claro, no es exactamente lo mismo, pero se siente parecido por una razón
La única verdad en software es si funciona en mi caso de uso. Incluso antes de la IA, no podías saber si quien lo escribió siguió un proceso riguroso o si simplemente probó cosas al azar hasta que parecieron funcionar
Es decir, no juzgaba el software investigando la metodología o las herramientas usadas para hacerlo. He usado mucho software sin suite de pruebas o con pruebas desastrosas, y también hay gente que valora la seguridad de memoria pero usa herramientas escritas en C, y viceversa
Por eso, la lógica de “no lo voy a usar porque no me gusta cómo usan la IA” me suena casi tan poco convincente como dejar de usar algo porque no te gusta qué editor usa su autor
Si no fuera así, no existirían conceptos como el chocolate/café de comercio justo
¿De verdad para los clientes que usan el producto eso sería casi lo mismo que el mantenedor cambiara de editor y un detalle irrelevante?
Pero no mucha gente diría lo mismo de un LLM
Vibe Bun podría ser tan bueno como el Bun anterior o mejor, pero ¿cómo podríamos saberlo ahora mismo?
Y además, tampoco es cierto eso de que “no se podía saber si el software estaba hecho rigurosamente y no se juzgaba por metodología”. Hay gente que sí verifica por su cuenta si existe un nivel de rigor aceptable antes de adoptar un proyecto o decidir seguir usándolo. Yo también lo hago en cosas importantes
Mucha más gente usa señales de reputación; no son perfectas, pero sí correlacionan y pueden bastar, además de ser mucho más fáciles que una revisión manual directa
Hace muchísima falta un término nuevo para describir las formas de usar LLM en trabajo de desarrollo. “Vibe coding” tiene una definición estricta, pero parece que a nadie le importa
Cuesta muchísimo creer que este port a Rust se haya hecho 100% por “vibra”, como en la definición original
Todo esto se volvió un lodazal emocional, para bien o para mal, y usar “vibe coding” como un insulto genérico para cualquier uso de LLM hace demasiado difícil entender de qué problema real se está hablando
Yo uso LLM para ayudarme a desarrollar, y estoy haciendo un mejor trabajo más rápido en todas las métricas que a un ingeniero le importarían
https://x.com/karpathy/status/1886192184808149383
En el caso de este port en particular, avanzó tan rápido que parece claro que una persona no validó la corrección de la traducción. Tampoco está claro si en el futuro realmente habrá validación manual
Pero bajo el criterio de Dijkstra, la mayoría de los proyectos de software ya venían haciendo “vibe coding” desde mucho antes de la IA. Es decir, dejarse llevar y olvidarse de que la corrección existe
Garantizar la corrección de código complejo es difícil, pero ahora que vivimos en la era de mil millones de hackers dentro del centro de datos, cada vez deja más de ser opcional
Extra: “El port Rust previo al lanzamiento de Bun tiene 13,365 bloques
unsafe”https://news.ycombinator.com/item?id=48239790
Es una tecnología tan nueva que cuesta estudiarla, pero incluso con una visión optimista, la evidencia empírica apenas muestra algo así como una mejora de alrededor de 3% en algunas áreas
Es raro que escribir código sea el cuello de botella en nuestro trabajo
No entiendo por qué tanta gente siente tanta presión con esta decisión. Si de verdad son fans del vibe coding, ¿no podrían simplemente hacer ellos mismos con vibe coding un yt-dlp mejor, o hacer fork del actual y adaptarlo como quieran?
Incluso se decía que la gente iba a hacer con vibe coding software personal de un solo uso para todo
Entonces, los vibe coders no deberían tener motivo para quejarse de ninguna decisión de software. ¿No debería ser facilísimo hacer con vibe coding un fork personal que les guste más? ¿No era esa la promesa del vibe coding?
Esto es la clásica sensación equivocada de tener derecho sobre un proyecto mantenido con el tiempo y esfuerzo de otras personas. Sigue sorprendiéndome que haya gente que quiera convertir arbitrariamente en voluntario el tiempo y trabajo ajenos para obtener la función que quiere
Quienes hacen el trabajo tienen derecho a tomar las decisiones, y si no te gusta, puedes hacer tu propio fork. Así ha funcionado siempre este ecosistema
yt-dlp sigue siendo, de hecho, sorprendentemente fácil de tocar
Vivo algo así en el trabajo, y de verdad desespera que con la IA parezca no permitirse un desacuerdo técnico honesto
No sé bien cómo sentirme respecto a la reescritura de Bun
Por un lado, da muchísimo miedo que la mayor parte de la base de código no haya sido revisada
Por otro, por lo que he oído, pasa las pruebas casi sin regresiones
Tal vez sea por falta de experiencia en ese tipo de cosas, pero yo no creo que confiara tanto en las pruebas como para depender por completo de ellas sin leer el código