Reescribiendo Bun en Rust
Contexto de la reescritura y proceso
- Bun fue portado de Zig a Rust en gran medida mediante el modelo Fable de Anthropic y Claude Code, durante ~11 días, usando ~50+ flujos de trabajo automatizados y amplias suites de pruebas.
- La reescritura se presenta como en su mayor parte mecánica, función por función, preservando la estructura y los modelos de datos, y luego refinada iterativamente mediante revisiones adversariales con IA y supervisión humana.
- La versión en Rust ya lleva funcionando en producción para Claude Code desde mediados de junio sin fallos catastróficos evidentes, lo que algunos ven como una validación sólida.
Coste y economía
- El gasto en tokens fue de ~5.9B de entrada no cacheada, 72B de entrada cacheada, 690M de tokens de salida, con un coste estimado de ~$165k a precios de API.
- Muchos sostienen que esto es más barato y mucho más rápido que un pequeño equipo trabajando durante un año; otros replican que equipos humanos (especialmente fuera de regiones de alto coste) o modelos más débiles/baratos podrían igualarlo con un coste total inferior.
- Algunos señalan que, incluso si ahora es caro, es probable que reescrituras similares se vuelvan mucho más baratas.
Calidad del código, seguridad y mantenibilidad
- Beneficios reportados: se corrigieron fugas de memoria, hubo menos fallos, una reducción de ~20% del tamaño del binario (con optimizaciones del enlazador) y ganancias de rendimiento de ~5%.
- Quienes lo apoyan dicen que las garantías de Rust, los errores del compilador y las herramientas de Miri/memoria ofrecen una seguridad más sólida que Zig más guías de estilo.
- Los críticos destacan un gran uso de
unsafe(~13k instancias al principio), UB inicial detectado por Miri, y argumentan que muchos bloques unsafe y comentarios SAFETY débiles sugieren invariantes de Rust mal entendidas. - Hay desacuerdo sobre si el código generado por IA a esta escala es realmente “mantenible” o solo parece estable bajo pruebas.
Impacto en Zig y los debates sobre lenguajes
- Algunos ven esto como mala imagen para Zig: un port “ingenuo” alejándose de él aparentemente mejoró la estabilidad y el tamaño.
- Otros subrayan que el código Zig de Bun se escribió contra un lenguaje en evolución, pre-1.0, y que mejoras similares habrían sido posibles ajustando el código y las herramientas de Zig.
- Largos subhilos debaten Rust vs Zig vs C/C++ vs lenguajes con GC en torno a seguridad, ergonomía, tiempos de compilación y adecuación como objetivos para LLM.
Herramientas de IA, “vibe coding” y el futuro del trabajo
- Muchos consideran esto una demostración de la traducción a gran escala asistida por LLM cuando está respaldada por una sólida suite de pruebas independiente del lenguaje.
- Algunos llaman al proceso “vibe coding” (LLM‑dirigido sin revisión humana exhaustiva); otros sostienen que la traducción con pruebas es distinta del desarrollo de IA especulativo y sin restricciones.
- Hay ansiedad activa sobre lo que estas capacidades significan para los trabajos de software, especialmente los puestos intermedios; otros esperan efectos tipo Jevons (más software producido, no menos ingenieros).
Gobernanza del proyecto y preocupaciones de la comunidad
- Varios comentaristas critican cómo se comunicó y fusionó la reescritura:
- Primeras garantías de que la rama Rust podría descartarse frente a una fusión rápida posterior.
- Sin plan LTS ni de correcciones de seguridad para la línea Zig, obligando de facto a actualizar.
- La percepción de que Bun está más guiado por el marketing y las necesidades internas de Anthropic que por su comunidad externa.
- Quienes lo apoyan responden que el código pre‑fusión se supone que sea tosco, las regresiones se documentaron y corrigieron, y los resultados para los usuarios parecen positivos hasta ahora.