Translate

domingo, 30 de agosto de 2020

🌧️ Bellacosa Otaku Blog — Parte 23: Expressões de Tristeza, Perda e Superação nos Animes 🌧️

 

:

🌧️ Bellacosa Otaku Blog — Parte 23: Expressões de Tristeza, Perda e Superação nos Animes 🌧️


💔 O idioma das lágrimas e da superação nos animes

(Versão Bellacosa: suspiros, silêncios pesados e o peso da emoção que toca o coração.)

Nos animes dramáticos, shoujo, slice of life ou seinen, o japonês transmite tristeza, saudade e coragem para seguir em frente.
Cada palavra carrega emoção profunda, tornando momentos de dor e superação memoráveis.
Vamos explorar as expressões mais tocantes! 😢


😭 1. 悲しい (kanashii)

Tradução: “Triste / doloroso.”
👉 Palavra clássica para expressar tristeza ou decepção.

📺 Anime vibe: Clannad, Your Lie in April, Anohana.
💬 Exemplo: “Kanashii… por que isso aconteceu comigo?” 💔


🥺 2. 寂しい (sabishii)

Tradução: “Solitário / sinto sua falta.”
👉 Usada para expressar saudade ou vazio emocional.

📺 Anime vibe: March Comes in Like a Lion, Anohana.
💬 Exemplo: “Sabishii… queria que você estivesse aqui.” 🌧️


😓 3. 悔しい (kuyashii)

Tradução: “Frustrante / irritante (por derrota ou erro).”
👉 Expressa sentimento de arrependimento ou derrota dolorosa.

📺 Anime vibe: Haikyuu!!, Naruto, March Comes in Like a Lion.
💬 Exemplo: “Kuyashii… eu podia ter feito melhor.” ⚡


😔 4. 後悔 (koukai)

Tradução: “Arrependimento / remorso.”
👉 Palavra profunda usada em dramas e momentos de reflexão.

📺 Anime vibe: Clannad, Your Lie in April.
💬 Exemplo: “Koukai… eu deveria ter falado a verdade antes.” 💭


🌫️ 5. 涙 (namida)

Tradução: “Lágrimas.”
👉 Palavra simbólica para momentos emocionantes, tristeza ou alívio.

📺 Anime vibe: Anohana, Your Lie in April, Clannad.
💬 Exemplo: “Namida escorreu sem que eu percebesse…” 😢


💔 6. 失う (ushinau)

Tradução: “Perder / perder alguém ou algo importante.”
👉 Expressa dor de perda ou separação.

📺 Anime vibe: Anohana, Clannad: After Story.
💬 Exemplo: “Ushinau algo tão valioso dói demais.” 💔


🌟 7. 頑張れ (ganbare)

Tradução: “Força! / Continue firme!”
👉 Palavra de incentivo, usada para superar momentos difíceis.

📺 Anime vibe: March Comes in Like a Lion, Haikyuu!!.
💬 Exemplo: “Ganbare… você consegue superar isso.” 💪


🕊️ 8. 前に進もう (mae ni susumou)

Tradução: “Vamos seguir em frente.”
👉 Expressão de superação e motivação após tristeza ou perda.

📺 Anime vibe: Your Lie in April, Clannad.
💬 Exemplo: “Mae ni susumou… apesar de tudo, precisamos continuar.” 🌈


🌧️ 9. 忘れない (wasurenai)

Tradução: “Não vou esquecer / sempre lembrarei.”
👉 Palavra carregada de lembrança, memória e saudade.

📺 Anime vibe: Anohana, Clannad: After Story.
💬 Exemplo: “Wasurenai… você sempre estará no meu coração.” 💌


💫 10. 希望 (kibou)

Tradução: “Esperança.”
👉 Palavra de luz nos momentos de dificuldade, representando força para recomeçar.

📺 Anime vibe: March Comes in Like a Lion, Your Lie in April.
💬 Exemplo: “Kibou… mesmo no sofrimento, ainda há futuro.” 🌟


🏮 Curiosidades Bellacosa:

  • Palavras como kanashii, sabishii e kuyashii transmitem nuances diferentes de tristeza — desde saudade até frustração.

  • Expressões de superação (ganbare, mae ni susumou) equilibram drama com esperança, criando impacto emocional.

  • Termos de memória e lembrança (wasurenai, namida) tornam cenas de despedida ou perda inesquecíveis. 🌧️💖


🌟 Dica Bellacosa:

  • Observe tom de voz, silêncio e expressão facial: o peso emocional está tanto nas pausas quanto nas palavras.

  • Frases curtas podem ser mais impactantes do que monólogos longos — a emoção se sente nas entrelinhas.

  • Memorizar essas expressões ajuda a sentir e compreender os dramas e momentos emocionais dos animes. 😢


🌸 Conclusão Bellacosa:

As expressões de tristeza, perda e superação nos animes transformam o japonês em uma linguagem de emoção crua e esperança.
Cada palavra, lágrima e gesto revela vulnerabilidade e força, permitindo que o espectador viva junto a dor e a superação dos personagens.

“Namida caiu, sabishii ficou… mas ganbare, mae ni susumou, kibou nos guia.” 🌧️💫

sábado, 29 de agosto de 2020

DONA MERCEDES — O CORE SYSTEM DA MINHA VIDA

 


EL JEFE MIDNIGHT LUNCH

DONA MERCEDES — O CORE SYSTEM DA MINHA VIDA

por Bellacosa Mainframe

Há datas que não se apagam.
Algumas viram cicatriz. Outras viram tatuagem na alma.
29 de agosto de 2010 foi as duas coisas: um abend definitivo no coração deste escriba, o desligamento do sistema mais importante que já conheci — minha mãe.

Dona Mercedes não foi apenas minha mãe.
Foi coautora, debugger emocional, analista de suporte vital, e personagem coadjuvante — embora essencial — em cada aventura dessa minha existência meio torta, meio épica, cheia de riso, pancada, poeira, fusquinhas vermelhos, latrinas assassinas e caminhos improváveis.

E em todas essas histórias que o leitor fiel do El Jefe Midnight Lunch já conhece, sempre havia um dedinho de Dona Mercedes ali, escondido entre as linhas, como quem mexe na memória do mainframe e injeta amor sem ninguém perceber.









🌾 ORIGEM: O PRIMEIRO BOOT DO SISTEMA

Dona Mercedes nasceu em Cornélio Procópio, no Paraná, filha de colonos vivendo em um regime duro, daqueles em que o suor era mais constante que o sol.
Família grande, terra pouca, dívida muita.
Vida que começava cedo, sem tutorial, sem manual, sem help desk.

Antes mesmo de entender o mundo, ela já criava irmãos, ajudava no plantio, e trabalhava como babá e empregada doméstica ainda menina.
Estudar?
Não teve essa luxury feature.
A escola dela foi a vida — e foi mestra severa.


🏙 MIGRAÇÃO PARA SÃO PAULO — O PRIMEIRO UPGRADE

Veio para São Paulo com o primário, coragem no bolso e esperança no coração.
Trabalhou a vida inteira.
E ainda arrumou espaço para amar, casar, ter cinco filhos — onde este humilde escriba Bellacosa foi o terceiro processo na fila do batch.

Foram 15 anos de casamento com meu pai, entre brigas, separações, reconciliações e, por fim, o divórcio.
Mas Dona Mercedes era daquelas que faz IPL após desastre:
cai, levanta, recompila, segue.

Quando finalmente veio a separação definitiva — e isso é curioso — a família ganhou estabilidade.
Eu já trabalhava, ajudava em casa, e a vida de penúria foi sendo gradualmente apagada do spool.


🏡 1995 — A CONSTRUÇÃO DO PROJETO MERCEDES

Com sacrifício, suor e fé na marreta, comprei em 1995 o terreno onde futuramente ergueríamos a casinha dela.
A fortaleza.
O castelo possível.

Em 1999, levei para Itatiba a mulher que passou a vida carregando o mundo nas costas.
Ela finalmente teve paz.
Sol.
Rotina.
Família por perto.
E risadas — muitas risadas.

Porque Dona Mercedes sempre foi festeira por natureza.
Se tivesse existido carnaval no interior do Paraná, ela seria porta-bandeira.








✈️ 2005 e 2009 — O SONHO DA MENINA DO PARANÁ

Eu jamais esqueço da cena: minha maezinha — a antiga menina da roça — caminhando pelas ruas de Portugal, olhando castelos, azulejos, igrejas centenárias…
Era como se o mundo dissesse a ela:

“Olha onde você chegou.
Olha o tamanho da sua força.”

Levei-a novamente em 2009, porque memórias boas devem ser replicadas como backup redundante e conhecer o novo membro da famiglia: Luis Renato.


❤️ SAÚDE, LUTA E O ÚLTIMO BATTLE MODE

Mas a vida cobra.
E ela cobrou cedo.

A febre reumática que minha mãe pegou ainda criança, sem remédio, sem recurso, sem hospital, acabou por danificar a válvula aórtica.
Diagnóstico só veio em 1979, quando ela estava grávida do Dandan.

Foram quatro cirurgias.
Quatro batalhas épicas de alguém que já tinha lutado demais.

Na última, o corpo cansou.
E em 29/08/2010, minha maezinha partiu aos 56 anos.

Jovem demais.
Boa demais.
Importante demais.


🧩 A PEÇA QUE UNI A FAMÍLIA

Dona Mercedes não era só mãe.
Era o elo agregador, o middleware emocional, o sistema de mensagem que mantinha todos conectados.
Sabia de tudo.
Contava tudo.
Armazenava cada pequena vitória ou drama dos filhos como se fossem registros preciosos.
Era o nosso CICS familiar: sempre ativa, sempre atendendo requisições, sempre resolvendo tranqueira.


🕊 SAUDADES QUE FICAM

Hoje, quando puxo na memória todas as cidades, poeiras, aventuras, fusquinhas, poços cheios de brinquedos, latrinas assassinas, aranhas, escorpiões, galinhas psicopatas e odisséias interioranas…
Em todas elas, lá estava ela.
Mesmo quando não estava fisicamente — estava na intenção, no conselho, no afeto.

A verdade é simples e brutal:
Eu só fui quem fui porque Dona Mercedes existiu.
E sigo sendo quem sou porque ela ainda existe — aqui, no código-fonte da minha alma.


Conway's Law Rules : Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

 

Bellacosa Mainframe e a conways law rules

☕ Um Café no Bellacosa Mainframe

Conway's Law Rules sem Mistérios

Quando um Programador COBOL Descobriu que a Matrix Não Era Apenas um Software… Era o Espelho de Quem a Construiu

"As organizações desenham sistemas que refletem sua própria forma de comunicação."Melvin Conway (1967)


Prólogo — A Matrix Tinha o Mesmo Formato de Zion

Neo caminhava pelos corredores da Cidade das Máquinas.

Esperava encontrar servidores.

Processadores.

Centrais de controle.

Mas encontrou algo muito mais curioso.

Cada setor da Matrix era administrado por um grupo diferente.

O setor dos Agentes nunca conversava diretamente com o setor do Oráculo.

O setor do Merovíngio possuía seus próprios protocolos.

O Chaveiro trabalhava isolado.

Os Sentinelas recebiam ordens por outro canal.

Neo percebeu algo estranho.

Cada módulo da Matrix parecia exatamente igual ao departamento que o desenvolvia.

Morpheus perguntou:

— O que está vendo?

Neo respondeu:

— Não estou olhando apenas para um software...

Estou olhando para o organograma da empresa.

O Oráculo sorriu.

— Finalmente você encontrou a Lei de Conway.


O que é a Lei de Conway?

A Conway's Law afirma:

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

Em português:

"As organizações que desenvolvem sistemas acabam produzindo arquiteturas que refletem sua própria estrutura de comunicação."

Ou seja...

O software não nasce apenas das decisões técnicas.

Ele nasce da forma como as pessoas trabalham juntas.


A origem da Lei de Conway

A lei foi proposta em 1967 por Melvin E. Conway, cientista da computação.

Na época, Conway observou algo curioso.

Empresas organizadas em departamentos independentes acabavam criando softwares igualmente divididos.

Não era coincidência.

Era consequência direta da comunicação humana.

Décadas depois, essa observação continua sendo uma das ideias mais influentes da arquitetura de software.


Matrix explica perfeitamente

Imagine que a Matrix fosse construída por quatro equipes.

Equipe A.

Cuida da autenticação.

Equipe B.

Cuida da economia.

Equipe C.

Cuida dos Agentes.

Equipe D.

Cuida dos Sentinelas.

Se essas equipes quase não conversam...

o software também ficará separado.

Cada módulo desenvolverá sua própria visão da realidade.


O nascimento da Lei

Conway percebeu que a arquitetura técnica segue a arquitetura social.

Se duas equipes possuem dificuldades para conversar...

os sistemas também terão dificuldades para se integrar.


O COBOL conhece isso muito bem

Imagine um grande banco.

Departamento de Cartões.

Equipe própria.

Sistema próprio.


Departamento de PIX.

Equipe diferente.

API diferente.


Departamento de Crédito.

Outro time.

Outro banco de dados.


Departamento de Investimentos.

Outro padrão.

Outro framework.

O resultado?

Integrações complexas.

Duplicação de dados.

Interfaces difíceis.

Não porque os desenvolvedores desejavam isso.

Mas porque a organização já funcionava dessa maneira.


Um exemplo simples

Empresa.

Financeiro

RH

Comercial

Software.

Sistema Financeiro

Sistema RH

Sistema Comercial

Parece natural.

Agora imagine.

Cada departamento possui regras próprias de cadastro.

Logo surgem:

  • três cadastros de clientes;

  • quatro cadastros de funcionários;

  • cinco cadastros de endereços.

O software apenas refletiu a organização.


Matrix Reloaded

Observe os personagens.

O Oráculo não faz o trabalho do Arquiteto.

O Merovíngio não administra Zion.

O Chaveiro não controla os Agentes.

Cada grupo possui funções próprias.

Agora imagine.

Nenhum deles conversa.

A Matrix rapidamente se fragmentaria.


O efeito psicológico

As pessoas tendem a conversar mais com quem está próximo.

Mesmo dentro da mesma empresa.

Logo.

Os sistemas acompanham essa divisão.


O Programador COBOL Padawan

Imagine que você trabalhe no time de CICS.

Nunca conversa com o pessoal de APIs.

Nem conhece a equipe de Open Finance.

Depois de dois anos...

as integrações começam a falhar.

Não por culpa do COBOL.

Mas porque a comunicação humana falhou antes da comunicação entre sistemas.


O Agente Smith adora isso

Smith sabe que basta dividir as pessoas.

O restante acontece sozinho.

Cada equipe cria:

  • padrões próprios;

  • nomenclaturas próprias;

  • APIs próprias;

  • documentação própria.

Pouco tempo depois.

Os sistemas deixam de conversar.


Um exemplo inspirado na Matrix

Neo pergunta.

— Quem controla o cadastro dos humanos?

Resposta.

— Depende.

A equipe dos Agentes possui um.

O Merovíngio outro.

O Oráculo outro.

Zion outro.

Neo pergunta.

— Por que existem quatro?

O Arquiteto responde.

— Porque existiam quatro departamentos.


Como reconhecer?

Existem sinais muito claros.

APIs incompatíveis

Cada área cria seu padrão.


Bancos duplicados

Mesma informação.

Vários lugares.


Nomenclaturas diferentes

CPF.

CPF_NUM.

DOCUMENTO.

CLIENT_ID.

Tudo significa a mesma coisa.


Integrações difíceis

Equipes precisam negociar constantemente.


Regras repetidas

Cada departamento implementa novamente.


O impacto no Mainframe

Grandes ambientes IBM Z frequentemente atendem diversas áreas de negócio.

Se cada área evolui isoladamente.

Logo aparecem:

  • duplicação de COPYBOOKs;

  • layouts diferentes;

  • APIs redundantes;

  • programas semelhantes;

  • tabelas quase idênticas.

Tudo consequência da estrutura organizacional.


Curiosidade

Existe um conceito moderno chamado:

Reverse Conway Maneuver

A ideia é justamente o contrário.

Em vez de deixar a arquitetura seguir a organização...

a empresa reorganiza as equipes para produzir a arquitetura desejada.

Se deseja microsserviços independentes.

Cria equipes independentes.

Se deseja plataforma integrada.

Organiza equipes integradas.


Atenção!

Conway's Law não é uma crítica.

Ela é uma observação.

Toda organização sofre sua influência.

O importante é reconhecê-la.


O custo invisível

Quando departamentos não conversam.

Surgem:

  • retrabalho;

  • integrações caras;

  • conflitos de requisitos;

  • inconsistências.

Tudo isso custa tempo.

Dinheiro.

CPU.

Produtividade.


O papel do Arquiteto

Arquitetos não desenham apenas software.

Eles aproximam equipes.

Porque sabem.

Sem comunicação.

Não existe boa arquitetura.


Matrix e Zion

Imagine Zion dividida.

Cada setor constrói um pedaço da cidade.

Sem conversar.

Resultado.

Canos que não se conectam.

Cabos incompatíveis.

Portas que não levam a lugar nenhum.

Software funciona exatamente assim.


Ferramentas ajudam

Hoje usamos:

  • Enterprise Architecture.

  • Event Storming.

  • Domain Driven Design.

  • IBM ADDI.

  • OpenAPI.

  • AsyncAPI.

  • Catálogos corporativos.

Mas nenhuma ferramenta substitui comunicação humana.


O papel da IA

A IA pode:

  • documentar APIs;

  • comparar contratos;

  • identificar duplicações;

  • sugerir padronizações.

Mas não resolve conflitos organizacionais.


Os riscos

Sistemas duplicados


APIs redundantes


Custos maiores


Integrações frágeis


Visão fragmentada do negócio


Arquitetura inconsistente


Erros clássicos

  • Criar sistemas sem envolver outras áreas.

  • Duplicar cadastros.

  • Não compartilhar padrões.

  • Cada equipe inventar sua arquitetura.

  • Ignorar governança.


Boas práticas

  • Comunicação frequente.

  • Arquitetura corporativa.

  • Catálogo de APIs.

  • Padrões comuns.

  • Revisões interequipes.

  • Compartilhamento de conhecimento.

  • Domínios bem definidos.


Aplicabilidade

A Lei de Conway aparece em:

  • COBOL.

  • Java.

  • Cloud.

  • Microsserviços.

  • ERP.

  • APIs.

  • DevOps.

  • Bancos.

  • Governo.

  • Telecom.

Ela independe da tecnologia.


Um exemplo COBOL

Imagine.

Equipe A.

Cria COPYBOOK:

CLIENTE.

Equipe B.

Cria outro.

CLIENTE-NEW.

Equipe C.

Outro.

CLIENTE-V2.

Nenhum é compatível.

O problema começou muito antes do compilador.


O ensinamento do Oráculo

O Oráculo leva Neo até um enorme espelho.

Cada equipe da Matrix aparece refletida.

Depois o espelho se transforma.

Agora revela o software.

Neo percebe algo impressionante.

As divisões eram exatamente iguais.

Ela pergunta:

— O que mudou?

Neo responde.

— Nada.

O software apenas copiou as pessoas.

Ela sorri.

"É exatamente isso que Conway descobriu."


Lições para um Programador COBOL Padawan

Ao iniciar sua carreira em um ambiente corporativo, você perceberá que muitos desafios técnicos têm origem muito antes do código ser escrito.

Às vezes o problema não está no COBOL, no CICS ou no Db2.

Está no fato de que:

  • as equipes não compartilham conhecimento;

  • cada área cria suas próprias definições;

  • os requisitos chegam incompletos;

  • não existe uma linguagem comum entre negócio e tecnologia.

Por isso, desenvolva não apenas habilidades técnicas.

Aprenda também a:

  • comunicar-se claramente;

  • participar de revisões arquiteturais;

  • documentar decisões;

  • compreender o domínio de negócio;

  • construir pontes entre equipes.

Grandes arquitetos de software são, antes de tudo, excelentes comunicadores.


Curiosidades

A influência da Lei de Conway é tão grande que ela aparece indiretamente em diversos movimentos modernos:

  • Domain-Driven Design (DDD) incentiva equipes alinhadas aos domínios de negócio.

  • Team Topologies propõe estruturas organizacionais que favorecem fluxos de software saudáveis.

  • Microservices funcionam melhor quando as equipes possuem autonomia compatível com os serviços que mantêm.

  • DevOps surgiu justamente para reduzir barreiras entre desenvolvimento e operações.

Todos esses movimentos reconhecem, de alguma forma, a observação feita por Melvin Conway em 1967.


Conclusão — A Matrix Refletia Quem a Construía

No universo Matrix, Neo descobriu que a simulação não era apenas um conjunto de programas.

Ela refletia as decisões, os conflitos e a forma como seus criadores trabalhavam.

Na Engenharia de Software acontece exatamente o mesmo.

A Lei de Conway nos lembra que sistemas não são produzidos apenas por compiladores ou linguagens de programação.

Eles são produzidos por pessoas.

Se as equipes colaboram, o software tende a ser integrado.

Se as equipes vivem isoladas, o software também se fragmenta.

Para um Programador COBOL que atua em ambientes IBM Z, essa é uma lição valiosa. O sucesso de um sistema bancário depende tanto da qualidade do código quanto da qualidade da comunicação entre analistas de negócio, arquitetos, desenvolvedores, DBAs, administradores CICS, especialistas em segurança e operações.

No universo Bellacosa Mainframe existe uma máxima que certamente poderia estar gravada na entrada de Zion:

"Antes de desenhar a arquitetura do software, observe a arquitetura da empresa. Muito provavelmente uma será o reflexo da outra."

Porque, no fim, a Matrix nunca foi apenas feita de linhas de código.

Ela sempre foi feita das pessoas que aprenderam — ou deixaram de aprender — a trabalhar juntas.

sexta-feira, 28 de agosto de 2020

DotCom : Capítulo VIII — Das Cinzas ao Renascimento: Como o Colapso das Dot-Com Preparou o Mundo para a Era Digital

 

Bellacosa Mainframe e o estouro da bolha dotcom capitulo viii

Capítulo VIII — Das Cinzas ao Renascimento: Como o Colapso das Dot-Com Preparou o Mundo para a Era Digital

Por que a maior crise da Internet foi, paradoxalmente, o evento que tornou possível o nascimento de Google, Facebook, YouTube, smartphones, computação em nuvem e Inteligência Artificial

"Uma floresta devastada por um incêndio parece morta. Mas, sob a terra, as sementes finalmente encontram espaço para crescer."

À primeira vista, o estouro da bolha da Internet parece uma história de fracasso.

Empresas quebraram.

Investidores perderam fortunas.

Milhares de profissionais ficaram desempregados.

Projetos desapareceram.

Wall Street entrou em pânico.

Entretanto...

Se observarmos a história com um pouco mais de distância, perceberemos algo surpreendente.

A bolha não destruiu a revolução digital.

Ela a tornou possível.

Pode parecer contraditório.

Mas muitas das empresas que hoje dominam nossa vida cotidiana só conseguiram crescer porque a crise eliminou os excessos da primeira geração da Internet.

Foi como uma gigantesca atualização de software.

Dolorosa.

Cara.

Mas necessária.


A Internet Sobreviveu

Existe um erro muito comum quando se fala sobre o ano 2000.

As pessoas imaginam que a Internet quase desapareceu.

Nada poderia estar mais distante da realidade.

Na verdade...

Enquanto investidores fugiam das ações de tecnologia, engenheiros continuavam trabalhando.

Cabos continuavam sendo instalados.

Servidores continuavam sendo fabricados.

Protocolos continuavam evoluindo.

Universidades continuavam pesquisando.

Empresas continuavam conectando filiais.

A infraestrutura da Internet nunca parou de crescer.

Quem entrou em crise foi o mercado financeiro.

Não a tecnologia.

Essa distinção é extremamente importante.


A Infraestrutura Ficou Pronta

Durante a euforia das Dot-Com foram investidos bilhões de dólares em infraestrutura.

Data centers.

Cabos submarinos.

Centrais telefônicas.

Equipamentos ópticos.

Backbones internacionais.

Links de alta velocidade.

Na época, muitos analistas afirmavam que havia capacidade demais.

Parecia desperdício.

Mas alguns anos depois...

Essa mesma infraestrutura permitiu uma explosão de crescimento.

É uma ironia fascinante.

Boa parte da Internet moderna utiliza uma base construída justamente durante a bolha.

O investimento parecia exagerado.

O tempo mostrou que ele apenas havia chegado cedo demais.


A Banda Larga Mudou Tudo

No início dos anos 2000 começou outra transformação silenciosa.

A Internet discada começou a ser substituída por conexões de banda larga.

Pela primeira vez, os computadores permaneciam conectados o tempo todo.

Adeus ao barulho do modem.

Adeus à linha telefônica ocupada.

Adeus à espera para estabelecer conexão.

Essa mudança alterou completamente a maneira como as pessoas utilizavam a Internet.

Ela deixou de ser uma atividade ocasional.

Passou a fazer parte da rotina diária.

Foi uma mudança de comportamento.

E mudanças de comportamento costumam gerar novas oportunidades de negócios.


A Web Aprendeu a Conversar

Durante a primeira geração da Internet, a maioria dos sites era estática.

Empresas publicavam informações.

Usuários apenas liam.

Pouco depois da crise começou a surgir um conceito completamente diferente.

A Web participativa.

As pessoas deixaram de ser apenas consumidoras.

Passaram a produzir conteúdo.

Escrever.

Fotografar.

Comentar.

Compartilhar.

Avaliar.

Nascia aquilo que mais tarde seria conhecido como Web 2.0.

A Internet deixava de ser uma biblioteca.

Transformava-se numa gigantesca praça pública.


Google Encontrou Seu Momento

Quando a poeira da crise começou a baixar, o Google estava preparado.

Sua infraestrutura crescia.

Seu algoritmo melhorava.

Seu modelo de publicidade tornava-se extremamente eficiente.

Enquanto centenas de concorrentes desapareciam, o Google concentrava cada vez mais usuários.

O curioso é que sua maior vantagem não era apenas tecnológica.

Era econômica.

Cada pesquisa gerava informações valiosas.

Cada anúncio era mais relevante.

Cada clique aperfeiçoava o sistema.

Criava-se um ciclo virtuoso.

Quanto mais pessoas utilizavam o Google...

Melhor ele ficava.


Amazon Deixou de Ser Apenas uma Livraria

Outro sobrevivente aproveitou o período para se reinventar.

A Amazon começou vendendo livros.

Mas Jeff Bezos nunca desejou construir apenas uma livraria online.

Seu objetivo era criar "a loja de tudo".

Após sobreviver à bolha, a empresa acelerou sua expansão.

Vieram:

eletrônicos.

roupas.

brinquedos.

computadores.

móveis.

alimentos.

E, posteriormente...

Serviços em nuvem.

Poucos imaginavam que uma empresa criada para vender livros se tornaria uma das maiores fornecedoras mundiais de infraestrutura para Inteligência Artificial.

Mas foi exatamente isso que aconteceu.


O Nascimento da Computação em Nuvem

Existe uma conexão direta entre a bolha da Internet e a computação em nuvem.

Durante a crise, muitas empresas perceberam que manter enormes infraestruturas próprias era caro.

Ao mesmo tempo, gigantes como Amazon possuíam data centers subutilizados.

A solução parecia natural.

Alugar capacidade computacional.

Em vez de comprar servidores...

Empresas passariam a contratar processamento sob demanda.

Hoje chamamos isso de Cloud Computing.

Na época era uma ideia revolucionária.

Mais uma vez...

A crise incentivou eficiência.


O Mundo Tornou-se Mobile

Enquanto a Internet amadurecia, outra revolução aproximava-se silenciosamente.

Os telefones celulares.

No início serviam apenas para chamadas.

Depois enviavam mensagens.

Pouco depois começaram a acessar páginas simples.

Então surgiu um dispositivo que mudaria tudo.

O smartphone.

Quando o iPhone foi lançado em 2007, encontrou uma Internet completamente diferente daquela de 1999.

Mais rápida.

Mais estável.

Mais madura.

A infraestrutura construída durante a bolha finalmente encontrou um ambiente capaz de utilizá-la plenamente.


Redes Sociais: A Segunda Onda

Pouco depois vieram:

Facebook.

YouTube.

LinkedIn.

Twitter.

Wikipedia.

Flickr.

Essas empresas nasceram em um mundo muito diferente daquele enfrentado pelas primeiras Dot-Com.

Agora existia:

banda larga.

computadores mais rápidos.

servidores mais baratos.

infraestrutura consolidada.

consumidores acostumados à Internet.

meios de pagamento mais seguros.

A primeira geração havia preparado o terreno.

A segunda pôde finalmente construir sobre ele.


Enquanto Isso... Os Mainframes Evoluíam Silenciosamente

Existe um aspecto pouco comentado dessa história.

Enquanto todos observavam o crescimento da Web, o universo corporativo também evoluía.

Mainframes passaram a oferecer:

Linux.

Java.

Serviços Web.

XML.

SOA.

Virtualização avançada.

Mais tarde vieram:

OpenShift.

Containers.

APIs REST.

Kubernetes.

Watsonx.

Aceleradores para Inteligência Artificial.

Ou seja...

O mainframe não ficou parado esperando o futuro.

Ele evoluiu junto com ele.

Talvez de maneira menos chamativa.

Mas extremamente consistente.


A Internet Aprendeu a Ganhar Dinheiro

Outra consequência importante da crise foi o amadurecimento dos modelos de negócios.

As empresas passaram a compreender melhor como gerar receita.

Publicidade segmentada.

Assinaturas.

Software como Serviço.

Marketplace.

Serviços financeiros.

Computação em nuvem.

Economia de plataforma.

Esses modelos praticamente definem a economia digital atual.

Curiosamente...

Quase todos foram refinados após o colapso das Dot-Com.


O Investidor Também Mudou

Os investidores aprenderam muito.

Antes financiavam praticamente qualquer startup.

Depois passaram a analisar:

modelo de negócios.

custos.

retenção de clientes.

receita recorrente.

fluxo de caixa.

capacidade de execução.

Não significa que novas bolhas nunca mais ocorreram.

Mas a qualidade das análises tornou-se muito maior.

Pelo menos durante algum tempo.


A Computação Entrou na Vida de Todos

Talvez a consequência mais profunda da crise tenha sido cultural.

Nos anos 1980, computadores eram ferramentas de especialistas.

Nos anos 1990, tornaram-se objetos domésticos.

Nos anos 2000, passaram a conectar pessoas.

Na década seguinte tornaram-se companheiros permanentes através dos smartphones.

Hoje...

A Inteligência Artificial amplia novamente essa transformação.

Tudo isso faz parte da mesma jornada iniciada muito antes da bolha.


O Paralelo com a Inteligência Artificial

Estamos vivendo algo parecido.

Existe enorme entusiasmo.

Investimentos bilionários.

Milhares de startups.

Novos modelos surgindo praticamente todos os meses.

Provavelmente veremos empresas desaparecerem.

Outras serão adquiridas.

Algumas mudarão completamente de estratégia.

Entretanto...

Mesmo que isso aconteça, a Inteligência Artificial continuará evoluindo.

Assim como aconteceu com a Internet.

A tecnologia não depende do destino individual de cada empresa.

Ela continua seu caminho.


A Grande Ironia da História

Se a bolha da Internet nunca tivesse existido...

Talvez a revolução digital fosse muito mais lenta.

Parece estranho afirmar isso.

Mas pense.

A euforia atraiu investimentos gigantescos.

Esses investimentos construíram infraestrutura.

Essa infraestrutura permaneceu.

Anos depois, novas empresas utilizaram exatamente essa base para criar produtos muito mais maduros.

Em outras palavras.

O dinheiro especulativo desapareceu.

Os cabos ficaram.

Os data centers ficaram.

Os engenheiros ficaram.

O conhecimento ficou.

As lições ficaram.

E foi exatamente isso que possibilitou o nascimento da Internet moderna.


Lições para o Padawan COBOL

Um programa COBOL raramente nasce perfeito.

Ao longo dos anos ele recebe correções.

Melhorias.

Novos módulos.

Integrações.

Refatorações.

Depois de décadas, muitas vezes continua executando sua função original, mas tornou-se muito mais robusto.

A Internet passou pelo mesmo processo.

A bolha das Dot-Com foi um enorme "debug" coletivo.

Ela eliminou erros de arquitetura empresarial, expôs modelos insustentáveis e obrigou toda a indústria a amadurecer.

No universo da Frota Estelar existe uma máxima entre os engenheiros da USS Enterprise:

"Nenhuma nave chega à classe Galaxy sem antes aprender com os erros das classes anteriores."

A Internet também.

A primeira geração abriu o caminho.

A segunda consolidou a economia digital.

A terceira trouxe computação em nuvem e smartphones.

A quarta nos conduz agora à era da Inteligência Artificial.

Cada geração parece completamente nova.

Na realidade...

Todas são capítulos da mesma história.

E é justamente essa continuidade que um bom engenheiro — seja de software, seja de sistemas mainframe — aprende a enxergar.

No próximo capítulo veremos como a bolha das Dot-Com mudou definitivamente a forma como investidores, empresas e governos passaram a avaliar tecnologia, inaugurando uma nova era de governança, gestão de riscos e inovação sustentável.

quinta-feira, 27 de agosto de 2020

Laboratório Prático — Primeiros Passos no TSO/ISPF

 

Bellacosa Mainframe laboratorio pratico TSO/IPSF

☕ Um Café no Bellacosa Mainframe

Laboratório Prático — Primeiros Passos no TSO/ISPF

Criando Data Sets no z/OS (PDS, PDSE e Sequential)

Este laboratório foi pensado para quem nunca utilizou o TSO/ISPF. O objetivo é ensinar a criar os tipos de datasets mais comuns utilizados por um desenvolvedor COBOL.

Ao final você saberá criar:

  • ✔ PDS FB 80

  • ✔ PDSE FB 80

  • ✔ PDS Undefined (U)

  • ✔ PDSE Undefined (U)

  • ✔ Sequential (QSAM) FB 200

  • ✔ Sequential (QSAM) VB 4000


Objetivos

Durante este laboratório você aprenderá

  • navegar pelo ISPF

  • utilizar o painel Allocate Dataset

  • entender RECFM

  • entender LRECL

  • entender BLKSIZE

  • compreender Directory Blocks

  • diferenciar PDS e PDSE


Pré-requisitos

Possuir acesso ao

  • TSO

  • ISPF

  • opção 3.2 (Data Set Utility)


Conceitos antes de começar

Dataset Sequential (PS)

Armazena um único fluxo de dados.

Exemplos

  • arquivos de entrada

  • arquivos de saída

  • arquivos temporários

Representação

USERID.CLIENTES

Dataset Particionado (PDS)

Funciona como uma pasta.

Dentro dele existem vários membros.

USERID.COBOL

   PROG001
   PROG002
   COPYCLI
   COPYEND

Dataset Particionado Estendido (PDSE)

É uma evolução do PDS.

Possui

  • melhor performance

  • reutilização automática do espaço

  • elimina compressão

  • maior confiabilidade

Hoje praticamente todos os ambientes novos utilizam PDSE.


O que significa RECFM?

RECFMSignificado
FBFixed Block
VBVariable Block
UUndefined

O que significa LRECL?

É o tamanho máximo lógico de cada registro.

Exemplo

FB 80

Registro 1 -> 80 bytes
Registro 2 -> 80 bytes
Registro 3 -> 80 bytes

VB 4000

Registro 1 -> 250 bytes

Registro 2 -> 1200 bytes

Registro 3 -> 3998 bytes

Laboratório 1

Criando um PDS FB 80

Entre no ISPF

===> 3

Depois

===> 2

Aparecerá

Data Set Utility

Informe

A

de Allocate

Digite o nome

USERID.COBOL

Pressione ENTER


Preencha

Data Set Name . . USERID.COBOL

Management class . . .
Storage class . . . .
Volume serial . . . .

Device Type . . . . . 3390

Space Units . . . . . TRACK

Primary Quantity . . . 5

Secondary Quantity . . 2

Directory Blocks . . . 10

Record Format . . . . FB

Record Length . . . . 80

Block Size . . . . . . 0

Data Set Organization PO

Pressione ENTER.

Dataset criado.


Conferindo

Na opção

3.4

Digite

USERID.COBOL

Deverá aparecer

PO
FB
80

Laboratório 2

Criando um PDSE FB 80

Repita o procedimento.

Nome

USERID.COBOL.PDSE

Preencha igual ao anterior.

A única diferença:

Data Set Organization

PO-E

ou

LIBRARY YES

(depende da versão do ISPF)

Resultado

PDSE
FB
80

Laboratório 3

Criando um PDS Undefined

Nome

USERID.LOADLIB

Parâmetros

Primary 5

Secondary 2

Directory 20

RECFM U

LRECL 0

BLKSIZE 32760

DSORG PO

Esse dataset normalmente armazenará

  • Load Modules

  • Program Objects (em alguns ambientes usa-se PDSE)


Laboratório 4

Criando um PDSE Undefined

Nome

USERID.LOADLIB.PDSE

Parâmetros

Primary 5

Secondary 2

Directory 20

RECFM U

LRECL 0

BLKSIZE 32760

PO-E

Este é o formato utilizado na maioria das LOADLIB modernas.


Laboratório 5

Criando um Sequential FB 200

Nome

USERID.CLIENTES

Parâmetros

Primary 5

Secondary 2

Directory 0

RECFM FB

LRECL 200

BLKSIZE 0

DSORG PS

Resultado

PS
FB
200

Muito utilizado para

  • arquivos batch

  • exportações

  • importações

  • QSAM


Laboratório 6

Criando um Sequential VB 4000

Nome

USERID.CLIENTES.VB

Parâmetros

Primary 10

Secondary 5

Directory 0

RECFM VB

LRECL 4000

BLKSIZE 0

DSORG PS

Observe

No VB o sistema adiciona automaticamente um RDW (Record Descriptor Word) de 4 bytes ao armazenamento físico de cada registro. Assim, embora o LRECL seja 4000, o tamanho físico máximo do registro é 4004 bytes.


Como verificar se tudo foi criado

Acesse

3.4

Digite

USERID.*

Você deverá visualizar algo semelhante a:

DatasetOrganizaçãoRECFMLRECL
USERID.COBOLPOFB80
USERID.COBOL.PDSEPO-EFB80
USERID.LOADLIBPOU0
USERID.LOADLIB.PDSEPO-EU0
USERID.CLIENTESPSFB200
USERID.CLIENTES.VBPSVB4000

Exercício Extra 1

Crie um membro chamado

HELLO

dentro do PDS.

Digite

ISPF 3.4

E USERID.COBOL(HELLO)

Escreva

OLÁ MAINFRAME

Salve usando

PF3

Exercício Extra 2

Crie um membro

COPYCLI

no PDSE.

Digite

IDENTIFICACAO DO CLIENTE

Salve.


Exercício Extra 3

Edite o arquivo sequencial

USERID.CLIENTES

Inclua algumas linhas com exatamente 200 caracteres (o editor exibirá uma régua para ajudar) e observe o comportamento do editor ao ultrapassar o LRECL.


Exercício Extra 4

Edite

USERID.CLIENTES.VB

Insira linhas de comprimentos variados:

  • 30 bytes

  • 120 bytes

  • 850 bytes

  • 2500 bytes

  • 3990 bytes

Perceba que, em um arquivo VB, cada registro pode ter um tamanho diferente, desde que não ultrapasse o LRECL definido.


Desafio Bellacosa Mainframe ⭐⭐⭐

Sem consultar este material, crie os seguintes datasets:

NomeTipoRECFMLRECL
USERID.JCLPDSFB80
USERID.CNTLPDSEFB80
USERID.COBOLPDSEFB80
USERID.COPYLIBPDSEFB80
USERID.DCLGENPDSFB80
USERID.LOADLIBPDSEU0
USERID.INPUTPSFB200
USERID.OUTPUTPSFB200
USERID.RELATORIOPSVB4000
USERID.LOGPSVB4000

Ao concluir, você terá criado a estrutura básica utilizada em grande parte dos projetos COBOL no IBM z/OS, compreendendo não apenas como criar cada dataset, mas também por que cada formato é escolhido em ambientes de produção. Esse conhecimento servirá de base para os próximos laboratórios, nos quais esses datasets serão utilizados em programas COBOL, JCL, utilitários e processamento QSAM.

🔥 Top 10 Dark Fantasy +16 para Quem Descobriu que Nem Todo Mundo Paralelo Foi Compilado com Sucesso

 

Bellacosa Mainframe e a lista de anime dark fantasy +16

☕ Um Café no Bellacosa Mainframe

🔥 Top 10 Dark Fantasy +16 para Quem Descobriu que Nem Todo Mundo Paralelo Foi Compilado com Sucesso

🌑 O que é Dark Fantasy?

Se a fantasia tradicional é um sistema em produção funcionando normalmente, a Dark Fantasy é aquele ambiente legado onde ninguém sabe quem escreveu o código, os logs desapareceram, existem demônios em produção e o backup mais recente tem vinte anos.

Dark Fantasy mistura fantasia medieval, horror, tragédias, violência, dilemas morais e personagens que raramente conseguem um final feliz. Os protagonistas normalmente não são heróis perfeitos. Muitos são anti-heróis, mercenários, pessoas quebradas emocionalmente ou indivíduos tentando sobreviver em um mundo completamente hostil.

É um gênero que explora temas como:

  • corrupção do poder;

  • guerra;

  • religião;

  • preconceito;

  • monstros que representam a natureza humana;

  • sacrifício;

  • sobrevivência;

  • insanidade;

  • morte constante.

Para um Programador COBOL...

Dark Fantasy é quando alguém executa um JOB em produção... e descobre que o operador também invocou um demônio.

Diversas dessas obras possuem violência gráfica, sangue, nudez parcial, linguagem adulta e temas psicológicos pesados, sendo recomendadas para maiores de 16 ou 18 anos. (SensCritique)


🏆 TOP 10 DARK FANTASY +16


10 — Claymore (クレイモア)

Anime: 2007

Resumo

Num continente dominado pelos Yoma, monstros que devoram humanos, apenas as Claymores conseguem enfrentá-los.

Clare inicia uma jornada de vingança que lentamente revela uma conspiração muito maior.

Personagens

  • Clare

  • Teresa

  • Raki

  • Miria

  • Priscilla

Bellacosa Mainframe

Imagine um ambiente onde cada programador precisa instalar parte de um vírus em si mesmo para conseguir combater outro vírus.

Esse é Claymore.

Censura

Violência intensa.

Muito sangue.

Pouco fanservice.


9 — Goblin Slayer (ゴブリンスレイヤー)

Anime: 2018

Resumo

Enquanto aventureiros procuram dragões e grandes aventuras, um homem dedica toda sua existência a exterminar goblins.

O anime mostra que pequenas ameaças podem ser muito mais perigosas do que parecem.

Personagens

  • Goblin Slayer

  • Priestess

  • High Elf Archer

  • Dwarf Shaman

  • Lizard Priest

Bellacosa Mainframe

Todo novato quer modernizar o sistema.

O veterano sabe que o verdadeiro problema são aqueles pequenos bugs ignorados há décadas.

Censura

Violência extrema.

Aborda violência sexual de forma séria logo no início.

Não recomendado para públicos sensíveis. (The Times of India)


8 — Hellsing Ultimate (ヘルシング)

Anime: 2006

Resumo

A Organização Hellsing combate vampiros usando justamente o vampiro mais poderoso já existente.

Personagens

  • Alucard

  • Integra Hellsing

  • Seras Victoria

  • Anderson

Bellacosa Mainframe

É como contratar o maior hacker do planeta para proteger seu banco.

Funciona.

Mas todos dormem com um olho aberto.

Censura

Muito sangue.

Gore.

Violência pesada.


7 — Made in Abyss (メイドインアビス)

Anime: 2017

Resumo

Duas crianças exploram um gigantesco abismo cheio de criaturas fantásticas.

Cada camada torna o retorno praticamente impossível.

Personagens

  • Riko

  • Reg

  • Nanachi

  • Bondrewd

Bellacosa Mainframe

Parece um anime infantil.

Cinco episódios depois...

Você percebe que entrou num dump que ninguém consegue interpretar.

Censura

Violência psicológica intensa.

Algumas cenas extremamente perturbadoras.


6 — Devilman Crybaby (デビルマン Crybaby)

Anime: 2018

Resumo

Akira recebe poderes demoníacos para salvar a humanidade.

Mas talvez a própria humanidade seja o verdadeiro problema.

Personagens

  • Akira

  • Ryo

  • Miki

Bellacosa Mainframe

Quando o antivírus instala o próprio malware para combater outro malware.

Censura

Violência extrema.

Sexo.

Nudez.

Gore.


5 — Re:Zero kara Hajimeru Isekai Seikatsu (Re:ゼロから始める異世界生活)

Anime: 2016

Resumo

Subaru ganha a habilidade de voltar no tempo sempre que morre.

Só existe um detalhe...

Ele morre muitas vezes.

Personagens

  • Subaru

  • Emilia

  • Rem

  • Ram

  • Beatrice

Bellacosa Mainframe

É exatamente um ciclo infinito de:

ABEND
Restart
ABEND
Restart
ABEND
Restart

Até descobrir qual variável estava errada.

Censura

Violência moderada.

Temas psicológicos muito fortes. (SensCritique)


4 — Attack on Titan (進撃の巨人)

Anime: 2013

Resumo

Humanos vivem cercados por muralhas tentando sobreviver aos Titãs.

A história evolui para uma das maiores narrativas políticas dos animes modernos.

Personagens

  • Eren

  • Mikasa

  • Armin

  • Levi

  • Erwin

Bellacosa Mainframe

Começa como um incidente de produção.

Termina explicando a arquitetura completa do sistema.

Censura

Violência intensa.

Temas de guerra.


3 — Overlord (オーバーロード)

Anime: 2015

Resumo

Um jogador permanece preso dentro do MMORPG.

Só que agora ele é o Rei Supremo dos mortos-vivos.

Personagens

  • Ainz Ooal Gown

  • Albedo

  • Shalltear

  • Demiurge

  • Cocytus

Bellacosa Mainframe

O SYSADM resolveu nunca mais fazer LOGOFF.

Agora ele administra o datacenter inteiro.

Censura

Violência.

Execuções.

Humor negro.


2 — Dorohedoro (ドロヘドロ)

Anime: 2020

Resumo

Magos utilizam humanos como cobaias.

Um homem com cabeça de lagarto procura descobrir quem destruiu sua identidade.

Personagens

  • Caiman

  • Nikaido

  • En

  • Noi

  • Shin

Bellacosa Mainframe

É como entrar num ambiente onde todas as bases foram criptografadas... por diversão.

Censura

Violência gráfica.

Humor extremamente ácido.


🥇 1 — Berserk (ベルセルク)

Anime: 1997

Resumo

Considerado por muitos o maior Dark Fantasy já produzido.

Acompanha Guts, um mercenário tentando sobreviver num mundo onde guerra, religião e demônios caminham juntos.

Personagens

  • Guts

  • Griffith

  • Casca

  • Skull Knight

Bellacosa Mainframe

Se existisse um COBOL Grimdark...

Seria Berserk.

Nada funciona.

Tudo quebra.

Mas Guts continua executando o próximo JOB.

Censura

Violência extrema.

Temas adultos.

Tortura.

Trauma.

Conteúdo recomendado apenas para adultos. (IMDb)


💀 Dicas para quem quer entrar no gênero

  • Comece por Attack on Titan se nunca assistiu Dark Fantasy.

  • Re:Zero é excelente para quem gosta de isekai psicológico.

  • Claymore é perfeito para fãs de monstros e espadas.

  • Made in Abyss engana pela aparência, mas é um dos mais pesados emocionalmente.

  • Berserk continua sendo a principal referência do gênero e influenciou inúmeras obras posteriores. (SensCritique)


☕ Conclusão — A Escola Dark Fantasy

No universo Bellacosa Mainframe, cada anime desta lista representa uma "escola" diferente do gênero:

EscolaNotaEspecialidade
Berserk⭐⭐⭐⭐⭐A referência máxima do Dark Fantasy medieval
Made in Abyss⭐⭐⭐⭐⭐Horror psicológico e exploração
Re:Zero⭐⭐⭐⭐⭐Isekai sombrio e sofrimento cíclico
Attack on Titan⭐⭐⭐⭐⭐Guerra, política e tragédia
Dorohedoro⭐⭐⭐⭐☆Humor negro e fantasia caótica
Overlord⭐⭐⭐⭐☆Anti-herói e fantasia de poder sombria
Hellsing Ultimate⭐⭐⭐⭐☆Vampiros e ação ultraviolenta
Goblin Slayer⭐⭐⭐⭐☆Fantasia brutal e sobrevivência
Claymore⭐⭐⭐⭐☆Espadas, monstros e tragédia feminina
Devilman Crybaby⭐⭐⭐⭐☆Apocalipse, filosofia e horror existencial

Para um Padawan COBOL, a maior lição desses animes é simples: nem todo sistema pode ser consertado, nem toda batalha pode ser vencida, mas um bom profissional continua enfrentando o próximo desafio mesmo quando o log inteiro está vermelho. É essa perseverança, em mundos devastados ou em ambientes legados de missão crítica, que faz dos grandes protagonistas — e dos grandes engenheiros — figuras inesquecíveis.


Dijkstra versus COBOL : Quando um Cientista da Computação Declarou o Ensino de COBOL uma Ofensa Criminal… e o COBOL Continuou Pagando Salários, Aposentadorias e a Conta do Chá

 

Bellacosa Mainframe apresenta a guerra historica entre Dijkstra versus Cobol

☕ Um Café no Bellacosa Mainframe

Dijkstra versus COBOL sem Mistérios

Quando um Cientista da Computação Declarou o Ensino de COBOL uma Ofensa Criminal… e o COBOL Continuou Pagando Salários, Aposentadorias e a Conta do Chá

Existe uma fotografia bastante conhecida nos corredores virtuais da Computação. Nela aparece Edsger W. Dijkstra, um dos maiores cientistas da área, acompanhado da seguinte declaração:

“O uso de COBOL aleija a mente; seu ensino deveria, portanto, ser considerado uma ofensa criminosa.”

É uma frase delicada, equilibrada e diplomática, comparável a entrar em uma reunião de programadores COBOL, subir na mesa, derrubar o café do gerente de produção e anunciar:

— Senhores, vocês não apenas escolheram a linguagem errada. Vocês são vítimas de um crime intelectual.

Depois disso, espera-se que alguém toque um sino, um cavaleiro atravesse a sala montado em um cavalo imaginário e o programa da folha de pagamento continue executando normalmente, porque ele está em produção desde 1978 e não tem tempo para discussões filosóficas.

A frase de Dijkstra tornou-se uma das provocações mais famosas da história da programação. É citada por professores, estudantes, desenvolvedores, arquitetos, influenciadores tecnológicos e pessoas que aprenderam Python na terça-feira e, na quinta, já estavam publicando no LinkedIn que o mainframe morreria até o final do mês.

Mas o que Dijkstra realmente queria dizer?

Ele estava completamente errado?

O COBOL realmente prejudica a mente?

Por que uma linguagem tão criticada continua sendo utilizada?

E, principalmente, o que um programador COBOL iniciante pode aprender com essa antiga batalha entre a elegância acadêmica e o sistema que precisa fechar a contabilidade antes das seis da manhã?

Prepare o café, verifique o JOB CLASS, coloque o capacete e não alimente os acadêmicos depois da meia-noite. Vamos entrar no tribunal mais estranho da história da Computação.


1. O acusado entra no tribunal

De um lado do salão está Edsger Wybe Dijkstra, matemático, cientista da computação, defensor da programação estruturada e vencedor do Prêmio Turing.

Do outro lado está o COBOL, vestindo um terno cinza, carregando uma pasta cheia de registros de tamanho fixo e murmurando:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. REU-ABSOLVICAO.

O juiz pergunta:

— Nome?

— Common Business-Oriented Language.

— Profissão?

— Processamento comercial, financeiro, governamental, securitário e bancário.

— Idade?

— Prefiro não comentar.

— Acusação?

— Ter sobrevivido a todos os seus substitutos.

Na galeria, FORTRAN limpa os óculos. ALGOL observa com expressão superior. BASIC tenta entrar sem número de linha e é retirado por dois guardas. Java aparece quinze minutos atrasado porque ainda está inicializando a máquina virtual.

Para compreender o julgamento, precisamos conhecer o acusador.


Bellacosa Mainframe apresenta o professor Dijkstra

2. Quem foi Dijkstra?

Dijkstra não era simplesmente um programador mal-humorado que encontrou um código COBOL sem comentários e decidiu declarar guerra à humanidade.

Ele foi um dos nomes fundamentais da Ciência da Computação.

Entre suas contribuições estão:

  • o algoritmo de caminho mínimo que leva seu nome;

  • estudos sobre concorrência;

  • semáforos para sincronização de processos;

  • exclusão mútua;

  • programação estruturada;

  • raciocínio formal sobre programas;

  • defesa da eliminação do uso indiscriminado de GOTO;

  • métodos para demonstrar a correção de algoritmos.

Para Dijkstra, programação não deveria ser uma arte mística praticada por pessoas que digitavam comandos até o computador parar de reclamar.

Programar deveria ser uma atividade intelectual rigorosa, próxima da Matemática.

O programa não deveria apenas “parecer funcionar”.

Deveria ser possível compreender por que ele funcionava, provar suas propriedades e demonstrar que determinadas condições sempre seriam respeitadas.

Essa ideia parece óbvia hoje, especialmente quando falamos de sistemas bancários, aeronáuticos, médicos ou industriais. Contudo, nos primeiros tempos da programação, muitos programas eram construídos de maneira altamente improvisada.

Era o glorioso período histórico conhecido como:

“Digite alguma coisa, execute, receba um erro, altere três instruções, execute novamente e diga ao gerente que estamos quase terminando.”

Essa metodologia continua viva em muitos departamentos, mas atualmente recebe nomes mais modernos e apresentações em PowerPoint.


3. Por que Dijkstra atacava o COBOL?

A crítica não surgiu apenas porque o COBOL era antigo, comercial ou muito utilizado por empresas.

Dijkstra acreditava que uma linguagem de programação influenciava a forma de pensar de quem a utilizava.

Esse é um ponto importante.

Uma linguagem não é apenas uma ferramenta para traduzir ordens humanas em instruções de máquina. Ela oferece conceitos, limitações, estruturas e caminhos mentais.

Quem programa em Assembly pensa muito sobre registradores, endereços e instruções.

Quem programa em Lisp tende a pensar em listas, funções e recursão.

Quem programa em SQL aprende a descrever o resultado desejado, deixando para o banco decidir como encontrá-lo.

Quem programa em Java frequentemente pensa em objetos, classes, interfaces e em como transformar uma soma de dois números em uma arquitetura com dezessete arquivos.

O COBOL, especialmente nas primeiras décadas, incentivava uma programação fortemente procedural, baseada em registros, arquivos, seções e parágrafos.

Um programa típico podia ter:

  • uma enorme DATA DIVISION;

  • centenas de campos;

  • dezenas ou centenas de parágrafos;

  • muitos saltos;

  • inúmeros indicadores;

  • estruturas pouco modulares;

  • regras de negócio espalhadas por diferentes pontos.

Dijkstra temia que o contato prolongado com esse modelo criasse maus hábitos intelectuais.

Em outras palavras, ele não estava afirmando apenas que determinados programas COBOL eram ruins. Ele sugeria que a própria linguagem treinava o programador a pensar de maneira inadequada.

Naturalmente, afirmou isso com a suavidade de um elefante tentando entrar em uma loja de porcelana utilizando patins.


4. A sintaxe semelhante ao inglês

Um dos objetivos originais do COBOL era permitir que programas comerciais fossem compreendidos com mais facilidade por pessoas próximas ao negócio.

Veja este exemplo:

       IF SALDO-CLIENTE GREATER THAN LIMITE-CREDITO
           MOVE 'S' TO CLIENTE-BLOQUEADO
       ELSE
           MOVE 'N' TO CLIENTE-BLOQUEADO
       END-IF

Mesmo alguém sem grande experiência consegue perceber a intenção.

O saldo do cliente está sendo comparado com o limite de crédito. Dependendo do resultado, um indicador é alterado.

Essa legibilidade foi uma grande vantagem comercial.

Entretanto, para Dijkstra, a aparência de linguagem natural poderia criar uma falsa sensação de simplicidade.

O fato de uma instrução parecer inglês não significa que o programa inteiro seja simples.

Observe:

       IF CLIENTE-ATIVO
           IF SALDO-DEVEDOR
               IF NOT ACORDO-VIGENTE
                   IF DIAS-ATRASO GREATER THAN 30
                       PERFORM BLOQUEAR-CONTA
                   END-IF
               END-IF
           END-IF
       END-IF

A leitura ainda é possível, mas a complexidade cresce.

Agora imagine esse tipo de lógica repetido em milhares de linhas, com campos de nomes parecidos, regras alteradas durante quarenta anos e comentários escritos por alguém chamado Osvaldo que se aposentou antes da invenção do telefone celular.

A linguagem parece natural.

A regra de negócio, porém, pode ter a clareza de uma reunião parlamentar transmitida por rádio durante uma tempestade.


5. O problema não era apenas o COBOL

Aqui está uma curiosidade importante: Dijkstra criticava muitas coisas.

Ele criticou o uso indiscriminado de GOTO.

Criticou BASIC.

Criticou linguagens excessivamente permissivas.

Criticou práticas de desenvolvimento pouco rigorosas.

Provavelmente criticaria sua variável chamada X2-FLAG-AUX-FINAL-NOVO.

Talvez também criticasse o nome PROGRAMA-FINAL-V2-AGORA-VAI.

Dijkstra defendia que a dificuldade da programação deveria ser controlada por estruturas formais e raciocínio disciplinado.

Ele não estava interessado em saber se o programa “rodou duas vezes sem erro”.

Queria saber se havia razões sólidas para confiar nele.

Essa posição influenciou profundamente o desenvolvimento de linguagens modernas.

Hoje consideramos naturais conceitos como:

  • blocos bem definidos;

  • escopo de variáveis;

  • estruturas condicionais claras;

  • laços controlados;

  • modularização;

  • contratos;

  • tipos;

  • testes;

  • validação;

  • análise estática;

  • separação de responsabilidades.

Muitas dessas ideias dialogam com o tipo de rigor defendido por Dijkstra.


6. Onde ele estava certo?

Seria confortável para a comunidade COBOL simplesmente dizer:

— Ele estava errado. Próximo assunto. Tragam os biscoitos.

Mas isso não seria intelectualmente honesto.

Dijkstra acertou em vários pontos.

6.1 Programas sem estrutura tornam-se perigosos

Considere este código:

       IF ERRO-ARQUIVO
           GO TO TRATA-ERRO.

       PERFORM PROCESSA-REGISTRO.

       IF FIM-ARQUIVO
           GO TO FINALIZA.

       GO TO LE-PROXIMO.

       TRATA-ERRO.
           DISPLAY 'ERRO'.
           GO TO FINALIZA.

       LE-PROXIMO.
           READ ARQUIVO-ENTRADA
               AT END
                   SET FIM-ARQUIVO TO TRUE
           END-READ
           GO TO PROCESSA.

       PROCESSA.
           PERFORM PROCESSA-REGISTRO
           GO TO LE-PROXIMO.

       FINALIZA.
           CLOSE ARQUIVO-ENTRADA.

Esse exemplo é pequeno. Ainda assim, o fluxo exige que o leitor percorra visualmente vários pontos.

Agora imagine 50 mil linhas nesse estilo.

O resultado pode ser um labirinto.

O programa parece ter sido planejado por um arquiteto medieval especializado em construir corredores que terminam em paredes.

A programação estruturada propõe algo mais claro:

       PERFORM UNTIL FIM-ARQUIVO
           READ ARQUIVO-ENTRADA
               AT END
                   SET FIM-ARQUIVO TO TRUE
               NOT AT END
                   PERFORM PROCESSA-REGISTRO
           END-READ
       END-PERFORM

Agora o fluxo está concentrado.

Existe um início, uma condição e um fim.

Essa melhoria está alinhada com as preocupações de Dijkstra.

6.2 A linguagem pode reforçar maus hábitos

Uma linguagem que permite determinada prática não obriga o programador a utilizá-la.

Porém, quanto mais fácil é fazer algo ruim, maior é a chance de isso acontecer.

COBOL tradicional permitia programas gigantescos, campos globais e estruturas muito acopladas.

Se a equipe não aplicasse disciplina, o código poderia crescer como uma criatura de filme de ficção científica alimentada por alterações emergenciais.

Primeiro havia um programa de 500 linhas.

Depois veio uma nova regra tributária.

Depois um campo de controle.

Depois uma exceção para uma filial.

Depois uma exceção para a exceção.

Quando alguém percebeu, o programa tinha 80 mil linhas e exigia a leitura de três manuais, duas atas de reunião e um pergaminho descoberto atrás da impressora.

6.3 Legibilidade não é apenas usar palavras inglesas

Este código parece legível:

       ADD VALOR-A TO VALOR-B GIVING VALOR-C

Mas nomes claros não bastam.

Precisamos conhecer:

  • o significado dos valores;

  • a unidade monetária;

  • a escala decimal;

  • a origem dos dados;

  • os limites;

  • as regras de arredondamento;

  • o comportamento em caso de excesso;

  • a responsabilidade daquela operação.

O código pode ser gramaticalmente bonito e conceitualmente obscuro.

Dijkstra tinha razão ao exigir precisão.


7. Onde ele exagerou?

A frase sobre “ofensa criminosa” era uma provocação retórica, não uma proposta para que professores de COBOL fossem algemados durante a aula.

Ainda assim, ela exagera porque avalia a linguagem principalmente sob uma perspectiva acadêmica.

Empresas não escolhem tecnologias apenas por elegância matemática.

Elas precisam resolver problemas concretos.

Um banco quer:

  • processar milhões de transações;

  • manter precisão decimal;

  • garantir recuperação;

  • registrar auditoria;

  • preservar compatibilidade;

  • operar durante décadas;

  • reduzir riscos;

  • cumprir regras legais.

Uma seguradora não pode dizer ao cliente:

— Perdemos o cálculo da sua apólice, mas o novo sistema utiliza uma arquitetura muito elegante.

O cliente provavelmente responderá:

— Magnífico. Posso pagar o prêmio com elegância abstrata?

O COBOL foi criado para processamento comercial.

Possui características muito adequadas a esse domínio:

  • representação decimal;

  • descrição detalhada de registros;

  • tratamento de arquivos;

  • forte orientação a dados comerciais;

  • legibilidade relativa;

  • integração com ambientes transacionais;

  • excelente desempenho em processamento em lote;

  • estabilidade.

Ele não precisava vencer uma competição de pureza matemática.

Precisava fechar a folha de pagamento.

E fechou.

Por décadas.


8. O grande paradoxo

Dijkstra venceu muitas batalhas conceituais.

A programação estruturada tornou-se dominante.

O uso indiscriminado de GOTO diminuiu.

As linguagens incorporaram melhores mecanismos de abstração.

A Engenharia de Software passou a valorizar modularização, testes, contratos e validação.

Porém, o COBOL não desapareceu.

Ao contrário, incorporou várias dessas melhorias.

O COBOL moderno oferece recursos como:

       EVALUATE TRUE
           WHEN CLIENTE-VIP
               PERFORM PROCESSA-VIP
           WHEN CLIENTE-PREMIUM
               PERFORM PROCESSA-PREMIUM
           WHEN OTHER
               PERFORM PROCESSA-PADRAO
       END-EVALUATE

Também permite:

  • END-IF;

  • END-PERFORM;

  • EVALUATE;

  • funções intrínsecas;

  • chamadas de serviços;

  • integração com bancos relacionais;

  • manipulação de XML;

  • manipulação de JSON;

  • interoperabilidade;

  • compilação otimizada;

  • integração com ferramentas modernas;

  • testes automatizados;

  • análise estática;

  • pipelines de entrega.

Assim, ocorreu algo quase britanicamente absurdo:

Dijkstra criticou o COBOL por suas limitações estruturais.

O COBOL absorveu muitas ideias da programação estruturada.

Depois continuou funcionando.

É como condenar um castelo medieval por não possuir eletricidade e, anos depois, descobrir que instalaram fibra óptica, elevadores e uma cafeteria no salão principal, mas mantiveram as muralhas porque ainda são bastante úteis contra invasores.


9. COBOL moderno não é COBOL de 1965

Muitos críticos imaginam que todos os programas COBOL atuais são escritos assim:

       GO TO 1000-INICIO.

Em seguida, haveria:

       GO TO 2000-MEIO.

E, por fim:

       GO TO 3000-ALGUEM-SABE-O-QUE-ESTA-ACONTECENDO.

Esse tipo de código existiu e ainda pode existir em sistemas antigos. Porém, não representa obrigatoriamente a maneira moderna de programar em COBOL.

Um programa contemporâneo pode ser organizado de forma bastante clara:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CALCJURO.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

       01  WS-VALORES.
           05 WS-CAPITAL        PIC S9(9)V99 COMP-3.
           05 WS-TAXA           PIC S9(3)V9(6) COMP-3.
           05 WS-JURO           PIC S9(9)V99 COMP-3.

       PROCEDURE DIVISION.

       0000-PRINCIPAL.
           PERFORM 1000-RECEBER-DADOS
           PERFORM 2000-CALCULAR-JURO
           PERFORM 3000-EXIBIR-RESULTADO
           GOBACK
           .

       1000-RECEBER-DADOS.
           MOVE 1000.00 TO WS-CAPITAL
           MOVE 0.015   TO WS-TAXA
           .

       2000-CALCULAR-JURO.
           COMPUTE WS-JURO ROUNDED =
               WS-CAPITAL * WS-TAXA
           .

       3000-EXIBIR-RESULTADO.
           DISPLAY 'JURO: ' WS-JURO
           .

O fluxo é previsível.

Os dados estão organizados.

Cada parágrafo possui uma finalidade.

Não é necessário esconder um gnomo dentro da LINKAGE SECTION para compreender o programa.


10. Passo a passo para não “aleijar a mente”

Talvez a melhor resposta à provocação de Dijkstra não seja rejeitá-la, mas utilizá-la como alerta.

Você pode programar em COBOL aplicando rigor, estrutura e clareza.

Passo 1 — Entenda a regra antes de escrever código

Não comece pela PROCEDURE DIVISION.

Primeiro responda:

  • Qual problema será resolvido?

  • Quais dados entram?

  • Quais dados saem?

  • Quais regras devem ser respeitadas?

  • Quais erros podem ocorrer?

  • Quais limites existem?

Exemplo:

Calcular desconto para clientes, considerando categoria, valor da compra e campanhas vigentes.

Antes de codificar, escreva uma tabela:

CategoriaCompra mínimaDesconto
Comum500,005%
Premium300,0010%
VIPqualquer valor15%

Isso reduz ambiguidades.

Passo 2 — Modele os dados com precisão

Em COBOL, dados são fundamentais.

       01  WS-COMPRA.
           05 WS-VALOR-COMPRA     PIC S9(7)V99 COMP-3.
           05 WS-PERCENTUAL       PIC S9(3)V99 COMP-3.
           05 WS-VALOR-DESCONTO   PIC S9(7)V99 COMP-3.
           05 WS-VALOR-LIQUIDO    PIC S9(7)V99 COMP-3.

Escolha corretamente:

  • tamanho;

  • sinal;

  • casas decimais;

  • formato;

  • uso computacional.

Não declare todos os valores como PIC X(100) e espere que o universo coopere.

O universo raramente coopera. O compilador, menos ainda.

Passo 3 — Use nomes que expliquem intenção

Evite:

       01  WS-A PIC 9(5).
       01  WS-B PIC 9(5).
       01  WS-C PIC 9(5).

Prefira:

       01  WS-QUANTIDADE-PARCELAS PIC 9(3).
       01  WS-VALOR-PARCELA       PIC 9(7)V99.
       01  WS-VALOR-TOTAL         PIC 9(9)V99.

Um bom nome evita comentários desnecessários.

WS-B exige explicação.

WS-VALOR-TOTAL-FATURA apresenta-se sozinho e provavelmente trouxe documentos.

Passo 4 — Divida o processamento

Organize o programa em etapas:

       0000-PRINCIPAL.
           PERFORM 1000-INICIALIZAR
           PERFORM 2000-PROCESSAR
           PERFORM 3000-FINALIZAR
           GOBACK
           .

Dentro de 2000-PROCESSAR, divida novamente conforme a necessidade.

Cada rotina deve representar uma ação reconhecível.

Evite parágrafos como:

       8450-FAZ-COISAS.

Esse nome não explica nada e parece o título de um departamento governamental.

Passo 5 — Controle o fluxo

Prefira estruturas delimitadas:

       IF VALOR-COMPRA GREATER THAN ZERO
           PERFORM CALCULAR-DESCONTO
       ELSE
           MOVE 'VALOR INVALIDO' TO WS-MENSAGEM
       END-IF

Use EVALUATE quando houver múltiplas condições claras:

       EVALUATE CATEGORIA-CLIENTE
           WHEN 'VIP'
               MOVE 15 TO WS-PERCENTUAL
           WHEN 'PREMIUM'
               MOVE 10 TO WS-PERCENTUAL
           WHEN 'COMUM'
               MOVE 5 TO WS-PERCENTUAL
           WHEN OTHER
               MOVE ZERO TO WS-PERCENTUAL
       END-EVALUATE

O objetivo é permitir que outro programador siga o fluxo sem precisar desenhar um mapa do tesouro.

Passo 6 — Trate erros explicitamente

       READ ARQUIVO-CLIENTES
           AT END
               SET FIM-CLIENTES TO TRUE
           NOT AT END
               PERFORM VALIDAR-CLIENTE
       END-READ

Para operações de arquivo, banco de dados ou serviços, sempre considere:

  • sucesso;

  • fim de dados;

  • ausência de registro;

  • duplicidade;

  • indisponibilidade;

  • dados inválidos;

  • falha técnica.

O erro que não foi tratado não desaparece.

Ele apenas aguarda a sexta-feira, às 17h43.

Passo 7 — Teste as fronteiras

Não teste apenas o caso feliz.

Teste:

  • valor zero;

  • valor negativo;

  • maior valor possível;

  • campo vazio;

  • cliente inexistente;

  • data inválida;

  • arquivo vazio;

  • registro duplicado;

  • limite decimal;

  • arredondamento;

  • overflow.

O caso feliz é educado e raramente quebra o programa.

Os casos de fronteira entram pela janela, bebem seu café e alteram a RETURN-CODE.

Passo 8 — Revise o código como lógica, não como literatura

Pergunte:

  • O fluxo é previsível?

  • As responsabilidades estão separadas?

  • Os nomes são claros?

  • As condições são compreensíveis?

  • Existem efeitos colaterais ocultos?

  • Um iniciante conseguiria acompanhar?

  • O programa depende de conhecimento tribal?

Se a resposta para a última pergunta for “sim, mas o Arnaldo conhece”, existe um risco.

Especialmente se Arnaldo estiver aposentado, morando em uma chácara e se recusar a atender chamadas relacionadas ao sistema de faturamento.


11. A verdadeira arma do COBOL

A maior força do COBOL não é sua aparência de inglês.

Também não é sua idade.

É sua relação com o negócio.

Programas COBOL costumam conter regras que representam décadas de decisões empresariais.

Uma linha aparentemente simples pode refletir:

  • legislação;

  • acordo sindical;

  • regra contábil;

  • política comercial;

  • decisão judicial;

  • contrato;

  • comportamento histórico;

  • exceção regional.

Por exemplo:

       IF DATA-ADMISSAO LESS THAN DATA-LIMITE
           PERFORM CALCULO-ANTIGO
       ELSE
           PERFORM CALCULO-NOVO
       END-IF

Tecnicamente, é um IF.

Empresarialmente, pode representar uma mudança legal que afeta milhões de pessoas.

Essa é uma das razões pelas quais migrar sistemas legados é difícil.

Não basta traduzir sintaxe.

É necessário compreender o significado.

Você pode converter:

       ADD A TO B

para:

b += a;

em poucos segundos.

Mas se ninguém souber o que A e B representam, você apenas transportou o mistério para outra linguagem.

Agora o mistério possui chaves, ponto e vírgula e uma dependência no Maven.


12. Curiosidades do campo de batalha

COBOL foi criado para durar?

Não exatamente da forma como durou.

Ele surgiu para padronizar o processamento de dados comerciais entre diferentes fabricantes.

Sua longevidade foi consequência de:

  • grande adoção;

  • volumes imensos de código;

  • estabilidade;

  • compatibilidade;

  • importância dos sistemas;

  • custo e risco de substituição.

Ser antigo significa ser ruim?

Não.

A roda é antiga.

A contabilidade é antiga.

O chá é antigo.

O Parlamento britânico é tão antigo que algumas de suas regras parecem ter sido compiladas em pergaminho.

Tecnologias devem ser avaliadas pelo contexto, não apenas pela data de nascimento.

COBOL não possui precisão?

Ao contrário.

COBOL é especialmente forte no processamento decimal, algo importante para sistemas financeiros.

Tipos como COMP-3 são amplamente utilizados para armazenar valores decimais com eficiência e precisão.

Todo código COBOL é legado?

Não.

Código legado não significa apenas código antigo.

É possível ter código Java criado no ano passado que ninguém entende, não possui testes e depende de uma biblioteca abandonada.

Esse sistema já nasceu legado.

É um bebê de seis meses usando chapéu, carregando uma bengala e reclamando dos jovens.


13. Easter eggs do Bellacosa Mainframe

Easter egg 1 — O COBOL já morreu muitas vezes

Desde os anos 1980, surgem previsões sobre o fim do COBOL.

A linguagem seria substituída por:

  • linguagens de quarta geração;

  • arquiteturas cliente-servidor;

  • Java;

  • pacotes ERP;

  • serviços web;

  • cloud;

  • microsserviços;

  • inteligência artificial;

  • algum produto apresentado por um consultor apontando para três nuvens e sete hexágonos.

O COBOL ouve calmamente, termina o processamento noturno e volta ao trabalho.

Easter egg 2 — O programa mais perigoso

O programa mais perigoso não é necessariamente o maior.

É aquele que todos consideram simples.

A equipe diz:

— Esse programa só move alguns campos.

Seis horas depois, descobre-se que ele também valida contratos, atualiza três arquivos, envia mensagem ao CICS, altera uma tabela DB2 e decide se o cliente poderá comprar uma geladeira.

Easter egg 3 — O comentário histórico

Em sistemas antigos, você pode encontrar comentários como:

      * ALTERADO EM 1987 CONFORME SOLICITACAO DO SR. ROBERTO

Quem é Roberto?

Ninguém sabe.

O que ele solicitou?

Perdeu-se.

A alteração ainda é necessária?

Provavelmente.

Pode ser removida?

Somente se você deseja transformar a produção em um documentário sobre desastres.

Easter egg 4 — A variável imortal

Todo sistema possui uma variável que aparentemente não é utilizada.

       01 WS-CONTROLE-ANTIGO PIC X.

Alguém tenta removê-la.

O programa compila.

Os testes passam.

Em produção, uma agência bancária em uma ilha remota deixa de processar transferências realizadas em anos bissextos.

A variável volta.

Ninguém mais toca nela.


14. O que um iniciante deve aprender com Dijkstra?

A pior reação seria rejeitar Dijkstra apenas porque ele atacou o COBOL.

A melhor reação é aprender com a crítica.

Um bom programador COBOL deve buscar:

  • rigor;

  • previsibilidade;

  • estrutura;

  • simplicidade;

  • documentação;

  • modularidade;

  • testes;

  • compreensão da regra;

  • responsabilidade operacional.

Você não precisa abandonar COBOL para aplicar programação estruturada.

Ao contrário, pode utilizar conceitos modernos para melhorar sistemas COBOL.

A pergunta correta não é:

COBOL é uma linguagem boa ou ruim?

A pergunta correta é:

Este programa está organizado, compreensível, testável e seguro?

Uma linguagem não salva um projeto mal conduzido.

Também não condena automaticamente um projeto bem desenvolvido.

É possível escrever código excelente em COBOL.

É possível escrever código terrível em Rust, Java, Python, C# ou qualquer outra linguagem moderna.

Ferramentas influenciam nossas decisões, mas não substituem disciplina.

Um martelo pode construir uma casa.

Também pode quebrar uma janela.

Não culpamos o martelo, exceto quando precisamos preencher o relatório de incidente e o martelo não possui advogado.


15. Dijkstra venceu ou o COBOL venceu?

Ambos venceram.

Dijkstra venceu no campo das ideias.

Sua defesa da programação estruturada, do rigor e da clareza ajudou a transformar o desenvolvimento de software.

O COBOL venceu no campo operacional.

Demonstrou capacidade extraordinária de manter processos comerciais funcionando por décadas.

A vitória de um não exige a derrota do outro.

Na verdade, o COBOL moderno tornou-se melhor ao incorporar princípios defendidos por críticos como Dijkstra.

O programador COBOL atual pode trabalhar com:

  • código estruturado;

  • pipelines;

  • Git;

  • testes automatizados;

  • APIs;

  • bancos relacionais;

  • JSON;

  • análise estática;

  • integração contínua;

  • observabilidade;

  • DevOps;

  • ferramentas modernas de desenvolvimento.

O mainframe não está isolado em um castelo coberto por névoa.

Ele conversa com aplicações distribuídas, serviços, canais digitais, nuvens e sistemas móveis.

Às vezes conversa de maneira um pouco formal, porque foi educado nos anos 1960, mas conversa.


Conclusão — O crime que mantém o mundo funcionando

A frase de Dijkstra é brilhante como provocação e injusta como veredicto absoluto.

Ela nos obriga a refletir sobre como as linguagens moldam nossa forma de pensar.

Também alerta para os perigos de programas sem estrutura, saltos descontrolados, dados globais e falta de abstração.

Por outro lado, ignora ou subestima qualidades fundamentais do COBOL:

  • adequação ao processamento comercial;

  • precisão decimal;

  • estabilidade;

  • compatibilidade;

  • legibilidade de regras;

  • capacidade de sustentar operações críticas;

  • longevidade operacional.

O verdadeiro problema nunca foi simplesmente utilizar COBOL.

O problema é utilizar qualquer linguagem sem disciplina.

Um programador pode escrever um programa COBOL claro, modular e seguro.

Outro pode criar um microsserviço moderno, empacotá-lo em um contêiner, executá-lo na nuvem e ainda assim produzir uma criatura incompreensível que consome memória, perde mensagens e envia ao cliente uma fatura correspondente ao consumo elétrico da Escócia.

Tecnologia moderna não garante pensamento moderno.

Ferramenta antiga não implica pensamento ultrapassado.

O iniciante COBOL deve conhecer a história, respeitar as críticas e evitar repetir os erros do passado. Deve compreender profundamente os dados, estruturar o processamento, tratar falhas, testar fronteiras e documentar as regras.

Talvez Dijkstra tenha exagerado ao chamar o ensino de COBOL de ofensa criminosa.

Porém, existe um crime real na programação:

entregar código que ninguém entende, ninguém consegue testar e todos têm medo de alterar.

Esse crime pode ser cometido em qualquer linguagem.

Inclusive na linguagem que substituiria o COBOL.

E agora, enquanto o júri discute o veredicto, o programa COBOL solicita licença para se retirar.

Ele precisa processar a folha de pagamento dos advogados, dos juízes, dos acadêmicos e provavelmente do próprio funcionário que publicou nas redes sociais que COBOL está morto.

       IF COBOL-MORTO
           DISPLAY 'NOTICIA NAO CONFIRMADA'
       ELSE
           PERFORM PROCESSAR-MUNDO
       END-IF.

       GOBACK.

O sino toca.

O cavaleiro passa novamente pelo corredor.

Alguém pergunta onde está o cavalo.

E o operador responde:

— O cavalo foi migrado para a nuvem. A produção, entretanto, continua no mainframe.


Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...