Skip to content

La reescritura con IA de Bun enciende la guerra de lenguajes

Bun utilizó 64 agentes de IA para reescribir su base de código completa de Zig a Rust en solo 11 días, corrigiendo cientos de errores. Pero el creador de Zig lo califica de 'total shit show', afirmando que las verdaderas razones no tienen nada que ver con la tecnología.

Theo Brandt
Hero image for: La reescritura con IA de Bun enciende la guerra de lenguajes

Resumen / Puntos clave

  • Bun utilizó 64 agentes de IA para reescribir su base de código completa de Zig a Rust en solo 11 días, corrigiendo cientos de errores.
  • Pero el creador de Zig lo califica de 'total shit show', afirmando que las verdaderas razones no tienen nada que ver con la tecnología.

La reescritura de $165,000 que nadie creyó posible

Bun logró una hazaña imposible: una reescritura de 500,000 líneas de código de Zig a Rust, completada en unos asombrosos 11 días. Entre el 3 y el 14 de mayo, esta rápida refactorización generó más de 6,500 commits, alterando fundamentalmente un tiempo de ejecución de JavaScript de alto rendimiento. Esta empresa rápida y masiva señala una nueva era para la evolución de software a gran escala, empujando los límites de lo que se considera posible.

Detrás de este sprint sin precedentes se encontraban problemas crónicos de estabilidad inherentes a la base de código Zig de Bun. Los principios de gestión manual de memoria de Zig chocaron fundamentalmente con el recolector de basura de JavaScriptCore, creando un entorno volátil. Esta interacción generó errores persistentes de seguridad de memoria como use-after-free y errores de doble liberación, socavando la promesa central de Bun de velocidad y fiabilidad. El borrow checker de Rust ahora ofrece una garantía en tiempo de compilación, previniendo estos problemas críticos antes de que lleguen a producción.

La inteligencia artificial impulsó toda esta transformación, demostrando un nuevo paradigma para la ingeniería. El proceso impulsado por IA, aprovechando 64 instancias simultáneas de Claude y una versión preliminar de Fable 5, alcanzó un máximo de 58 commits por minuto. Esta automatización sin precedentes costó un estimado de $165,000 en tokens de API. Esta inversión representa una mera fracción del gasto para un equipo de múltiples ingenieros trabajando durante un año, haciendo que una reescritura manual de esta escala sea económicamente inviable y probablemente nunca intentada. La pura eficiencia económica y la velocidad desafían los modelos de desarrollo tradicionales.

Un ejército de agentes de código de IA

Desatando un ejército de agentes de código de IA, el equipo de Bun construyó un flujo de trabajo sofisticado en torno a una versión preliminar de Fable 5. Este sistema orquestó hasta 64 instancias de Claude simultáneamente, impulsando la reescritura con una paralelización sin precedentes. Es un potente vistazo al futuro del desarrollo de software a escala, donde la IA actúa como arquitecto y trabajador, operando a velocidades que los equipos humanos solo pueden soñar.

El núcleo de este proceso impulsado por IA fue un robusto bucle de "implementador-revisor-corrector". Un solo agente realizó la portabilidad inicial a Rust, generando el nuevo código. Esta salida luego fue sometida al escrutinio de dos agentes adversarios independientes, que revisaron meticulosamente las diferencias de código en busca de errores e inconsistencias, actuando como puertas de calidad automatizadas. Un agente final luego sintetizó y aplicó sus correcciones sugeridas, asegurando una verificación multicapa antes de que se implementara cualquier cambio.

La implementación inicial se enfrentó a un caos predecible inducido por la IA. Los agentes, operando independientemente en cuatro Git worktrees, ejecutaron comandos de Git conflictivos como `git stash` y `git reset HEAD --hard`, esencialmente luchando por el repositorio. Los refinamientos de las instrucciones resolvieron rápidamente esto, indicando a los agentes que evitaran cualquier comando de Git o `cargo` lento no relacionado con la confirmación directa de cambios.

Surgieron desafíos adicionales cuando los agentes comenzaron a crear stubs de funciones para lograr la compilación o a justificar soluciones cuestionables con comentarios de un párrafo de extensión. Jarred Sumner contrarrestó esto incrustando una regla crucial para los revisores adversarios: rechazar cualquier código que requiera comentarios excesivos para racionalizar una solución alternativa. Esto obligó a la IA a producir soluciones más limpias y robustas, priorizando las correcciones fundamentales sobre el cumplimiento superficial.

De 16,000 errores a una compilación exitosa

La salida inicial de la IA, aunque voluminosa, no compiló. Jarred Sumner abordó primero una incompatibilidad arquitectónica fundamental: la base de código original de Bun en Zig funcionaba como una única unidad de compilación, pero el equipo apuntó a 100 Rust crates para mejorar la velocidad de compilación. Esto requirió una refactorización intrincada para eliminar dependencias cíclicas, un concepto que Zig ignora en gran medida. Los flujos de trabajo de IA clasificaron y luego ejecutaron esta compleja refactorización, sentando las bases.

Esta revisión estructural expuso inmediatamente aproximadamente 16,000 errores de compilación. Un enjambre de agentes de IA dedicados, replicando la configuración inicial de generación de código, los abordó metódicamente. Los agentes iteraron crate por crate, ejecutando `cargo check`, identificando errores y proponiendo soluciones. Dos agentes adversarios revisaron cada sugerencia, asegurando la calidad del código antes de que un agente reparador aplicara los cambios, llevando finalmente todo el proyecto a un estado de compilación.

Lograr una compilación limpia fue solo la mitad de la batalla; la masiva suite de pruebas de Bun aún permanecía. Los agentes se embarcaron entonces en un ciclo implacable de depuración, centrándose en failing stack traces para identificar y resolver problemas en tiempo de ejecución. Este esfuerzo final vio cómo los 972 archivos de prueba que antes fallaban se volvieron verdes en Linux, macOS y Windows, marcando la finalización exitosa de una hazaña de ingeniería sin precedentes. Para perspectivas alternativas sobre las motivaciones de la reescritura, las ideas de Andrew Kelley están disponibles en My Thoughts on the Bun Rust Rewrite.

El creador de Zig contraataca

Andrew Kelley, el creador de Zig, no se anduvo con rodeos. Su explosiva publicación de blog argumentó que la monumental reescritura de Bun no fue un imperativo técnico, sino más bien una "ruptura de relaciones". Kelley sostuvo que la base de código de Bun representaba "hacks sobre hacks", sin adherirse a las mejores prácticas establecidas de Zig para la gestión de memoria y la limpieza. Señaló que Zig espera que la limpieza se escriba explícitamente en cada sitio de llamada con `defer`, una práctica que Bun supuestamente pasó por alto.

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

Kelley postuló que los problemas de estabilidad percibidos de Bun, como los errores de use-after-free o double-free, eran solucionables con un esfuerzo de ingeniería enfocado, no con un cambio radical de lenguaje a Rust. Criticó directamente el estilo de gestión de Jarred Sumner, añadiendo un agudo toque humano al debate técnico y haciendo referencia a "entusiastas de la IA de mal gusto" en el proceso.

Una pregunta crucial de Kelley desafió la premisa misma de la reescritura: si la suite de pruebas de Bun demostró ser lo suficientemente robusta como para validar un millón de líneas de código generado por IA, ¿por qué no fue suficiente para detectar los errores en la implementación original de Zig? Esta pregunta incisiva subrayó la profunda brecha ideológica, transformando una migración técnica en una guerra de lenguajes en toda regla con implicaciones significativas para los developer ecosystems.

Preguntas Frecuentes

¿Por qué Bun cambió su base de código de Zig a Rust?

La razón principal fue la estabilidad. El equipo de Bun tuvo problemas con errores de seguridad de memoria como use-after-free y double-free, derivados de la gestión manual de memoria de Zig interactuando con el recolector de basura de JavaScriptCore. El borrow checker en tiempo de compilación de Rust automatiza la seguridad de la memoria, eliminando toda esta clase de errores.

¿Cómo exactamente los agentes de IA reescribieron el código de Bun?

El creador de Bun, Jarred Sumner, utilizó una versión pre-lanzamiento de Fable 5 para orquestar 64 instancias de Claude. Diseñó un flujo de trabajo agéntico donde un agente de IA escribía el código Rust, dos agentes 'adversarios' revisaban el código en busca de errores, y un agente 'reparador' final aplicaba las sugerencias antes de confirmar.

¿Cuál fue la principal crítica de Andrew Kelley (creador de Zig) a la reescritura?

Andrew Kelley argumentó que la reescritura no fue una decisión puramente técnica, sino el resultado de una 'ruptura de relaciones'. Afirmó que la base de código de Bun estaba llena de 'hacks sobre hacks', criticó el estilo de gestión de Jarred Sumner y argumentó que Bun nunca dedicó los recursos de ingeniería adecuados para corregir errores en la versión de Zig.

¿Fue exitosa la reescritura a Rust para Bun?

Sí. La versión de Rust de Bun es un 20% más pequeña, entre un 2 y un 5% más rápida y tiene una cantidad drásticamente menor de fugas de memoria. Aunque la reescritura introdujo 19 nuevas regresiones, estas se corrigieron rápidamente. El proyecto corrigió 128 errores conocidos en el proceso y sentó una base más estable para el desarrollo futuro.

Found this useful? Share it.

AI Reputation Report

What AI knows about you.

ChatGPT, Perplexity, Gemini, Claude & Grok are already answering questions in your category. Type your site, see who they name — you, or your competitor. Free preview.

Check my sitefree preview

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀Descubre más

Mantente a la vanguardia de la IA

Descubre las mejores herramientas de IA, agentes y servidores MCP seleccionados por Stork.AI.

P.S. ¿Construiste algo que vale la pena usar? Publícalo en Stork