A quién le sirve. Equipos de ingeniería con una base de código grande que quieren cambiar de lenguaje por fases con ayuda de agentes. No es un proyecto para un negocio pequeño, aunque el método sirve a menor escala.
Qué hicieron
Microsoft usó Copilot, guiado por varios modelos de lenguaje elegidos por sus puntos fuertes, para reescribir en Rust, módulo a módulo, el motor de Copilot que estaba en TypeScript. Fue un reemplazo directo, sin reorganizar el motor. En el archivo session.ts, de 30.000 líneas, una sesión leyó la documentación, lanzó 15 sesiones hijas en copias de trabajo separadas y las hizo coordinarse entre sí.
Cómo salió
Los agentes convirtieron 430.000 líneas de TypeScript en 800.000 líneas de Rust a lo largo de 14,5 semanas y más de 135 versiones. Una prueba de rendimiento fue 15,9 veces más rápida y la memoria bajó de 1.383 MB a 126 MB, pero aparecieron unas decenas de regresiones (cosas que antes funcionaban y dejaron de hacerlo).
Conviene saber
El coste fue de unos 120.000 dólares en tokens (unidades en las que la IA mide el texto) más unas tres semanas del tiempo de un desarrollador. Que compilara no significaba que fuera correcto, así que se colaron regresiones.
Qué necesitas
- Un repositorio, que es la carpeta de un proyecto de código, con pruebas automáticas ya escritas
- Un asistente de programación que pueda lanzar varias sesiones de trabajo a la vez
- Un presupuesto de uso de IA con margen y un tope de gasto
- Un desarrollador que revise cada módulo pasado
Cómo hacerlo tú, paso a paso
- Elige el módulo o componente que vas a pasar y el lenguaje de destino.
- Pide al agente que lea el código y proponga un plan de traslado por fases, con puntos de control de pruebas. Aprueba el plan antes de seguir.
- Pasa un módulo cada vez y mantén en verde las pruebas que ya existen.
- Para los archivos muy grandes, divide el trabajo en varias sesiones hijas que trabajen en copias separadas y se coordinen entre sí.
- Mide rendimiento y memoria antes y después de cada módulo.
- Añade pruebas para detectar cosas que antes funcionaban y han dejado de hacerlo.
- Cierra con un resumen de lo pasado, lo que falta y una estimación del esfuerzo.
Quiero pasar [componente o módulo] de [ruta del repositorio] desde [lenguaje de origen] a Rust con un flujo de trabajo de agentes. Empieza leyendo el código y proponiendo un plan de traslado por fases con puntos de control de pruebas, y espera mi aprobación. Después pasa un módulo cada vez, manteniendo en verde las pruebas que ya existen. Habrás terminado cuando me entregues un resumen de lo que ya está pasado, de lo que falta y una estimación del esfuerzo.
Consejos
- Que compile no significa que sea correcto. En el caso se colaron regresiones, que son funciones que antes iban bien y dejaron de ir.
- Haz un reemplazo directo, sin reorganizar el programa a la vez. Cambiar dos cosas juntas dificulta ver qué ha roto qué.
- Prueba con un módulo pequeño y mide el gasto antes de lanzarte con todo.
Preguntas frecuentes
¿Sirve para un proyecto pequeño?
Sí, a menor escala. El método de plan por fases, un módulo cada vez y las pruebas existentes en verde vale también para proyectos pequeños.
¿Cuánto cuesta?
El coste crece con el tamaño del código. Prueba con un módulo pequeño y mide cuánto gastas antes de seguir.
Fuentes
En el directorio desde el 3 de octubre de 2026.