|

Modernizar Java legacy por USD 2,52: el stack 2026

En pocas palabras: AWS Transform cobra USD 0,035 por minuto de agente: actualizar una app Java de 17.000 líneas cuesta cerca de USD 2,52 en 72 minutos. El mismo stack agéntico también moderniza .NET y mainframe COBOL, con diagnóstico (Assessment) gratuito y cobro solo mientras el agente razona o edita.

AWS ahora factura su transformador de código agéntico a USD 0,035 por minuto de agente, y según el análisis publicado en dev.to el 26 de agosto de 2026, actualizar una app Java de unas 17.000 líneas tarda cerca de 72 minutos de agente. Total: USD 2,52. Cuando una migración se mide por minuto en vez de cotizarse en semanas de senior, dejar de tocar ese servicio viejo ya no tiene excusa presupuestaria.

Este es el cambio real en la modernización de aplicaciones Java legacy: la barrera nunca fue del todo técnica, era económica. Y ese número recién se movió.

AWS Transform es una plataforma agéntica de AWS que automatiza la migración y actualización de código legacy (Java, .NET, mainframe COBOL) usando agentes especializados que leen el código, lo editan, corren el build y reintentan ante errores. El diagnóstico inicial (Assessment) es gratuito; solo se cobra el agente de transformación custom, y únicamente mientras razona o edita, no durante builds ni tiempo ocioso.

En 30 segundos

  • USD 2,52 por upgrade: AWS Transform cobra USD 0,035/minuto de agente; una app Java de 17.000 líneas se actualiza en ~72 minutos.
  • Dos técnicas que no son intercambiables: determinísticas (OpenRewrite, ast-grep) dan mismo input, mismo output; agénticas (AWS Transform, Copilot) manejan lo que ninguna receta previó.
  • OpenRewrite es gratis y Apache 2.0: más de 2.800 recetas abiertas, con un árbol que entiende tipos, no simple regex.
  • El cuello de botella real es el testing: si tenés 20% de cobertura, la herramienta de refactor nunca fue el problema difícil.
  • La estrategia ganadora 2026: pasada determinística gratis primero, y solo el resto va al agente que se paga.

¿Por qué USD 2,52 cambia la ecuación de modernizar Java?

Porque una migración medida por minuto de agente deja de ser un pedido de presupuesto y pasa a ser una tarea de un martes a la tarde. Con USD 0,035 por minuto y ~72 minutos para 17.000 líneas de Java, el upgrade de ese servicio interno que nadie quería tocar sale USD 2,52. Comparalo con la estimación vieja: semanas de un desarrollador senior.

Toda org de ingeniería tiene ese servicio que nadie quiere tocar. Java 8 sobre Spring Boot 2. Un .NET Framework 4.8 que solo compila en una máquina Windows específica. Un job COBOL que cierra los libros de noche. Todos saben cómo arreglarlo. Nadie lo agenda, porque siempre pierde contra el trabajo de features en la planificación.

El tema es que el costo de oportunidad cambió. Ponele que le dedicás un agente 72 minutos a un servicio de baja prioridad: gastás menos que un café. El riesgo es bajo justamente porque es interno y no crítico. Eso lo convierte en el mejor candidato para probar la herramienta sin jugarte nada.

¿Cuál es la diferencia entre herramientas determinísticas y agénticas?

Las determinísticas parsean el código a un árbol tipado y aplican una regla: mismo input, mismo output, en cada corrida. Las agénticas le pasan el trabajo a un modelo con acceso a herramientas que lee, edita, compila y reintenta. Confundir cuál necesitás es la forma más común de que estos proyectos se traben.

OpenRewrite construye lo que llama un Lossless Semantic Tree; ast-grep trabaja sobre árboles de sintaxis de tree-sitter. La ventaja: nadie tiene que revisar 4.000 archivos buscando sorpresas, porque no las hay. ¿La contra? Una regla solo cubre lo que su autor anticipó. Ya lo cubrimos antes en nuestro artículo sobre construir una infraestructura DNS robusta.

Las agénticas manejan la cola larga que ninguna receta predijo. El precio a pagar es el nondeterminismo y un diff que sí necesita un humano que lo lea de verdad. Por eso las herramientas que ganan en 2026 corren primero la pasada determinística gratuita y después mandan solo lo que sobró a un agente. Codemod (el sucesor del proyecto jscodeshift) se vende justamente así: pasos que entienden el compilador más pasos con IA.

¿Cuándo va cada una? Determinístico para migraciones previsibles (config de Spring, imports de javax a jakarta). Agéntico para las sorpresas: lógica de negocio custom con patrones que ninguna receta cubre.

¿Qué herramientas conviene instalar para modernizar Java y .NET en 2026?

OpenRewrite es lo más parecido a un estándar en esta categoría: Apache 2.0, más de 2.800 recetas abiertas y gratis. Como su árbol lleva información de tipos, distingue tu clase de una clase con el mismo nombre en una dependencia, algo que el regex plano nunca puede. Para JS/TS el punto de partida es Codemod. Para mainframe COBOL, AWS Transform o watsonx Code Assistant for Z si el código tiene que quedarse en IBM Z.

Shop de Java o Spring: empezá por OpenRewrite

Es gratis y las recetas para tu ruta exacta de upgrade probablemente ya existen. En una prueba real sobre un proyecto Java 8 con Maven, la receta corrió en 87 segundos en frío y 18 en caliente, e imprimió “Estimate time saved: 15m”. Tocó solo la config de build, ni una línea de código Java fuente. Eso es correcto, no un bug, aunque sorprende a quien esperaba una varita mágica.

Fanático de VS Code: GitHub Copilot app modernization

Es la opción de menor fricción porque corre donde tu código ya vive (VS Code o Visual Studio), sin contrato nuevo con ningún vendor, incluido en tu plan de Copilot actual. Cubre la ruta real de upgrade de Java (8 a 11 a 17 a 21), Spring Boot 2 a 3 y la migración de javax a jakarta, e itera sobre los errores de build hasta que el proyecto compila.

Find-and-replace estructural urgente: ast-grep

Es lo que agarrás cuando necesitás un reemplazo estructural sobre un árbol grande en los próximos 30 segundos. Rust, licencia MIT, más de 20 lenguajes vía tree-sitter. Ojo con esto: su patrón puede matchear exactamente un argumento y dejar afuera llamadas con lista de argumentos de largo variable, imprimiendo igual un mensaje de éxito. Siempre contrastá el conteo de matches contra un grep plano.

Cientos de repos: Moderne. Sin saber qué migrar: vFunction

Moderne es el approach para cuando tenés cientos de repositorios que atacar de una. vFunction resuelve el paso previo a la migración: decidir qué tocar. Observa una JVM o CLR viva en runtime más análisis estático para mapear los dominios escondidos dentro de un monolito, así el agente no reescribe un servicio adivinando el grafo de llamadas. Complementá con automatizar los despliegues correctamente.

Tabla comparativa: stack de modernización Java/legacy 2026

HerramientaTipoCostoFuerte en
OpenRewriteDeterminísticoGratis (Apache 2.0)Java/Spring, 2.800+ recetas, árbol tipado
ast-grepDeterminísticoGratis (MIT)Find-and-replace estructural, 20+ lenguajes
CodemodHíbrido (compiler + IA)Registro abiertoJS/TS, runtime jssg (feb 2026)
AWS TransformAgénticoAssessment gratis; custom USD 0,035/minMainframe COBOL, .NET, camino a AWS
GitHub CopilotAgénticoIncluido en plan CopilotJava 8→21, Spring Boot 2→3, javax→jakarta
ModerneDeterminístico a escalaComercialCientos de repos a la vez
vFunctionAnálisis previoComercialMapear dominios en un monolito
modernización aplicaciones java legacy diagrama explicativo

¿Cuándo conviene invertir en modernización automática? El cálculo de ROI

Conviene cuando el costo de la herramienta es órdenes de magnitud menor que la alternativa manual, algo que hoy pasa casi siempre. AWS Transform sale USD 0,035/minuto de agente (USD 2,52 para 17.000 líneas de Java), GitHub Copilot ya viene en tu plan y OpenRewrite es gratis. La estimación vieja para el mismo upgrade eran semanas de un dev senior.

Pero acá hay un matiz que la mayoría pasa por alto. OpenRewrite es gratuito, sí, aunque requiere tiempo de curación de recetas: elegir cuál corre, revisar el resultado, ajustar. El costo no desaparece, se muda de la factura del agente al tiempo de tu equipo. Con AWS Transform pagás dólares pero ahorrás horas humanas; con OpenRewrite ahorrás dólares pero invertís esas horas.

La cuenta se define por el tamaño y la urgencia. Un servicio interno de baja prioridad con test decente: agente y listo, USD 2,52 bien gastados. Un core crítico con lógica de negocio delicada: pasada determinística primero para lo previsible, revisión humana del diff agéntico para el resto.

¿Cómo hacer tu primera migración con OpenRewrite paso a paso?

Arrancá con un proyecto Java 8 con Maven y corré la receta de upgrade de OpenRewrite. En la prueba documentada tardó 87 segundos en frío, 18 en caliente, e imprimió “Estimate time saved: 15m”. Lo clave: tocó solo la config de build, no el código fuente Java. Ese es el comportamiento esperado, no un error.

Después viene la validación que casi nadie hace bien. Antes de confiar en cualquier reescritura masiva, contrastá el conteo de matches de la herramienta contra un grep plano del mismo símbolo. Si la herramienta dice que aplicó N cambios y el grep te da un número distinto, algo se escapó.

Con ast-grep esto es todavía más importante. En la prueba real, una corrida que debía matchear new Buffer(payload, 'utf8') salió con status cero e imprimió “Applied N changes” cuando N estaba mal. Nada en el output te avisa. La secuencia sana es: subís la receta, la probás en un módulo chico, mirás el diff línea por línea, corrés los tests, y recién ahí lo escalás al repo entero.

¿Cómo garantizar que el código modernizado funciona? El testing manda

Sin tests automatizados estás volando a ciegas. Toda herramienta de esta categoría reescribe código más rápido de lo que un servicio con testing pobre puede validarlo. Si estás al 20% de cobertura, la herramienta de migración nunca fue la parte difícil: el cuello de botella es tu capacidad de verificar que nada se rompió. Más contexto en elegir entre Jenkins y GitHub Actions.

La estrategia concreta tiene un orden. Medí la cobertura baseline antes de tocar nada. Corré la suite completa después de cada transformación. Validá que compilación y tests pasan antes de dar por buena la migración. Y anotá las métricas de los dos lados: cantidad de tests, porcentaje de cobertura, tiempo de build pre y post.

El problema real casi siempre es el mismo: el testing es lo más lento, no la refactorización. La “automatización” de la migración te resuelve la parte fácil y te deja de frente con la parte que venías postergando. Cobertura por debajo del 20% es un blocker directo, no un detalle a mejorar después.

Tres casos reales: Java 8→21, Spring Boot 2→3 y .NET Framework

Los tres caminos más comunes tienen herramienta recomendada y nivel de riesgo distinto. Java 8 sobre Spring Boot 2 en un servicio interno es el mayor beneficiario de AWS Transform: USD 2,52 por la pasada agéntica, riesgo bajo. Spring Boot 2 a 3 es territorio mayormente determinístico con OpenRewrite. .NET Framework 4.8 pide el agente de Windows de AWS Transform.

Java 8 sobre Spring Boot 2: el candidato ideal para el agente

Es el servicio que nadie quiere tocar, y por eso mismo es perfecto para probar. Al ser interno y de baja prioridad, el riesgo de que algo salga mal es acotado. Le tirás el agente custom de AWS Transform, 72 minutos, USD 2,52, y validás con la suite existente. Si no tenés suite, ese es el trabajo previo, no la migración.

Spring Boot 2 a 3 más javax a jakarta: territorio determinístico

Este es territorio mayormente determinístico. Las recetas de OpenRewrite cubren la enorme mayoría de los casos, incluida la migración de javax a jakarta que rompe medio proyecto si la hacés a mano. Pasada determinística, validación con la suite existente, y solo lo que quede raro va a revisión humana o a un agente.

Mainframe COBOL a Java: agentes especializados

AWS Transform tiene un agente de mainframe para COBOL en z/OS, uno de Windows para .NET Framework y uno de VMware. El Assessment y los agentes de mainframe, Windows y VMware son gratis; solo factura el agente de transformación custom, y nada más mientras razona o edita. Si el código tiene que quedarse en IBM Z, la alternativa es watsonx Code Assistant for Z.

¿Dónde corre la app modernizada? La infraestructura también cuenta

Modernizar el código es la mitad del trabajo; la otra mitad es dónde lo desplegás. Una app Java 21 con Spring Boot 3 pide un entorno que la banque, y si tu proyecto vive o apunta a servidores en la región, tener hosting y cloud con soporte local ayuda a que la migración no se trabe en la parte de deploy. Para infraestructura y dominios en Argentina, donweb.com es una opción a mano.

Eso sí: la decisión de infraestructura no debería frenar la de código. Podés modernizar el servicio internamente hoy y resolver el hosting después. Lo caro es dejar Java 8 corriendo en producción con vulnerabilidades sin parchar porque nadie agendó el upgrade. Para más detalles técnicos, mirá mantener la documentación en múltiples idiomas.

Errores comunes al modernizar código Java legacy

  • Confiar en los matches parciales silenciosos: ast-grep sale con status cero e imprime “Applied N changes” aunque N esté mal. Siempre contrastá el conteo contra un grep plano del mismo símbolo antes de una reescritura masiva.
  • Esperar que la herramienta toque el código fuente cuando no debe: cuando OpenRewrite modifica solo la config de build y ni una línea de Java, eso es correcto. No es una migración a medias, es que el upgrade vivía ahí.
  • Migrar sin cobertura de tests: con 20% de cobertura, la refactorización automática te deja con código nuevo que no podés validar. Medí el baseline y subí la cobertura antes de largar el agente.
  • Elegir agéntico para lo que es determinístico: mandar la migración de javax a jakarta a un agente que se paga cuando OpenRewrite lo hace gratis y sin sorpresas es tirar plata.

Preguntas Frecuentes

¿Qué es AWS Transform y cómo funciona para aplicaciones Java?

AWS Transform es una plataforma agéntica de AWS que automatiza la migración de código legacy con agentes que leen el archivo, lo editan, corren el build y reintentan ante errores. Para Java cubre el camino de upgrade de versiones e itera sobre los errores de compilación. El Assessment es gratuito y el agente custom se factura a USD 0,035 por minuto, solo mientras razona o edita.

¿Cuánto cuesta modernizar una aplicación Java 8 a Java 21?

Con AWS Transform, una app de unas 17.000 líneas se actualiza en cerca de 72 minutos de agente, lo que a USD 0,035 por minuto da USD 2,52. Con GitHub Copilot app modernization el costo está incluido en tu plan de Copilot existente. Con OpenRewrite es gratis, aunque invertís tiempo de tu equipo en curar y revisar las recetas.

¿Qué herramienta es mejor para migrar de Spring Boot 2 a 3?

OpenRewrite es la mejor opción para Spring Boot 2 a 3, porque la migración es casi determinística y sus más de 2.800 recetas cubren la mayoría de los casos, incluida la de javax a jakarta. Es gratis, Apache 2.0, y su árbol tipado distingue tus clases de las de las dependencias. GitHub Copilot es una alternativa válida si preferís trabajar dentro de VS Code.

¿Cómo evitar errores al refactorizar código legacy?

Contrastá siempre el conteo de matches de la herramienta contra un grep plano del mismo símbolo antes de confiar en una reescritura masiva, porque herramientas como ast-grep reportan éxito aunque el match esté incompleto. Medí la cobertura de tests baseline, corré la suite después de cada transformación y revisá el diff agéntico línea por línea antes de mergear.

¿Cuál es la diferencia entre herramientas determinísticas y agénticas?

Las determinísticas (OpenRewrite, ast-grep) parsean el código a un árbol tipado y aplican reglas: mismo input, mismo output, sin sorpresas, pero solo cubren lo que su autor anticipó. Las agénticas (AWS Transform, GitHub Copilot) usan un modelo con acceso a herramientas para manejar la cola larga que ninguna receta previó, a costo de nondeterminismo y un diff que necesita revisión humana.

Conclusión

Lo que cambió en 2026 no es que se pueda modernizar Java legacy, siempre se pudo. Cambió el precio: USD 2,52 por un upgrade que antes cotizabas en semanas de senior. Ese número mueve la migración de “pedido de presupuesto que pierde contra las features” a “tarea de un martes a la tarde”.

La receta práctica es clara. Si sos shop de Java o Spring, arrancá con OpenRewrite gratis: las recetas para tu ruta probablemente ya existen. Corré la pasada determinística primero y mandá solo el resto a un agente que se paga. Y antes de festejar, mirá tu cobertura de tests, porque si está en 20%, la herramienta de refactor nunca fue tu problema difícil. El código nuevo es tan bueno como tu capacidad de probar que funciona.

Fuentes

Te puede interesar...