Translate

Mostrar mensagens com a etiqueta sistemas bancarios. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta sistemas bancarios. Mostrar todas as mensagens

sexta-feira, 12 de junho de 2026

☕🚀 COBOL FORA DO MAINFRAME: POR QUE ELE NÃO CONQUISTOU O MUNDO COMO JAVA, C# E PYTHON?


Bellacosa Mainframe e tenta entender a razao do Cobol nao existir fora do Mainframe

☕🚀 COBOL FORA DO MAINFRAME: POR QUE ELE NÃO CONQUISTOU O MUNDO COMO JAVA, C# E PYTHON?

Quando alguém fala em COBOL, a maioria das pessoas imediatamente imagina um enorme IBM Z, salas refrigeradas, bancos, seguradoras e sistemas que movimentam bilhões de dólares por dia.

Mas existe uma curiosidade que poucos conhecem:

O COBOL nunca foi exclusivo do Mainframe.

Durante décadas existiram versões para:

  • MS-DOS

  • Windows

  • Linux

  • Unix

  • AIX

  • HP-UX

  • Solaris

  • AS/400

  • VMS

  • até mesmo Raspberry Pi atualmente

Empresas como Micro Focus, Fujitsu, RM/COBOL, Acucobol, GNUCobol e outras investiram milhões tentando popularizar o COBOL fora do universo IBM.

Mesmo assim, quando ouvimos a palavra COBOL em 2026, quase todo mundo associa imediatamente ao Mainframe.

A pergunta é inevitável:

Por que isso aconteceu?

Por que Java virou universal?

Por que C conquistou sistemas operacionais?

Por que Python dominou a automação?

E por que COBOL permaneceu praticamente "preso" ao Mainframe?

A resposta envolve tecnologia, mercado, marketing, história, cultura corporativa e até psicologia.

Pegue seu café.

Hoje vamos mergulhar em uma das maiores curiosidades da história da computação.


O MAIOR MITO SOBRE COBOL

Existe uma crença popular:

"COBOL só funciona em Mainframe."

Isso nunca foi verdade.

Desde os anos 70 já existiam compiladores COBOL para minicomputadores.

Nos anos 80 surgiram versões para:

  • DOS

  • Unix

  • VAX/VMS

Nos anos 90:

  • Windows

  • OS/2

  • Linux

Nos anos 2000:

  • .NET

  • JVM

  • Web Services

Tecnicamente falando, o COBOL poderia ter seguido praticamente qualquer caminho.

Mas não seguiu.


O PROBLEMA NUNCA FOI A LINGUAGEM

Essa é a primeira coisa que surpreende muita gente.

O COBOL não fracassou fora do Mainframe porque era ruim.

Na verdade ele possuía diversas vantagens.

Extremamente legível

Exemplo:

IF SALDO-CONTA IS GREATER THAN LIMITE-CREDITO
   DISPLAY "LIMITE EXCEDIDO"
END-IF

Até alguém sem conhecimento profundo consegue entender.


Excelente para regras de negócio

Bancos adoram COBOL porque ele descreve regras empresariais com clareza.

Por exemplo:

COMPUTE JUROS =
    VALOR * TAXA / 100

Não existe mistério.


Forte manipulação de registros

Antes dos bancos relacionais se popularizarem, isso era ouro.


Precisão decimal

Enquanto várias linguagens sofriam com arredondamentos, COBOL nasceu para dinheiro.

E dinheiro não aceita erro.


O VERDADEIRO PROBLEMA: O COBOL NASCEU PARA NEGÓCIOS

A palavra COBOL significa:

Common Business Oriented Language

Observe:

Não é:

  • Common Game Language

  • Common Scientific Language

  • Common Internet Language

É:

Business.

Negócios.

Empresas.

Contabilidade.

Folha de pagamento.

Seguros.

Finanças.

Faturamento.

Desde o nascimento, ele tinha um propósito extremamente específico.


ENQUANTO ISSO, O MUNDO MUDOU

Na década de 1960 isso era perfeito.

Mas nas décadas seguintes surgiram novos mercados.


Computação científica

FORTRAN dominou.


Sistemas operacionais

C dominou.


Inteligência Artificial

LISP dominou inicialmente.


Aplicações gráficas

C++


Internet

Java

PHP

Perl

JavaScript


Ciência de Dados

Python

R


O mundo começou a exigir coisas que nunca foram prioridade para o COBOL.


O COBOL NÃO FOI FEITO PARA SER "COOL"

Aqui existe um fator psicológico interessantíssimo.

Pense nos heróis da programação:

  • Linus Torvalds → C

  • Guido van Rossum → Python

  • Bjarne Stroustrup → C++

  • James Gosling → Java

Agora pense em COBOL.

A maioria das pessoas nem sabe quem foi Grace Hopper.

Grace Hopper ajudou a criar conceitos fundamentais que levariam ao COBOL.

Mas a linguagem nunca foi vendida como algo revolucionário.

Ela foi vendida como algo:

  • estável

  • corporativo

  • burocrático

E isso afasta jovens desenvolvedores.


O EFEITO "BANCO"

Imagine dois anúncios.

Linguagem A

"Crie jogos incríveis!"

Linguagem B

"Automatize cálculos atuariais."

Qual parece mais divertida?

Foi exatamente isso que aconteceu.

COBOL ficou associado a:

  • bancos

  • seguradoras

  • governos

  • sistemas legados

Enquanto outras linguagens ficaram associadas à inovação.


O ERRO DE MARKETING MAIS CARO DA HISTÓRIA

Durante os anos 80 e 90, universidades começaram a ensinar:

  • C

  • Pascal

  • C++

  • Java

COBOL desapareceu dos cursos.

A consequência foi devastadora.

Menos estudantes.

Menos projetos.

Menos comunidade.

Menos livros.

Menos ferramentas.

Menos conteúdo.

Menos adoção.

Criou-se um círculo vicioso.


O PROBLEMA DAS FERRAMENTAS

Vamos ser honestos.

Nos anos 90 era muito mais divertido programar Visual Basic do que COBOL.

Visual Basic tinha:

  • botões

  • janelas

  • eventos

Você arrastava componentes.

Tudo aparecia na tela.

COBOL continuava focado em:

OPEN INPUT CLIENTES
READ CLIENTES

O apelo visual era praticamente zero.


O MUNDO APAIXONOU-SE POR INTERFACES GRÁFICAS

Quando o Windows explodiu, surgiu uma nova geração de desenvolvedores.

Eles queriam construir:

  • telas

  • jogos

  • multimídia

COBOL não era o candidato natural.


O MAINFRAME PROTEGEU O COBOL

Aqui está a maior ironia.

O Mainframe foi simultaneamente:

  • a maior força do COBOL

  • e sua maior prisão

Sem Mainframe talvez COBOL tivesse desaparecido.

Mas graças ao Mainframe ele sobreviveu.

Por outro lado, o sucesso no Mainframe reduziu o incentivo para conquistar outros mercados.

Os bancos já estavam satisfeitos.

Por que mudar?


O FATOR ECONÔMICO

Imagine um banco.

Você possui:

  • 50 milhões de linhas COBOL

  • 40 anos de história

  • bilhões movimentados diariamente

Qual decisão é mais segura?

Opção A

Migrar tudo.

Opção B

Continuar usando COBOL.

A resposta é óbvia.


O EFEITO "SE ESTÁ FUNCIONANDO, NÃO MEXA"

Poucas linguagens tiveram a sorte de trabalhar em ambientes tão conservadores.

Um sistema bancário precisa:

  • estabilidade

  • previsibilidade

  • auditoria

Não precisa ser moderno.

Precisa funcionar.

E COBOL funciona.

Muito bem.


A CHEGADA DA INTERNET

Nos anos 90 surgiu a Web.

Foi uma nova corrida do ouro.

Linguagens correram para conquistar esse território.

  • Java

  • PHP

  • Perl

  • ASP

COBOL chegou depois.

Muito depois.

Quando chegou, o mercado já tinha donos.


O PROBLEMA DA COMUNIDADE

Uma linguagem vive ou morre pela comunidade.

Python possui:

  • milhões de usuários

  • milhares de bibliotecas

  • eventos globais

Java possui ecossistema gigantesco.

COBOL sempre teve uma comunidade menor.

Extremamente qualificada.

Mas menor.


O FATOR OPEN SOURCE

Outro golpe importante.

O movimento Open Source impulsionou:

  • Linux

  • Python

  • PHP

  • Perl

COBOL permaneceu muito ligado ao mundo corporativo.

Licenças caras.

Compiladores pagos.

Ferramentas empresariais.

Isso limitou sua expansão.


MAS EXISTE COBOL OPEN SOURCE

Hoje existe o fantástico:

GNUCobol

GnuCOBOL Official Project

Ele compila COBOL para C e roda em:

  • Linux

  • Windows

  • macOS

Mostrando que o COBOL continua vivo fora do Mainframe.


O COBOL É LENTO?

Outro mito.

Na verdade, muitas implementações COBOL são extremamente rápidas.

Especialmente em processamento transacional.

O problema nunca foi desempenho.


O COBOL É ANTIGO DEMAIS?

Também não.

Veja a ironia.

Hoje temos:

  • APIs REST

  • JSON

  • XML

  • Kafka

  • Containers

  • Docker

E o COBOL já conversa com tudo isso.

Inclusive o usuário Bellacosa Mainframe frequentemente explora integrações modernas entre COBOL, JSON, CICS Web Services e z/OS Connect.

O problema não é tecnológico.

É percepção de mercado.


O PARADOXO DO SUCESSO

O COBOL sofreu do mesmo problema que o DB2 Mainframe.

Ele ficou tão bom no que fazia que nunca precisou mudar radicalmente.

Enquanto outras linguagens lutavam para sobreviver, o COBOL já tinha conquistado o setor financeiro.


O QUE ACONTECERIA SE O COBOL FOSSE CRIADO HOJE?

Imagine uma linguagem com:

  • sintaxe legível

  • precisão decimal nativa

  • foco em regras de negócio

  • forte tipagem

  • excelente auditoria

Provavelmente seria vendida como:

  • FinTech Language

  • Banking Language

  • Enterprise Language

E talvez fosse considerada revolucionária.


O COBOL PERDEU A GUERRA?

Não.

Na verdade, ele venceu uma guerra diferente.

Enquanto milhares de linguagens nasceram e morreram, COBOL continua executando sistemas críticos após mais de seis décadas.

Poucas tecnologias na história conseguiram isso.


A VERDADE QUE POUCOS ADMITEM

Quando um programador Python cria um sistema hoje, ninguém sabe se ele existirá daqui a 30 anos.

Quando um programador COBOL cria um sistema bancário, existe uma boa chance de alguém ainda estar executando aquele código décadas depois.

Isso muda completamente a forma de projetar software.


A GRANDE LIÇÃO PARA OS PADAWANS

A pergunta correta não é:

"Por que COBOL ficou nichado no Mainframe?"

A pergunta correta é:

"Por que o Mainframe continuou sendo o melhor lugar para executar aquilo que o COBOL foi criado para fazer?"

Porque o COBOL nasceu para resolver problemas empresariais gigantescos.

E o Mainframe continua sendo a plataforma mais eficiente para executar esses processos com:

  • confiabilidade

  • segurança

  • disponibilidade

  • escalabilidade

  • integridade transacional

O COBOL não ficou preso ao Mainframe.

Na realidade, ele encontrou seu habitat natural.

As versões para DOS, Windows e Linux sempre existiram, continuam existindo e funcionam muito bem.

Mas fora do Mainframe ele precisava competir com centenas de linguagens.

Dentro do Mainframe ele se tornou rei.

E existe uma enorme diferença entre participar de uma competição e dominar um reino.

Mais de 65 anos depois de seu nascimento, o COBOL continua processando salários, aposentadorias, seguros, cartões de crédito, transferências bancárias e operações financeiras que sustentam boa parte da economia mundial.

Poucas linguagens podem dizer isso.

E talvez esse seja o maior paradoxo da computação:

O COBOL não conquistou todas as plataformas porque nunca precisou.

Ele já estava ocupado movendo o mundo. ☕🚀



sexta-feira, 27 de março de 2015

☕🔥 BOAS PRÁTICAS COBOL — A DIFERENÇA ENTRE “CÓDIGO QUE FUNCIONA” E “CÓDIGO QUE SOBREVIVE 30 ANOS”

 

Bellacosa Mainframe e as Boas praticas em cobol

☕🔥 BOAS PRÁTICAS COBOL — A DIFERENÇA ENTRE “CÓDIGO QUE FUNCIONA” E “CÓDIGO QUE SOBREVIVE 30 ANOS”

O material enviado é excelente porque toca num dos assuntos mais importantes do mundo Enterprise:

COBOL não é só linguagem.
COBOL é engenharia de continuidade operacional.

E isso muda completamente a maneira de programar.

No mercado bancário, seguradoras, adquirentes, cartões, previdência, governo e clearing houses…

o programa COBOL NÃO é feito para durar meses.

Ele é feito para durar décadas.

Muitos sistemas bancários críticos hoje ainda possuem módulos escritos entre:

  • 1978

  • 1986

  • 1992

  • 1999

e continuam processando:

  • PIX

  • TED

  • SWIFT

  • cartão

  • folha

  • empréstimo

  • câmbio

  • risco

  • antifraude

  • compensação

  • open finance

com volumes absurdos.


☕ O GRANDE SEGREDO DO COBOL CORPORATIVO

Em sistemas Enterprise:

O custo da MANUTENÇÃO é MUITO maior que o custo da implementação inicial.

Em bancos:

  • 70% a 90% do trabalho é manutenção

  • não projeto novo

Então o verdadeiro objetivo do COBOL é:

  • previsibilidade

  • legibilidade

  • estabilidade

  • rastreabilidade

  • auditabilidade

  • recuperação

  • facilidade de troubleshooting

e NÃO “código bonito”.


☕ O QUE DIFERENCIA UM JÚNIOR DE UM PROGRAMADOR COBOL ENTERPRISE?

Junior:

  • “funciona”

Senior:

  • “isso vai sobreviver 20 anos?”

Especialista banco:

  • “isso vai sobreviver 20 anos SEM derrubar batch?”

Arquiteto:

  • “isso vai sobreviver auditoria BACEN?”


☕ 1 — IDENTIFICATION DIVISION NÃO É ENFEITE

O texto fala algo extremamente importante:

Muita gente ignora IDENTIFICATION DIVISION.

No mundo real isso é gravíssimo.

Porque em bancos:

  • programas possuem milhares de versões

  • dezenas de equipes

  • auditorias

  • SOX

  • BACEN

  • LGPD

  • rastreabilidade


EXEMPLO CORPORATIVO REAL

IDENTIFICATION DIVISION.
PROGRAM-ID. CRD0450.

AUTHOR. V BELLACOSA.
INSTALLATION. BANK XYZ.
DATE-WRITTEN. 2026-05-21.

REMARKS.
* PROCESSA BAIXA DE PARCELAS
* MODULO UTILIZADO NO FECHAMENTO D+1
* INTEGRADO COM CICS E DB2
* CHAMADO PELO SCHEDULER CA7

☕ POR QUE ISSO É IMPORTANTE?

Imagine:

Batch falhou às 02:15 da manhã.

Operação liga para suporte.

O operador precisa descobrir:

  • o que o programa faz

  • qual sistema impactado

  • qual cadeia batch

  • quem mantém

  • dependências

Sem IDENTIFICATION adequada:

  • caos

Com documentação:

  • troubleshooting rápido


☕ 2 — COMENTÁRIOS NÃO DEVEM EXPLICAR “O QUE”

Esse trecho do artigo é ouro puro.

Programador ruim comenta:

* SOMA VALOR
ADD WS-VALOR TO WS-TOTAL

Isso é inútil.

O COBOL já é quase inglês.


☕ O QUE DEVE SER COMENTADO?

REGRA DE NEGÓCIO

Exemplo bancário:

* BACEN CIRCULAR 4588
* JUROS DEVEM SER ESTORNADOS
* QUANDO LIQUIDACAO OCORRER EM D-1
* CHAMADO 458921 - TIME RISCO

IF WS-DT-LIQ < WS-DT-VENC
   SUBTRACT WS-JUROS
      FROM WS-SALDO
END-IF

Isso salva vidas em produção.

Porque explica:

  • por que existe

  • quem pediu

  • qual regra

  • qual auditoria

  • qual legislação


☕ 3 — NOMENCLATURA EM COBOL É CIÊNCIA

O texto explica muito bem padrões de nomes.

Em sistemas bancários grandes:

nomenclatura é arquitetura.


☕ EXEMPLO RUIM

01 X.
01 Y.
01 TOTAL1.
01 CONT.

Isso destrói manutenção.


☕ EXEMPLO ENTERPRISE

01 WS-VR-TOTAL-PAGAMENTO    PIC S9(13)V99 COMP-3.
01 WS-QT-PARCELAS-ATRASO    PIC 9(05) COMP.
01 WS-DT-LIQUIDACAO         PIC 9(08).
01 WS-ST-CLIENTE-INAD       PIC X(01).

Agora qualquer pessoa entende:

  • VR = valor

  • QT = quantidade

  • DT = data

  • ST = status


☕ PADRÃO BANCÁRIO MAIS COMUM

Prefixos clássicos

PrefixoSignificado
WSWorking-Storage
LKLinkage
DFHCICS
SQLDb2
INEntrada
OUTSaída
ACAcumulador
CTContador
FLGFlag

☕ 4 — EVALUATE É UMA DAS MAIORES ARMAS DO COBOL MODERNO

O artigo mostra um IF gigantesco.

Isso é MUITO comum em sistemas antigos.


☕ O PROBLEMA DOS IFs GIGANTES

Eles causam:

  • difícil manutenção

  • bugs

  • nesting infernal

  • scope errado

  • END-IF perdido

  • regressão


☕ COMO BANCOS MODERNIZAM ISSO?

Com:

EVALUATE WS-TP-MOVIMENTO

   WHEN '01'
      PERFORM 100-CREDITO

   WHEN '02'
      PERFORM 200-DEBITO

   WHEN '03'
      PERFORM 300-ESTORNO

   WHEN OTHER
      PERFORM 900-ERRO

END-EVALUATE

☕ BENEFÍCIOS

1. Legibilidade absurda

2. Menos bugs

3. Fácil inclusão de novas regras

4. Melhor debugging

5. Melhor análise de fluxo


☕ 5 — END-IF SALVOU O MAINFRAME

O artigo cita delimitadores de escopo.

Isso foi uma revolução.

Antes:

IF A = B
   IF C = D
      MOVE 1 TO X.

O ponto encerrava TUDO.

Isso gerava:

  • bugs monstruosos

  • IF acidentalmente fechado

  • corrupção lógica


☕ BOA PRÁTICA MODERNA

IF WS-SALDO > ZERO

   IF WS-LIMITE > ZERO
      PERFORM 100-LIBERA
   END-IF

END-IF

☕ REGRA DE OURO DOS BANCOS

NUNCA dependa de ponto para fechar escopo.

Sempre:

  • END-IF

  • END-EVALUATE

  • END-PERFORM

  • END-READ

  • END-EXEC


☕ 6 — CÓDIGO MORTO É VENENO CORPORATIVO

O artigo fala sobre código comentado antigo.

Isso é uma praga em mainframe.


☕ EXEMPLO REAL

* COMPUTE WS-JUROS = WS-SALDO * 0.12
MOVE ZERO TO WS-JUROS

10 anos depois:

  • ninguém sabe qual regra vale

  • auditoria confunde

  • manutenção vira inferno


☕ MELHOR PRÁTICA

Use:

  • ChangeMan

  • Endevor

  • Git

  • ISPW

Versionamento existe para isso.


☕ O CÓDIGO DEVE REPRESENTAR:

o presente

Não o passado arqueológico do sistema.


☕ 7 — COPYBOOKS: O DNA DO MAINFRAME

O artigo comenta reuso moderado.

Esse é um dos temas mais importantes do COBOL bancário.


☕ O QUE É COPYBOOK?

É um INCLUDE reutilizável.


☕ EXEMPLO

COPY CLIENTE.
COPY DFHAID.
COPY SQLCA.

☕ PRINCIPAIS COPYBOOKS BANCÁRIOS

1. Layouts de arquivos

CNAB:

  • 240

  • 400


2. Áreas CICS

DFHCOMMAREA

3. Estruturas Db2

DCLGEN

4. APIs corporativas

PIX
SWIFT
Open Finance


☕ PERIGO DO EXCESSO DE COPYBOOK

Já vi programas com:

  • 120 COPYs

  • impossível entender fluxo

Isso gera:

  • compilação lenta

  • impacto gigante

  • acoplamento monstruoso


☕ BOA PRÁTICA

Reuse:

  • layouts

  • APIs

  • estruturas comuns

  • tratamento corporativo

NÃO reuse:

  • lógica besta

  • MOVE ZERO

  • regras triviais


☕ 8 — COMP, COMP-3 E PERFORMANCE

O artigo toca num ponto extremamente avançado.

Muita gente não entende isso.


☕ DISPLAY vs COMP vs COMP-3

DISPLAY

PIC 9(10)

Armazenado:

  • caractere por caractere

Mais lento.


☕ COMP

PIC S9(9) COMP

Binário.

Muito mais rápido.

Ideal:

  • contadores

  • loops

  • índices


☕ COMP-3

PIC S9(11)V99 COMP-3

Packed decimal.

Perfeito para:

  • financeiro

  • bancos

  • dinheiro

Porque:

  • precisão decimal exata


☕ POR QUE BANCOS AMAM COMP-3?

Porque dinheiro NÃO pode ter erro binário.

Exemplo clássico:

Floating Point

0.1 + 0.2 = 0.3000000000004

Em banco:

  • isso seria catastrófico


☕ COBOL RESOLVE ISSO

Com decimal packed:

01 WS-VALOR PIC S9(09)V99 COMP-3.

Precisão decimal real.


☕ 9 — NÍVEL 88 É SUBESTIMADO

O artigo comenta condition names.

Isso é uma maravilha do COBOL.


☕ SEM NÍVEL 88

IF WS-ST-CLIENTE = 'A'

'A' significa o quê?


☕ COM NÍVEL 88

01 WS-ST-CLIENTE PIC X(01).

   88 CLIENTE-ATIVO VALUE 'A'.
   88 CLIENTE-BLOQUEADO VALUE 'B'.
   88 CLIENTE-INADIMPLENTE VALUE 'I'.

Agora:

IF CLIENTE-INADIMPLENTE

Fica quase inglês.


☕ 10 — PRINCIPAIS SOLUÇÕES BANCÁRIAS COBOL

Agora vamos entrar no mundo REAL Enterprise.


☕ ARQUITETURA MAIS COMUM EM BANCOS

ONLINE

CICS + COBOL + Db2

Processa:

  • saldo

  • PIX

  • TED

  • cartão

  • ATM

  • mobile


☕ BATCH

JCL + COBOL + SORT + IDCAMS + Db2 Utilities

Processa:

  • fechamento

  • extrato

  • billing

  • juros

  • risco

  • liquidação


☕ MIDDLEWARE

MQ
Kafka
IBM Integration Bus
z/OS Connect

Integra:

  • APIs

  • microsserviços

  • nuvem

  • mobile


☕ SEGURANÇA

RACF

Controla:

  • datasets

  • transações

  • usuários

  • APIs


☕ ALTA DISPONIBILIDADE

Sysplex
GDPS
Parallel Sysplex


☕ MONITORAMENTO

OMEGAMON
MainView
SYSVIEW


☕ DEVOPS MAINFRAME

Endevor
ISPW
Git + DBB
Jenkins
UrbanCode


☕ EXEMPLO REAL — TRANSAÇÃO PIX

PASSO A PASSO


1 — APP MOBILE

Cliente envia PIX.


2 — API GATEWAY

Chama:

  • z/OS Connect

  • MQ

  • CICS


3 — CICS

Executa transação COBOL.


4 — COBOL

Valida:

  • saldo

  • limite

  • antifraude

  • horário

  • BACEN


5 — Db2

Atualiza:

  • saldo

  • ledger

  • histórico


6 — MQ/Kafka

Publica evento.


7 — Batch Noturno

Concilia:

  • compensação

  • liquidação

  • auditoria


☕ O QUE ISSO ENSINA?

Que COBOL moderno NÃO vive isolado.

Ele é:

  • coração transacional

  • motor financeiro

  • camada de consistência


☕ CONCLUSÃO

O artigo enviado aborda algo fundamental:

boas práticas COBOL não existem para “embelezar código”.

Elas existem para:

  • manter sistemas vivos

  • reduzir risco operacional

  • evitar incidentes bancários

  • facilitar auditoria

  • garantir continuidade

  • permitir manutenção segura

E isso é exatamente o motivo pelo qual:

  • bancos

  • bolsas

  • seguradoras

  • governos

  • adquirentes

continuam confiando bilhões de dólares ao COBOL diariamente.