
COBOL: A Linguagem Imortal que Controla seu Dinheiro
Se você perguntar a um estudante de TI o que ele está estudando, ele dirá React, Python, Rust ou AI. Ninguém diz "Estou estudando COBOL". A linguagem é vista como uma piada, um fóssil, algo que deveria estar em um museu ao lado dos cartões perfurados.
Mas aqui está a realidade estatística fria:
- A cada dia, o Google processa cerca de 9 bilhões de buscas.
- A cada dia, sistemas COBOL processam cerca de 300 bilhões de transações financeiras.
Quando você passa o cartão de crédito, quando seu salário cai na conta, quando você paga um seguro, reserva um voo ou quando o governo emite um cheque de aposentadoria: é COBOL.
Estima-se que existam mais de 250 bilhões de linhas de código COBOL ativas em produção no mundo. E esse número está crescendo, não diminuindo.
Entender por que essa tecnologia de 1959 permanece soberana é lição obrigatória de arquitetura e pragmatismo. Vamos explorar a precisão matemática decimal que a torna insubstituível e por que, em um mundo de nuvem e microsserviços, o "Big Iron" continua sendo o pilar invisível da economia global.
Parte 1: O "Santo Graal" Decimal

A principal razão pela qual o COBOL sobrevive não é inércia, nem preguiça. É matemática. Sistemas bancários exigem precisão absoluta. Se você transfere R$ 100,00, tem que chegar R$ 100,00. Não pode chegar R$ 99,99999999.
O Problema do Ponto Flutuante (IEEE 754)
Linguagens modernas (Java, C, Python, JavaScript) usam, por padrão, aritmética de ponto flutuante binário (float ou double) para representar números reais.
O problema é que computadores binários não conseguem representar frações decimais simples (como 0.1 ou 0.2) com exatidão, assim como nós não conseguimos escrever 1/3 (0.333...) com exatidão em decimal.
Teste no console do seu navegador (JavaScript):
0.1 + 0.2 === 0.3
// false
// Resultado real: 0.30000000000000004Esse erro microscópico é chamado de "erro de arredondamento". Em um jogo 3D, ninguém liga se a bala passou 0.0000001 mm para o lado. Em um banco que processa trilhões de dólares, esses erros se acumulam. Milhões de centavos desaparecem (ou aparecem) do nada nos balanços contábeis.
A Solução COBOL: PACKED-DECIMAL
O COBOL foi projetado com um tipo de dado nativo chamado Fixed Point Decimal.
Ele não converte o número para binário aproximado. Ele armazena cada dígito decimal 0-9 exatamente como ele é no hardware, usando 4 bits (BCD - Binary Coded Decimal).
Exemplo de declaração COBOL:
01 SALDO-CONTA PIC S9(13)V99 COMP-3.S: Tem sinal (pode ser negativo).9(13): Tem 13 dígitos antes da vírgula.V99: Tem 2 dígitos depois da vírgula (centavos) implícitos.COMP-3: Formato empacotado (Packed Decimal).
Toda a matemática feita com essa variável é garantida pelo hardware do Mainframe (IBM Z-Series tem instruções de CPU específicas para somar BCDs) para ser perfeita, dígito por dígito. É a ferramenta certa para o trabalho.
Parte 2: O Ecossistema do Mainframe (Big Iron)
COBOL não roda no vácuo. Ele vive dentro de um ecossistema robusto chamado Mainframe. Esqueça a Nuvem. A Nuvem é feita de "Commodity Hardware" (milhares de computadores baratos que podem quebrar a qualquer momento, e o software lida com a falha).
O Mainframe é o oposto: Hardware Indestrutível.
- Processadores redundantes: Se uma CPU queima a 5GHz, outra assume sem interromper o cálculo.
- Memória com correção de erro avançada (RAIM).
- I/O Channel Subsystem: Processadores dedicados só para mover dados de disco, liberando a CPU principal.
CICS: O Servidor de Aplicação Original
O COBOL roda frequentemente dentro de um monitor de transações chamado CICS (Customer Information Control System). O CICS é capaz de lidar com milhares de transações simultâneas de forma incrivelmente eficiente. Ele gerenciava "microserviços" décadas antes do termo existir.
Um programa COBOL/CICS bem escrito é surpreendentemente rápido. Ele lê um registro do banco de dados (DB2), atualiza o saldo e escreve o log em microssegundos.
Parte 3: A Linguagem que Fala Inglês
O COBOL foi criado por um comitê liderado informalmente pela lendária Almirante Grace Hopper. A filosofia dela era: "Linguagens de programação devem ser legíveis por gerentes de negócios, não apenas matemáticos."
Por isso, o COBOL parece inglês gritado (tudo em maiúsculas).
IF SALDO IS LESS THAN VALOR-SAQUE
PERFORM REJEITAR-TRANSACAO
ELSE
SUBTRACT VALOR-SAQUE FROM SALDO
PERFORM ATUALIZAR-SALDO
END-IF.É verboso? Sim. É fácil de entender o negócio 30 anos depois? Sim. Código C++ ou Java cheio de abstrações, classes genéricas e lambdas pode ser impenetrável. O COBOL é procedural e direto. "Pegue isso, some aquilo, grave ali". Isso facilita a manutenção de longo prazo.
Parte 4: Por Que Não Reescrever? (O Pesadelo da Migração)
Todo CIO (Chief Information Officer) de banco sonha em "Desligar o Mainframe". Eles iniciam projetos de "Modernização" que duram 5 anos e custam 500 milhões de dólares. A maioria falha.
Exemplo: Commonwealth Bank of Australia Eles conseguiram migrar para Java/SAP em 2012. Custou 750 milhões de dólares (o estimado era muito menos) e levou 5 anos. Foi um sucesso, mas o custo e o risco aterrorizaram outros bancos.
Exemplo: TSB Bank (Reino Unido - 2018) Tentaram migrar de uma plataforma legada para uma nova. Resultado: 1.9 milhão de clientes perderam acesso às contas por semanas. Custou ao banco 330 milhões de libras e a cabeça do CEO.
O Problema das Regras de Negócio Perdidas: Em um sistema de 40 anos, a documentação não existe. A "verdade" está no código. Lá no meio de 10 milhões de linhas, tem uma regra: "Se a conta for poupança rural aberta antes de 1985 e o titular tiver isenção fiscal X, aplique taxa Y." Ninguém sabe que isso existe. Ao reescrever em Java, o programador novo esquece essa regra (ou não a vê). O sistema novo entra no ar, cobra errado e o banco é processado.
"Um sistema complexo que funciona é invariavelmente descoberto como tendo evoluído de um sistema simples que funcionava. Um sistema complexo projetado do zero nunca funciona e não pode ser consertado para funcionar."
Apêndice Técnico A: O Dicionário do Mainframe
Para sobreviver em um banco, você precisa saber estes termos:
Dicionário do Mainframe
- JCL (Job Control Language): A linguagem de script usada para dizer ao sistema operacional o que executar. É famosa por sua sintaxe horrível (
//DD SYSOUT=*). É como o Bash do mainframe, só que pior. - Dataset: Como se chama um "arquivo" no mainframe. Ex:
BANCO.PROD.CONTAS. - VSAM (Virtual Storage Access Method): O sistema de arquivos de alta performance da IBM. Permite acesso indexado rápido (KSDS). A maioria dos dados bancários vive aqui ou no DB2.
- EBCDIC: O sistema de codificação de caracteres usado pela IBM. É o "rival" do ASCII. No EBCDIC, as letras não são sequenciais (H e I são vizinhos, mas I e J têm um buraco no meio). Isso causa dores de cabeça gigantescas em conversões de dados.
- Copybook: Um arquivo que contém a definição de uma estrutura de dados (como um
.hem C). Todos os programas importam o mesmo copybook para garantir que concordam sobre o layout dos dados. - Batch Processing: Processamento em lote. O oposto de "online". É o que roda de madrugada para fechar o balanço do dia, calcular juros de milhões de contas e gerar relatórios. O Mainframe é o rei absoluto do Batch.
- TSO/ISPF: A tela verde (terminal) onde os programadores trabalham. É o IDE do mainframe.
Apêndice Técnico B: Estrutura de um Programa COBOL
O COBOL é rígido. Todo programa tem 4 divisões obrigatórias.
HEAD-DIVISION.
PROGRAM-ID. HELLO-WORLD.
ENVIRONMENT-DIVISION.
CONFIGURATION-SECTION.
* Define em qual computador vai rodar (sobra histórica).
DATA-DIVISION.
WORKING-STORAGE SECTION.
* Define as variáveis.
01 MENSAGEM PIC X(20) VALUE 'HELLO, BANKING WORLD'.
01 CONTADOR PIC 9(02) VALUE ZERO.
PROCEDURE-DIVISION.
MAIN-LOGIC.
PERFORM VARYING CONTADOR FROM 1 BY 1 UNTIL CONTADOR > 5
DISPLAY MENSAGEM
END-PERFORM.
STOP RUN.Tudo tem que estar nas colunas certas.
- Colunas 1-6: Numeração de linha (ignorado).
- Coluna 7: Indicador de comentário (
*) ou continuação (-). - Colunas 8-11: Área A (Divisões, Seções).
- Colunas 12-72: Área B (Código real).
Apêndice Técnico C: MIPS e Custos
Como o mainframe é cobrado? Não é por servidor. É por uso. A unidade é MIPS (Millions of Instructions Per Second) ou MSU (Million Service Units). A IBM cobra o software mensalmente baseado no pico de uso de CPU.
Isso cria uma obsessão por otimização. Se você economizar 1 milissegundo em uma transação que roda 10 milhões de vezes por dia, você economiza milhares de dólares por mês na conta da IBM. Por isso o código COBOL é ultra-otimizado. Programadores contam bytes e ciclos de CPU. Em um mundo de nuvem onde "máquina é barata", essa mentalidade é alienígena.
Perguntas Frequentes (FAQ)
Q: O COBOL está morto? R: Não. Ele é zumbi. Ele não cresce muito, mas não morre. Novos projetos raramente começam em COBOL, mas os sistemas vitais existentes são mantidos e expandidos.
Q: Quanto ganha um programador COBOL? R: Bem. Como a oferta de mão de obra está caindo (aposentadoria) e a demanda é constante, os salários são altos para especialistas sêniores. No entanto, é um trabalho de manutenção, não de criação inovadora.
Q: Como aprendo COBOL hoje? R: A IBM oferece cursos gratuitos e acesso a mainframes reais via o projeto Open Mainframe Project. O VS Code tem extensões excelentes para COBOL (como a da Broadcom), então você não precisa mais usar a tela verde feia se não quiser.
Q: IA vai traduzir COBOL para Java? R: A IBM lançou o Watsonx Code Assistant for Z em 2023, que usa LLMs treinados especificamente para traduzir COBOL para Java. É promissor, mas exige supervisão humana total. Traduzir sintaxe é fácil; traduzir a lógica de negócio embutida e garantir que a aritmética decimal permaneça precisa é o desafio.
Q: O que aconteceu em Nova Jersey na pandemia? R: Em abril de 2020, o governador de Nova Jersey foi à TV pedir desesperadamente por voluntários que soubessem COBOL. O sistema de seguro-desemprego do estado (feito nos anos 80) colapsou sob o volume de pedidos da COVID-19. Isso provou ao mundo que a infraestrutura crítica ainda depende desses códigos antigos.
Referências Bibliográficas
- IBM Redbooks. A biblioteca técnica oficial da IBM.
- Grace Hopper. " The Education of a Computer".
- Reuters. "COBOL blues". Reportagens sobre a crise de talentos.
- Micro Focus. Relatórios sobre o mercado de modernização.
Este artigo foi expandido em Dezembro de 2025 para incluir a crise de talentos da pandemia e as novas ferramentas de IA.
