A IA pode ajudar a resolver a crise do código COBOL?

O que o IRS, os bancos, as companhias aéreas e a infraestrutura governamental em todo o mundo têm em comum? Todos eles funcionam em sistemas sustentados por códigos de computador antigos que ninguém ousa tocar, para que tudo não desmorone.
A OpenAI acha que pode ter uma solução. Na segunda-feira, a empresa elogiou “melhorias substanciais” na capacidade de seus mais recentes modelos de IA de migrar software antigo escrito em linguagens de programação mais antigas para código moderno, o que, segundo ela, poderia ajudar as organizações a “manter e modernizar sistemas mais antigos”.
Esse é um negócio potencialmente massivo. COBOL, uma das linguagens destacadas pela OpenAI, permanece teimosamente incorporada em vastas porções da infraestrutura crítica do mundo. E apesar de décadas de esforços para bani-la para a história, a língua mancou, simplesmente recusando-se a morrer.
“Ninguém em sã consciência usaria COBOL para um novo projeto de desenvolvimento.”
É difícil exagerar a onipresença do COBOL. Abreviação de “linguagem comum orientada para negócios”, o COBOL surgiu em 1959. Quase sete décadas depois, ainda está em toda parte. De acordo com a IBM, o COBOL é a base de mais de 40% dos sistemas bancários on-line, suporta 80% das transações presenciais com cartão de crédito e lida com 95% das transações em caixas eletrônicos. Também sustenta muitos sistemas governamentais, desde a Segurança Social ao IRS e serviços geridos pela maioria dos estados. Uma estimativa aproximada coloca o custo anual das ineficiências do COBOL para o PIB dos EUA em cerca de 105 mil milhões de dólares.
Mas substituir o COBOL é terrivelmente difícil. O mesmo se aplica a outras linguagens de programação legadas, como o Fortran, ainda em uso hoje para tudo, desde computação científica e previsão do tempo até estudos atmosféricos e oceânicos e códigos críticos para a segurança nuclear. Esses sistemas são muitas vezes importantes demais para serem quebrados, e muitos dos programadores que os entendem já se aposentaram ou morreram há muito tempo.
Apesar de todos os seus impressionantes avanços no desenvolvimento de software moderno, as ferramentas de codificação de IA têm lutado para fazer muito progresso com esses sistemas legados. Mas os desenvolvimentos recentes sugerem que isso pode estar a mudar.
Em sua última postagem no blog, a OpenAI relatou resultados promissores na migração do código COBOL para linguagens de programação mais modernas, incluindo C++, Java, Kotlin, Python e Rust, sem alterar o que o software original faz. Essa última parte é crucial para organizações que buscam abandonar códigos como COBOL, e a OpenAI reconhece que “uma migração só é considerada bem-sucedida se todos os testes forem aprovados”.
Nos próprios testes da OpenAI, o GPT-6.1 Sol alcançou 87% de precisão de preservação de comportamento com baixo esforço de raciocínio – quantas etapas computacionais o modelo gasta analisando um problema antes de dar uma resposta – subindo para 98% com raciocínio mais elevado. Em comparação, com baixo esforço de raciocínio, o GPT-6 Astra obteve cerca de 86 por cento, o GPT-6 Sol apenas 21 por cento e o GPT-5.6 Sol apenas 5 por cento.
“Reescrever código não é o mesmo que substituir um sistema.”
“Os resultados da avaliação demonstram o progresso em direção a uma migração de código mais precisa e acessível para equipes que modernizam o software do qual seus negócios dependem”, escreveu OpenAI.
A empresa também relatou melhorias na capacidade de seus modelos de construir software de banco de dados em diversas linguagens de programação, incluindo COBOL.
A Anthropic também vê uma oportunidade em sistemas legados. Em fevereiro, publicou um “manual de modernização de código” passo a passo e apresentou seu agente de codificação, Claude Code, como uma forma de migrar o código COBOL para linguagens modernas como Java ou Python. Não ofereceu referências de desempenho que mostrassem quão bem o Claude Code poderia realizar tais migrações, mas declarou que “a economia da modernização do COBOL mudou”. As ações da IBM, que obtém parte de sua receita ajudando empresas a manter sistemas legados, despencaram após o anúncio da Anthropic.
Especialistas que conversaram A beira concordou que as ferramentas de IA fizeram progressos no combate ao código legado nos últimos anos. Mas eles alertaram que os avanços anunciados pela OpenAI esta semana estão muito longe de tornar possível substituir com segurança sistemas legados críticos construídos em torno dela.
O porta-voz da OpenAI, Oscar Haines, reconheceu em um e-mail para A beira que o código legado “ainda está longe de ser um problema resolvido” e disse que a empresa está ouvindo o feedback de desenvolvedores e empresas e explorando maneiras de construir testes melhores e continuar melhorando a compreensão de seus modelos sobre linguagens de codificação. A Anthropic não forneceu comentários a tempo da publicação.
“As avaliações apresentadas pela OpenAI não abordam a principal dificuldade: dividir um sistema legado complexo em unidades menores que podem ser substituídas individualmente.”
“Reescrever código não é o mesmo que substituir um sistema”, disse Vadim Zaytsev, professor associado de evolução de software na Universidade de Twente, na Holanda. Os sistemas têm muito código – Zaytsev disse que o maior sistema que ele viu tinha 250 milhões de linhas de COBOL, “definitivamente não é o maior do mundo” – mas isso é apenas parte do problema. O código pode ser escrito em vários idiomas e há dados, potencialmente armazenados em vários formatos, a serem considerados, disse ele. Existem também integrações técnicas com outros sistemas e as expectativas das pessoas e organizações a ter em conta.
Toda essa complexidade significa que “a IA não está desempenhando um papel importante neste momento na substituição ou migração de sistemas COBOL legados”, disse Zaytsev.
As avaliações da OpenAI também não capturam essa realidade complexa, disse Arie van Deursen, professor de engenharia de software da Universidade de Tecnologia de Delft, na Holanda. A beira. Ele descreveu o blog da empresa como “superficial”, observando que oferecia poucos detalhes sobre a tarefa de migração, enquanto seu benchmark de linguagem testava modelos em uma tarefa relativamente simples e bem definida, envolvendo sistemas semelhantes aos que teriam encontrado no treinamento. Ele também enfatizou a enorme lacuna entre manter um sistema envelhecido e modernizá-lo. “É claro que manter é muito mais fácil do que modernizar”, disse van Deursen, chamando as tarefas que a OpenAI usou para avaliar seus modelos de “anos-luz” de distância da modernização real. “As avaliações apresentadas pela OpenAI não abordam a principal dificuldade: dividir um sistema legado complexo em unidades menores que podem ser substituídas individualmente.”
O maior desafio não é necessariamente reescrever o código. “O principal desafio é, de facto, não compreender como o sistema funciona”, disse Alastair Donaldson, professor de linguagens de programação no Imperial College London. Essa falta de compreensão é um problema “muito comum” em sistemas legados que usam linguagens como COBOL, disse ele, acrescentando que muito poucas pessoas sabem como programar neles. E embora esteja em toda parte, Donaldson disse que “ninguém em sã consciência usaria COBOL para um novo projeto de desenvolvimento”.
“Em muitos casos, mesmo pequenas diferenças no comportamento do sistema antes e depois da migração são inaceitáveis.”
Isso torna cruciais testes robustos, disse Donaldson. Uma abordagem poderia ser executar os mesmos fluxos de trabalho nos sistemas antigo e novo para verificar se eles se comportam de forma idêntica. A IA também poderia documentar a tradução do seu código, permitindo idealmente que humanos familiarizados com a linguagem legada revisem o trabalho. A verificação formal, que utiliza técnicas matemáticas para verificar computacionalmente se o código se comporta corretamente, é outra opção, disse Jacopo Mauro, professor de matemática e ciências da computação na Universidade do Sul da Dinamarca.
Esses métodos já são usados para verificar resultados matemáticos gerados por IA, mas aplicá-los ao código legado exigiria “uma enorme quantidade de trabalho”, disse Mauro. Usar esses métodos significaria que o código poderia ser verificado automaticamente, disse Mauro, acrescentando que “ter isso será melhor do que ter uma verificação humana de que a tradução está correta”. Até então, disse ele, “a verificação humana continua essencial”.
E quando os sistemas envolvidos são tão críticos quanto aqueles executados em COBOL, os especialistas dizem que é preciso ter certeza absoluta de que a substituição funcionará. “Em muitos casos, mesmo pequenas diferenças no comportamento do sistema antes e depois da migração são inaceitáveis”, disse Zaytsev. Embora a IA possa definitivamente proporcionar economia e acelerar as coisas, a complexidade dos sistemas legados significa que a automação parcial não é suficiente.
“Suponha que você tenha uma varinha mágica de IA que lide com 99% do seu código”, disse Zaytsev. “O que você faz com o 1% restante? Esse 1% pode ser um milhão de linhas de código, espalhadas por todos os lugares e falhando sutilmente de mais maneiras que você possa imaginar durante sua vida.”






