☕ Um Café no Bellacosa Mainframe
COBOL à Lua: Júlio Verne, JCL e o Primeiro Batch Interplanetário
🌕🚀 E se Da Terra à Lua, de Júlio Verne, fosse na verdade a documentação perdida de um gigantesco JOB COBOL escrito um século antes do primeiro mainframe?
Existe uma suspeita que me acompanha há algum tempo.
Talvez tenhamos interpretado Júlio Verne errado.
Durante mais de um século disseram que aquele francês escrevia ficção científica.
Submarinos.
Balões.
Viagens extraordinárias.
Máquinas impossíveis.
Explorações.
Lua.
Mas depois de décadas trabalhando com mainframe comecei a desconfiar.
Talvez Verne estivesse fazendo outra coisa.
Talvez fossem:
documentações funcionais.
Documentações extremamente antecipadas.
Porque quando releio Da Terra à Lua, publicado em 1865, encontro elementos estranhamente familiares.
Existe um requisito absurdo.
Um grupo de especialistas.
Um orçamento gigantesco.
Uma solução tecnicamente questionável.
Cálculos intermináveis.
Hardware construído especificamente para uma única missão.
Pressão por prazo.
Testes limitados.
Usuários colocados dentro da solução.
E uma data de implantação que aparentemente não pode ser alterada.
Meu amigo...
Isso não é ficção científica.
É projeto de TI.
📚 Monsieur Verne abre o chamado
Vamos primeiro ao original.
Júlio Verne publicou De la Terre à la Lune — Da Terra à Lua em 1865.
A história apresenta o Gun Club, uma associação americana formada por especialistas em artilharia que, depois da Guerra Civil dos Estados Unidos, encontra-se diante de um problema existencial.
Eles sabem construir canhões.
Sabem calcular trajetórias.
Sabem explodir coisas.
Mas acabou a guerra.
O backlog desapareceu.
Então o presidente do clube, Impey Barbicane, apresenta uma ideia perfeitamente razoável:
Vamos disparar um projétil até a Lua.
Silêncio.
Em qualquer empresa moderna alguém imediatamente levantaria a mão:
“Tem budget?”
Barbicane:
“Vamos descobrir.”
Projeto aprovado.
🦖 Enquanto isso, em 1959...
Quase cem anos depois surge outra ideia aparentemente absurda:
Criar uma linguagem de programação orientada a negócios, próxima do inglês, capaz de sobreviver entre fabricantes diferentes.
Nasce o:
COBOL
Common Business-Oriented Language.
Agora precisamos cometer um pequeno crime contra a cronologia.
Vamos colocar COBOL em 1865.
Porque Barbicane precisa calcular aquela viagem.
E eu definitivamente não entregaria uma missão lunar inteira para uma planilha.
🖥️ BARBICANE MAINFRAME CENTER
Em algum lugar da Flórida alternativa de Júlio Verne existe uma sala refrigerada.
No centro:
BELLACOSA Z1865
INTERPLANETARY COMPUTING SYSTEMOperador coloca o JOB na fila.
//MOONJOB JOB (VERNE),'LUNAR MISSION',
// CLASS=A,MSGCLASS=X
//STEP01 EXEC PGM=MOONCOB
//SYSOUT DD SYSOUT=*
//ORBITIN DD DSN=GUNCLUB.LUNAR.DATA,DISP=SHRJES recebe.
$HASP100 MOONJOB ON READERBarbicane olha para o console.
Michel Ardan pergunta:
— Estamos indo para a Lua?
Operador:
— Calma.
— Por quê?
— Seu JOB ainda está aguardando initiator.
🌕 O requisito funcional
Toda grande aplicação começa com um requisito.
Nosso requisito é particularmente simples:
RF-001ENVIAR SERES HUMANOS À LUA.
Critérios de aceite:
1. DISPARAR PROJÉTIL
2. NÃO MATAR TRIPULAÇÃO
3. ALCANÇAR LUA
4. PREFERENCIALMENTE VOLTARO analista funcional lê.
Pergunta:
— O item quatro é obrigatório?
Gerente:
— Vamos colocar como melhoria futura.
Perfeito.
Estamos oficialmente em produção.
🧮 COBOL começa a calcular
Nosso programa:
IDENTIFICATION DIVISION.
PROGRAM-ID. MOONCOB.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MISSION.
05 WS-DISTANCE-KM PIC 9(06)V99.
05 WS-VELOCITY PIC 9(08)V99.
05 WS-ANGLE PIC 9(03)V99.
05 WS-PROJECTILE-MASS PIC 9(08)V99.
05 WS-GUN-LENGTH PIC 9(06)V99.Barbicane observa.
— Isso calcula trajetória lunar?
COBOLzeiro:
— Calcula.
— Em 1865?
— Não complique a arquitetura.
🔭 Júlio Verne tinha uma obsessão maravilhosa: números
Essa é uma das características mais interessantes de Da Terra à Lua.
Verne não simplesmente diz:
“Construíram um canhão enorme.”
Ele tenta dar dimensões.
Distâncias.
Pesos.
Custos.
Velocidades.
Materiais.
Localização.
Trajetórias.
O romance brinca constantemente com a fronteira entre:
FICÇÃO
↕
ENGENHARIAE isso ajuda a produzir aquela maravilhosa sensação verniana:
“Espere... será que isso poderia funcionar?”
Hoje sabemos que disparar seres humanos de um canhão gigantesco produziria alguns pequenos inconvenientes técnicos.
Entre eles:
transformar passageiros em geleia.
Mas o espírito é extraordinário.
Verne tenta transformar fantasia em problema calculável.
E COBOL gosta exatamente disso.
🧮 COMPUTE TO THE MOON
Nosso programa recebe parâmetros.
COMPUTE WS-TRAJECTORY =
WS-VELOCITY * WS-ANGLE
END-COMPUTE.Naturalmente essa equação é ridiculamente insuficiente para mecânica orbital.
Mas estamos escrevendo um artigo Bellacosa Mainframe.
Não lançando Artemis.
Espero.
O importante é perceber a filosofia.
Barbicane pega um sonho:
IR À LUAe começa a quebrá-lo em:
DISTÂNCIA
MASSA
VELOCIDADE
ÂNGULO
TEMPO
MATERIAL
ENERGIA
CUSTOIsso é praticamente análise de sistemas.
🔧 Gun Club = departamento de infraestrutura
Pense nos integrantes do Gun Club.
São especialistas em hardware pesado.
Extremamente pesado.
Eles olham para um problema e imediatamente pensam:
CANHÃO MAIOR.
Isso me lembra algumas reuniões de infraestrutura.
Problema:
Aplicação está lenta.
Resposta:
MAIS CPU.Problema continua.
MAIS MEMÓRIA.Continua.
MAIS STORAGE.Continua.
Até alguém chamado Penny, Grace Hopper ou estagiário pergunta:
“Vocês verificaram o programa?”
Silêncio.
💣 Columbiad: o hardware definitivo
No romance, o gigantesco canhão recebe o nome de Columbiad.
É essencialmente o dispositivo responsável pelo lançamento.
No nosso universo:
DEVICE TYPE:
LUNAR ACCELERATOR
MODEL:
COLUMBIAD 1865
STATUS:
PRODUCTIONNão existe redundância.
Não existe segundo Columbiad.
Não existe disaster recovery.
Não existe rollback.
Existe:
FIRE.É provavelmente o deployment mais agressivo da história.
🚨 CHANGE REQUEST
Imagine o CAB — Change Advisory Board.
CHANGE:
CHG-1865-001
DESCRIPTION:
DISPARAR CÁPSULA TRIPULADA CONTRA A LUA
RISK:
HIGH
ROLLBACK:
N/A
IMPLEMENTATION WINDOW:
QUANDO A LUA ESTIVER NA POSIÇÃO CORRETACAB pergunta:
— Foi testado?
Barbicane:
— Fizemos cálculos.
— Existe ambiente de homologação?
— Não.
— Plano de rollback?
— Gravidade.
Change:
APPROVED.
🧔 Michel Ardan entra no requisito
Então aparece Michel Ardan.
O francês aventureiro.
Carismático.
Excêntrico.
E decide:
Se vão mandar o projétil para a Lua, eu vou dentro.
Aqui todo projeto tecnológico conhece o fenômeno.
Até aquele momento tínhamos:
PROJÉTIL NÃO TRIPULADOAgora:
PROJÉTIL TRIPULADOAnalista:
— Isso muda completamente o requisito.
Gerente:
— É só uma pequena alteração.
A frase:
“É só uma pequena alteração”
já matou mais cronogramas que qualquer S0C7.
📋 COPYBOOK atualizado
Antes:
01 PROJECTILE.
05 PROJECTILE-MASS PIC 9(08).Depois:
01 PROJECTILE.
05 PROJECTILE-MASS PIC 9(08).
05 PASSENGERS.
10 PASSENGER OCCURS 3 TIMES.
15 PASSENGER-NAME PIC X(30).
15 PASSENGER-WEIGHT PIC 9(03).
15 PASSENGER-ALIVE PIC X.Observe cuidadosamente:
PASSENGER-ALIVEEsse campo será importante.
🧪 QA pergunta sobre testes
QA:
— Testaram aceleração?
— Sim.
— Com humanos?
— Não.
— Vibração?
— Mais ou menos.
— Pressurização?
— Estamos vendo.
— Temperatura?
— Próxima sprint.
— Navegação?
— Cálculos parecem bons.
— Recuperação?
— Depois pensamos nisso.
QA olha para o documento.
STATUS:
READY FOR PRODUCTIONQA pede férias.
🌎 Por que lançar da Flórida?
Aqui existe uma coincidência histórica deliciosa.
No romance, após cálculos sobre o local apropriado para o disparo, a região escolhida fica na Flórida.
Décadas depois, a Flórida se tornaria central para o programa espacial americano, com Cape Canaveral/Kennedy Space Center.
Não significa que Verne “previu a NASA”.
Geografia e mecânica orbital fornecem boas razões para lançamentos em latitudes mais baixas e em determinadas direções.
Mas para um leitor moderno é impossível não sorrir.
Júlio Verne escreve sobre americanos lançando uma missão lunar da Flórida em 1865.
NASA:
“Anotado.”
🖥️ COBOL valida a janela lunar
Nosso programa recebe:
IF WS-LAUNCH-WINDOW = 'OPEN'
DISPLAY 'GO FOR LAUNCH'
ELSE
DISPLAY 'HOLD'
END-IF.Barbicane:
— GO?
Operações:
— GO.
Hardware:
— GO.
Tripulação:
— GO.
COBOL:
GO FOR LAUNCHJES2:
MOONJOB STEP01 MAXCC=0000Todos comemoram.
Exceto o velho programador.
Ele sabe:
MAXCC=0 não significa que a Lua está onde deveria estar.
Significa apenas que o programa terminou sem reclamar.
Existe uma diferença filosófica importante.
🚀 3... 2... 1...
Chega o momento.
Columbiad carregado.
Projétil preparado.
Barbicane.
Nicholl.
Michel Ardan.
Dentro da cápsula.
Operador:
SUBMIT MOONJOBJES:
$HASP373 MOONJOB STARTEDCOBOL:
CALCULATING TRAJECTORY...CICS não participa.
Graças a Deus.
Db2 registra a missão.
INSERT INTO LUNAR_MISSION
VALUES ('MOON-001','LAUNCHED');COMMIT.
Agora não tem volta.
💥 FIRE
Columbiad dispara.
BOOOOOOOOOOOOOOMToda a Flórida alternativa treme.
Operador olha SDSF.
JOB STATUS: ACTIVEMichel Ardan:
— Estamos vivos?
Barbicane:
— Aparentemente.
Nicholl:
— Qual nossa trajetória?
Ardan:
— Pergunte ao computador.
Terminal:
MOONCOB:
TRAJECTORY STATUS = UNKNOWNArdan:
— Excelente.
🌌 O primeiro batch interplanetário
Agora nosso JOB está literalmente viajando.
Isso apresenta um problema arquitetural.
O mainframe está na Terra.
A cápsula está no espaço.
Rede:
LATENCY:
CONSIDERÁVELProgramador moderno:
— Podemos colocar Kubernetes na cápsula.
Não.
Sente-se.
🛰️ Arquitetura distribuída de 1865
Precisamos de processamento local.
Imagine um pequeno subsistema COBOL embarcado.
MOONCOB-EDGEAgora finalmente encontramos o verdadeiro significado de:
Edge Computing.
Edge mesmo.
A borda está a centenas de milhares de quilômetros.
🐛 E naturalmente aparece um bug
Nenhuma viagem Bellacosa Mainframe estaria completa sem isso.
No meio da trajetória:
ABEND S0C7Barbicane:
— O que significa?
COBOLzeiro:
— Data Exception.
— Estamos entre a Terra e a Lua!
— Continua sendo Data Exception.
Investigação.
Campo:
05 WS-LUNAR-DISTANCE PIC 9(06).Entrada:
384400KMAh.
Alguém colocou:
KMnum campo numérico.
Dois caracteres.
Missão lunar inteira ameaçada por:
K
MCOBOL permanece absolutamente indiferente à importância histórica da missão.
Dado inválido é dado inválido.
🔧 DISPLAY salva a humanidade
Sem debugger sofisticado:
DISPLAY 'DISTANCE=' WS-LUNAR-DISTANCE.SYSOUT:
DISTANCE=384400KMBarbicane:
— Encontramos!
Nicholl:
— Quem colocou KM?
Michel Ardan lentamente olha para o lado.
Silêncio.
🌕 O mistério da trajetória
A continuação da história, Autour de la Lune — Ao Redor da Lua, publicada primeiro em série e depois em volume em 1870, acompanha a viagem dos personagens.
E aqui Verne faz algo ainda mais interessante.
A aventura deixa de ser apenas:
CONSTRUIR CANHÃOe passa a ser:
O QUE ACONTECE DEPOIS DO DEPLOY?Essa é a pergunta que todo desenvolvedor conhece.
Antes:
“Precisamos colocar em produção.”
Depois:
“Colocamos.”
Silêncio.
“E agora?”
Agora começa a verdadeira aventura.
🔄 Produção é diferente de projeto
No laboratório tudo parece controlável.
Em produção aparecem:
GRAVIDADE
TEMPERATURA
TRAJETÓRIA
ERROS DE CÁLCULO
EVENTOS IMPREVISTOS
COMPORTAMENTO HUMANOSoftware é igual.
Homologação:
10 REGISTROSProdução:
480.000.000 REGISTROSHomologação:
CLIENTE = JOAOProdução:
CLIENTE = O'BRIEN DA SILVA & FILHOS 日本支店E então descobrimos se nossa arquitetura realmente funciona.
🧭 Observabilidade lunar
Precisamos saber:
POSIÇÃO
VELOCIDADE
DIREÇÃO
OXIGÊNIO
TEMPERATURA
STATUS TRIPULAÇÃONosso SMF espacial registra tudo.
SMF TYPE 999
LUNAR FLIGHT RECORDRMF pergunta:
CPU UTILIZATION?COBOLzeiro:
— Estamos indo para a Lua.
RMF:
— Não perguntei isso.
🧠 Júlio Verne e a engenharia da imaginação
Aqui está o ponto realmente bonito.
Júlio Verne não precisava acertar todos os detalhes técnicos.
E não acertou.
Seu canhão lunar possui problemas físicos gigantescos.
Mas isso é quase secundário.
A genialidade está em tratar uma ideia fantástica como se pudesse ser desmontada em problemas menores.
COMO CHEGAR À LUA?vira:
QUAL DISTÂNCIA?
QUAL TRAJETÓRIA?
QUAL VELOCIDADE?
QUAL MATERIAL?
QUAL LOCAL?
QUAL CUSTO?
QUAL CÁPSULA?
QUEM VAI?Essa maneira de pensar está no coração da engenharia.
E também da programação.
🦖 COBOL faz exatamente isso
Imagine um requisito:
“Calcule a folha de pagamento de 100.000 funcionários.”
Para uma pessoa, parece gigantesco.
COBOL transforma em:
READ EMPLOYEE
↓
VALIDATE
↓
CALCULATE
↓
WRITE RESULT
↓
REPEATAgora imagine:
“Vamos à Lua.”
Bellacosa COBOL responde:
READ LUNAR-PARAMETERS
↓
VALIDATE
↓
CALCULATE TRAJECTORY
↓
VALIDATE CREW
↓
LAUNCH
↓
MONITORProblemas extraordinários tornam-se sequências de problemas menores.
🤖 E se Júlio Verne tivesse IA?
Agora entramos em território perigoso.
Verne sentado diante de uma máquina.
Pergunta:
“Qual seria uma maneira plausível de enviar três homens à Lua?”
IA:
“Certamente não através de um canhão.”
Verne:
“Obrigado.”
Fecha a IA.
Escreve o livro mesmo assim.
Porque às vezes uma ideia tecnicamente absurda produz uma história extraordinária.
📊 O dashboard da missão
Na sala do Gun Club:
╔════════════════════════════════╗
║ LUNAR MISSION CONTROL ║
╠════════════════════════════════╣
║ JOB.............. MOONJOB ║
║ PROGRAM.......... MOONCOB ║
║ VEHICLE........ COLUMBIAD ║
║ DESTINATION......... MOON ║
║ PASSENGERS............. 3 ║
║ STATUS.......... IN FLIGHT ║
║ ABENDS................. 1 ║
║ COFFEE.............. LOW ║
╚════════════════════════════════╝O último indicador preocupa operações.
☕ PRIORITY 1
Ticket aberto:
INCIDENT:
INC-1865-384400
SEVERITY:
P1
DESCRIPTION:
THREE USERS CURRENTLY TRAVELLING
BETWEEN EARTH AND MOON.
BUSINESS IMPACT:
SIGNIFICANT.Service Desk pergunta:
“Consegue enviar screenshot?”
Barbicane desliga o rádio.
🌍 O retorno
Sem entregar toda a aventura para quem ainda quiser ler Verne, existe uma característica fundamental nessas histórias:
o verdadeiro desafio nunca é simplesmente partir.
É sobreviver às consequências da partida.
Isso também vale para sistemas.
Criar aplicação:
20%Mantê-la durante décadas:
80%E talvez seja exatamente por isso que COBOL combina tão maravilhosamente com Júlio Verne.
Ambos pertencem a épocas que o presente frequentemente olha como antigas.
Ambos continuam sendo lidos.
Ambos sobrevivem às previsões de desaparecimento.
E ambos carregam uma estranha elegância de engenharia.
📚 1865 encontra 1959 encontra 2026
Nossa linha temporal fica maravilhosa:
1865
JÚLIO VERNE
DA TERRA À LUA
↓
1870
AO REDOR DA LUA
↓
1959
COBOL
↓
1969
APOLLO 11
↓
2026
IA + MAINFRAME + CLOUDEm pouco mais de um século, aquilo que era literatura virou engenharia.
E aquilo que era tecnologia revolucionária virou infraestrutura invisível.
Talvez essa seja uma das coisas mais fascinantes da história tecnológica.
O impossível possui prazo de validade.
🚀 Ontem ficção, amanhã produção
Em 1865:
homens viajando à Lua.
Fantasia.
Em 1969:
homens caminhando na Lua.
História.
Em outra época:
computador entendendo linguagem próxima do inglês.
Absurdo.
Depois:
COBOL.
Hoje:
conversar em linguagem natural com uma inteligência artificial capaz de gerar programas.
Normal.
Portanto tenha cuidado quando alguém disser:
“Isso nunca vai acontecer.”
Júlio Verne pode estar ouvindo.
🦖 E o velho COBOL?
COBOL observa tudo.
Nasceu quando computadores ainda eram gigantes.
Viu o homem chegar à Lua.
Viu ARPANET.
Viu Unix.
Viu PCs.
Viu Internet.
Viu smartphones.
Viu cloud.
Viu blockchain.
Viu IA generativa.
E continua executando:
PERFORM PROCESS-TRANSACTION
UNTIL END-OF-FILE.Talvez COBOL seja menos uma linguagem e mais uma testemunha histórica.
🌕 O último JOB
Imagino Júlio Verne entrando no Bellacosa Mainframe Center.
Ele observa um IBM Z moderno.
Pergunta:
— Quanto ele consegue calcular?
Respondemos:
— Bastante.
— Poderia calcular uma viagem à Lua?
— Facilmente.
Verne sorri.
— Então podemos usar meu canhão?
— Não.
— Por quê?
— A tripulação morreria instantaneamente.
Ele pensa.
— Podemos aumentar o tamanho?
Silêncio.
Agora entendemos de onde vieram os arquitetos corporativos.
☕ Epílogo — Da Terra ao Mainframe
Sala de operações.
03:14.
A cápsula finalmente retorna.
Sistema registra:
MISSION STATUS:
COMPLETEDDb2:
COMMIT COMPLETE.JES2:
$HASP395 MOONJOB ENDEDOperador abre o spool.
IEF142I MOONJOB STEP01
STEP WAS EXECUTED
MAXCC=0000Barbicane comemora.
Michel Ardan pede champanhe.
Nicholl pergunta pelos cálculos.
Júlio Verne fecha seu caderno.
E no fundo da sala o velho COBOLzeiro permanece desconfiado.
Ele olha novamente para o SYSOUT.
Confere os totais.
Confere a quantidade de passageiros.
PASSENGERS SENT...... 3
PASSENGERS RETURNED.. 3Agora sim.
Ele pega a caneca.
Toma café.
E finalmente declara:
“Pode fechar o incidente.”
Porque viajar até a Lua é impressionante.
Voltar é extraordinário.
Mas fazer tudo isso sem estourar um S0C7...
meu amigo...
isso sim é ficção científica.
🌕🚀☕🦖
IDENTIFICATION DIVISION.
PROGRAM-ID. FROM-EARTH-TO-MOON.
PROCEDURE DIVISION.
DISPLAY 'BON VOYAGE, MONSIEUR VERNE'.
STOP RUN.MAXCC=0000
Destination: Moon.
https://eljefemidnightlunch.blogspot.com/2026/08/o-spread-do-conhecimento-matrix-cobol-e.html
https://eljefemidnightlunch.blogspot.com/2026/08/quanto-custa-um-programador-salario.html
https://eljefemidnightlunch.blogspot.com/2026/08/delete-user-nao-apaga-memoria-o.html