☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

sábado, 26 de dezembro de 2020

Design Patterns no COBOL e no IBM Z : Como um Padawan COBOL pode escrever software que sobrevive décadas

 

Bellacosa Mainframe e o design patterns no ibm mainframe e cobol

☕ Um Café no Bellacosa Mainframe

Design Patterns no COBOL e no IBM Z

Como um Padawan COBOL pode escrever software que sobrevive décadas

"Um bom programa resolve um problema. Um excelente programa continua resolvendo o mesmo problema durante trinta anos, passando por centenas de desenvolvedores sem virar um monstro impossível de manter."

Existe uma grande ironia no mundo da programação.

Muitos desenvolvedores COBOL acreditam que Design Patterns nasceram junto com Java, C++ ou C#. Outros pensam que são conceitos exclusivos da programação orientada a objetos.

Na realidade...

o Mainframe já utilizava diversos padrões de projeto muito antes do livro "Design Patterns: Elements of Reusable Object-Oriented Software" (Gang of Four - 1994).

A diferença é que ninguém chamava isso de Pattern.

Chamavam de:

  • Standard Program

  • Skeleton

  • Modelo Corporativo

  • Framework Interno

  • Programa Base

  • Convenção da Empresa

Quando Christopher Alexander criou o conceito de Pattern Language para arquitetura civil nos anos 70, ele dizia que existiam soluções recorrentes para problemas recorrentes.

A Engenharia de Software simplesmente emprestou essa ideia.

E adivinhe...

Grandes bancos já faziam exatamente isso com COBOL desde os anos 70.

Hoje vamos descobrir como um Padawan pode utilizar esses conceitos para produzir software digno de um Mestre Jedi do IBM Z.


O que é um Pattern?

Imagine que você precisa construir cem casas.

Você não desenha uma planta completamente diferente para cada uma.

Você reutiliza soluções que funcionam.

Na programação acontece exatamente o mesmo.

Um Pattern é:

Uma solução reutilizável para um problema recorrente.

Não é código.

Não é framework.

Não é biblioteca.

É uma maneira inteligente de organizar o código.


Por que Patterns existem?

Porque desenvolvedores repetem erros.

Depois repetem soluções.

Depois percebem que algumas soluções sempre funcionam.

Então essas soluções recebem um nome.

Quando recebem um nome...

Podem ser ensinadas.


O primeiro Pattern que todo programador COBOL aprende (sem perceber)

IDENTIFICATION DIVISION.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION.

MAIN.

    PERFORM INICIALIZA

    PERFORM PROCESSA

    PERFORM FINALIZA

STOP RUN.

Você já viu isso milhares de vezes.

Isso possui nome.

Template Method Pattern

Existe um fluxo fixo.

Cada etapa executa uma responsabilidade.

É um Pattern.


Pattern 1 — Template Method

Origem:

Gang of Four.

No COBOL ele existe há décadas.

Estrutura:

MAIN

↓

INICIALIZA

↓

VALIDA

↓

PROCESSA

↓

GRAVA

↓

FINALIZA

Cada rotina possui apenas uma responsabilidade.

Exemplo ruim

MAIN.

READ

VALIDA

CALCULA

GRAVA

IMPRIME

LOG

TRATA ERRO

ATUALIZA DB2

CONSOME MQ

GERA XML

ENVIA EMAIL

TERMINA

800 linhas.

Ninguém entende.

Agora veja:

MAIN.

PERFORM READ-DADOS

PERFORM VALIDAR

PERFORM CALCULAR

PERFORM GRAVAR

PERFORM FINALIZAR

Agora qualquer pessoa entende.


Benefícios

Código limpo.

Fluxo legível.

Debug simples.

Mais fácil de testar.

Mais fácil de manter.


Pattern 2 — Guard Clause

Muito usado atualmente.

Também chamado de Early Exit.

Em COBOL:

Ao invés de criar IF dentro de IF dentro de IF...

Faça validações logo no início.

Ruim

IF CLIENTE-ATIVO

    IF LIMITE > 0

        IF SENHA-OK

            PROCESSA

        END-IF

    END-IF

END-IF

Melhor

IF NOT CLIENTE-ATIVO
    GO TO FINALIZA
END-IF

IF LIMITE <= ZERO
    GO TO FINALIZA
END-IF

IF NOT SENHA-OK
    GO TO FINALIZA
END-IF

PERFORM PROCESSA

Muito mais simples.


Pattern 3 — Dispatcher Pattern

Muito usado em CICS.

Imagine:

MENU

1 Clientes

2 Contas

3 Extrato

4 PIX

Ao invés de escrever centenas de IF...

Use um Dispatcher.

EVALUATE OPCAO

WHEN 1

PERFORM CLIENTES

WHEN 2

PERFORM CONTAS

WHEN 3

PERFORM EXTRATO

WHEN OTHER

PERFORM ERRO

END-EVALUATE

Esse Pattern aparece em:

  • CICS

  • Batch

  • APIs

  • Menus

  • Serviços REST


Pattern 4 — Factory

Parece moderno.

Mas existe em COBOL.

Imagine:

Arquivo pode ser:

VSAM

DB2

IMS

MQ

Você não quer que o programa saiba qual utilizar.

Então cria uma rotina.

OBTER-DADOS

↓

VSAM

ou

DB2

ou

IMS

Quem chama:

PERFORM OBTER-DADOS

Não importa de onde veio.

Isso é abstração.


Pattern 5 — Strategy

Muito usado em bancos.

Imagine cálculo de juros.

Existem dezenas.

Pessoa Física.

Pessoa Jurídica.

Consignado.

Agrícola.

Imobiliário.

Ao invés de centenas de IF...

Cada estratégia fica separada.

CALCULO PF

CALCULO PJ

CALCULO RURAL

CALCULO PREMIUM

Depois:

EVALUATE TIPO

WHEN PF

PERFORM CALCULO-PF

WHEN PJ

PERFORM CALCULO-PJ

END-EVALUATE

Cada regra evolui sozinha.


Pattern 6 — Chain of Responsibility

Muito utilizado em validações.

Exemplo:

Receber pagamento.

Primeiro:

Validar CPF.

Validar Conta.

Saldo.

Limite.

Fraude.

Autorizar.

Cada etapa apenas verifica uma responsabilidade.

Se falhar...

Para tudo.

É exatamente como uma esteira.


Pattern 7 — Facade

Imagine um sistema extremamente complexo.

Para gerar um boleto você precisa:

DB2

MQ

CICS

VSAM

Logs

SMF

Impressão

O usuário não quer saber disso.

Então existe uma fachada.

PERFORM GERAR-BOLETO

Internamente:

GERA

↓

DB2

↓

VSAM

↓

MQ

↓

LOG

↓

PDF

A fachada esconde toda complexidade.


Pattern 8 — Singleton

Muito famoso.

No Mainframe aparece em:

Tabela de parâmetros.

Configuração.

Área comum.

TS Queue.

Control Blocks.

Existe apenas uma instância.

Todos utilizam.


Pattern 9 — Repository

Hoje famoso em Java.

No COBOL:

Camada de acesso ao banco.

Ao invés de:

EXEC SQL

SELECT...

END-EXEC

Espalhado por cem programas.

Criamos:

CLIENTE-REPOSITORY

↓

CONSULTA

↓

ATUALIZA

↓

DELETE

↓

INSERT

Os programas apenas chamam.

Muito mais organizado.


Pattern 10 — Service Layer

Muito utilizado atualmente.

Exemplo.

Tela chama:

CONSULTAR CLIENTE

A camada Service decide:

Consultar DB2.

Consultar VSAM.

Consultar Cache.

Consultar API.

Quem chamou não sabe.

Nem precisa saber.


Pattern 11 — Adapter

Muito importante na Modernização.

Imagine.

Sistema antigo retorna:

PIC X(30)

Nova API quer JSON.

Adapter converte.

COBOL

↓

Adapter

↓

REST JSON

É exatamente o trabalho do z/OS Connect.


Pattern 12 — Builder

Imagine montar uma mensagem MQ.

Existem dezenas de campos.

Ao invés de fazer tudo junto...

Criamos uma rotina.

INICIA

↓

CLIENTE

↓

CONTA

↓

SALDO

↓

HEADER

↓

FINALIZA

Depois envia.

Muito mais organizado.


Pattern 13 — Observer

Muito comum hoje.

Eventos.

Exemplo.

Conta alterada.

Vários sistemas precisam saber.

Conta

↓

Evento

↓

Auditoria

↓

CRM

↓

Fraude

↓

Analytics

No Mainframe isso acontece usando:

MQ

Kafka

CDC

Eventos CICS


Pattern 14 — Retry Pattern

Rede falhou.

API indisponível.

MQ ocupado.

Ao invés de abortar imediatamente:

Tenta

↓

Falhou

↓

Espera

↓

Tenta novamente

↓

Falhou

↓

Espera

↓

Última tentativa

Muito usado em integrações.


Pattern 15 — Circuit Breaker

Extremamente moderno.

Imagine.

API está fora.

Sem Circuit Breaker:

100 mil chamadas.

Todas falham.

Com Circuit Breaker:

Após determinado número de erros...

Ele para de chamar.

Protege o sistema.

Muito usado em microsserviços.

Hoje também aplicado em IBM Z.


Pattern 16 — Bulk Processing

O Batch inteiro utiliza esse conceito.

Ao invés de:

Abre

↓

Lê

↓

Fecha

↓

Abre

↓

Lê

↓

Fecha

Processa milhares de registros em sequência.

Economiza I/O.


Pattern 17 — Retry Queue

Muito usado em MQ.

Mensagem falhou.

Não descarta.

Envia para outra fila.

Depois tenta novamente.


Pattern 18 — Checkpoint Restart

Um dos maiores Patterns do Mainframe.

Imagine:

Batch de oito horas.

Faltam cinco minutos.

Acabou energia.

Sem Checkpoint:

Começa do zero.

Com Checkpoint:

Continua do último ponto.

É um dos grandes diferenciais do IBM Z.


Pattern 19 — Producer / Consumer

Quem produz dados.

Quem consome dados.

COBOL

↓

MQ

↓

Java

↓

API

↓

Analytics

Todos independentes.


Pattern 20 — Pipeline

Muito utilizado em processamento Batch.

Entrada

↓

Validação

↓

Transformação

↓

Enriquecimento

↓

Saída

Cada programa faz apenas uma etapa.

É mais simples.

Mais rápido.

Mais reutilizável.


Patterns invisíveis do próprio z/OS

O interessante é que o próprio IBM Z foi construído usando Patterns.

CICS Transaction Routing.

Workload Manager.

JES2.

VTAM.

RACF Exit.

SMF Exit.

DFSORT.

Todos utilizam padrões arquiteturais extremamente sofisticados.


A origem dos Patterns modernos

Muito antes da Engenharia de Software falar sobre Design Patterns, Christopher Alexander, arquiteto, observava que cidades bem planejadas repetiam soluções eficientes para problemas semelhantes. Sua ideia de uma "linguagem de padrões" inspirou pesquisadores da computação. Em 1994, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides — conhecidos como Gang of Four (GoF) — consolidaram 23 padrões clássicos para software orientado a objetos.

Enquanto isso, no universo IBM Mainframe, equipes de bancos, seguradoras e governos já aplicavam conceitos equivalentes, ainda que com outros nomes. Um programa "modelo", uma rotina padronizada de tratamento de erros ou um módulo único de acesso ao DB2 eram, na prática, padrões de projeto antes mesmo da terminologia se popularizar.


Como identificar um Pattern no seu programa?

Faça estas perguntas:

  • Este problema aparece frequentemente?

  • Já resolvi isso antes?

  • Outros programas fazem igual?

  • Posso reutilizar essa solução?

  • O código ficará mais simples para outro desenvolvedor entender?

Se a resposta for "sim" para várias delas, provavelmente existe um Pattern adequado.


Patterns e qualidade de software

Um bom Pattern não existe para deixar o código "bonito". Ele existe para aumentar a qualidade do software.

Entre os principais ganhos estão:

  • Legibilidade: novos desenvolvedores entendem o fluxo rapidamente.

  • Manutenibilidade: alterações ficam concentradas em pontos específicos.

  • Reutilização: menos código duplicado significa menos defeitos.

  • Testabilidade: módulos menores são mais fáceis de validar.

  • Escalabilidade: novas funcionalidades podem ser adicionadas sem grandes reescritas.

  • Confiabilidade: sistemas críticos tornam-se mais previsíveis.

Em ambientes corporativos, onde aplicações COBOL permanecem em produção por décadas, esses benefícios representam economia de milhares de horas de manutenção.


Curiosidades

Algumas curiosidades surpreendem quem está começando:

  • O comando PERFORM incentiva naturalmente a modularização, muito antes das linguagens modernas popularizarem métodos e funções.

  • O COPYBOOK pode ser visto como uma forma primitiva de reutilização estrutural.

  • O EXEC CICS LINK lembra uma chamada para um serviço.

  • O EXEC SQL separa regras de negócio do acesso aos dados, aproximando-se do Repository Pattern.

  • Frameworks internos criados por grandes bancos nos anos 1980 já padronizavam logs, tratamento de erros, auditoria e segurança, antecipando conceitos que hoje aparecem em arquiteturas modernas.


Dicas para um Padawan COBOL

Se você está iniciando sua jornada no IBM Z, adote alguns hábitos desde cedo:

  1. Nunca escreva um parágrafo com centenas de linhas. Divida em pequenas responsabilidades.

  2. Evite duplicar lógica de negócio. Se duas rotinas fazem a mesma coisa, considere criar um módulo reutilizável.

  3. Prefira nomes claros para seções e parágrafos. Eles documentam o fluxo naturalmente.

  4. Centralize acesso a banco, VSAM e APIs sempre que possível.

  5. Trate erros de forma consistente em todos os programas.

  6. Pense na próxima pessoa que fará manutenção — talvez seja você daqui a cinco anos.


O impacto na carreira

Dominar Design Patterns diferencia um programador que apenas escreve código de um profissional capaz de projetar soluções.

Durante entrevistas técnicas, é comum que arquitetos e líderes valorizem candidatos que demonstrem organização, modularidade e preocupação com manutenção. Esses profissionais costumam evoluir para funções como Desenvolvedor Sênior, Líder Técnico, Arquiteto de Soluções ou Especialista IBM Z.

Além disso, ao aprender Patterns você desenvolve uma habilidade valiosa: enxergar problemas de forma abstrata. Essa capacidade facilita a transição entre COBOL, Java, Python, C#, Go ou qualquer outra linguagem, pois os conceitos permanecem os mesmos.


O Holocron Final

O jovem Padawan costuma acreditar que programar significa apenas fazer o sistema funcionar.

O Cavaleiro Jedi já entende que fazer funcionar é apenas o começo.

O Mestre sabe que um software corporativo precisa sobreviver a mudanças de regras, novas integrações, fusões de empresas, atualizações de hardware e décadas de manutenção. Ele escreve código pensando não apenas na execução de hoje, mas na equipe que dará continuidade ao projeto amanhã.

Os Design Patterns representam justamente essa evolução. Eles condensam décadas de experiência acumulada por engenheiros de software, arquitetos e desenvolvedores que descobriram, muitas vezes após cometer inúmeros erros, quais soluções resistem ao teste do tempo. No universo IBM Z, esses princípios estão presentes em praticamente todos os grandes sistemas corporativos, mesmo quando não recebem esse nome.

Para um programador COBOL Padawan, estudar Patterns é muito mais do que decorar termos como Factory, Strategy ou Facade. É aprender a organizar o pensamento, reduzir complexidade, produzir código mais limpo, facilitar testes, diminuir defeitos e tornar a manutenção previsível. É construir programas que outras pessoas consigam compreender, evoluir e confiar.

No Bellacosa Mainframe, acreditamos que o verdadeiro poder do IBM Z não está apenas na velocidade dos processadores ou na robustez do hardware. Está nas pessoas que escrevem software de qualidade. E esse caminho começa com pequenos hábitos: modularizar, reutilizar, documentar bem e escolher padrões adequados para problemas recorrentes.

Quando você domina esses conceitos, deixa de ser apenas um codificador. Torna-se um engenheiro de software capaz de construir sistemas que, assim como o próprio Mainframe, continuam relevantes, confiáveis e elegantes por muitas décadas. Esse é o verdadeiro passo para sair da condição de Padawan e iniciar sua jornada rumo à Maestria no universo COBOL e IBM Z.


terça-feira, 22 de dezembro de 2020

COUR em Anime : Quando um Padawan Descobre que um Anime Não Nasce em Episódios... Nasce em Sprints de Guerra Contra o Tempo

 

Bellacosa Mainframe entenda o que é cour em animes

☕ Um Café no Bellacosa Mainframe

COUR sem Mistérios para Programadores COBOL

Quando um Padawan Descobre que um Anime Não Nasce em Episódios... Nasce em Sprints de Guerra Contra o Tempo

"O Goblin Slayer nunca invade uma caverna sem planejamento. Um estúdio de anime também não invade uma temporada inteira sem dividir a batalha em cours."


Prólogo — A Primeira Missão

Imagine que você acabou de entrar em uma empresa para trabalhar com COBOL.

Seu líder técnico chega até sua mesa.

— Vagner, temos um sistema bancário com 3 milhões de linhas de código.

Você, cheio de energia, responde:

— Vamos entregar tudo em um único deploy!

O arquiteto apenas sorri.

— Não... vamos dividir em módulos.

No mesmo instante, em algum lugar do Japão...

Um produtor de anime responde exatamente a mesma coisa.

— Não faremos 48 episódios de uma vez.

— Vamos dividir em cours.

Curiosamente, ambos estão resolvendo exatamente o mesmo problema.


Afinal...

O que significa Cour?

A palavra Cour (pronuncia-se aproximadamente "kur") foi incorporada pela indústria japonesa para representar um bloco de exibição da televisão, equivalente a aproximadamente três meses de programação.

Na prática:

1 Cour = um trimestre da grade de TV japonesa.

Como cada trimestre possui cerca de doze ou treze semanas...

Cada Cour normalmente possui:

  • 10 episódios

  • 11 episódios

  • 12 episódios

  • 13 episódios

É por isso que tantos animes terminam exatamente no episódio 12.

Não é coincidência.

É engenharia de produção.


Bellacosa Mainframe explica...

Imagine um grande projeto COBOL.

Você recebeu a missão de modernizar um banco inteiro.

O sistema possui:

  • COBOL

  • CICS

  • DB2

  • VSAM

  • MQ

  • JCL

  • REXX

  • milhares de programas

Seu gerente pergunta:

— Quanto tempo?

Você responde:

— Dois anos.

Ele balança a cabeça.

— Não.

Vamos dividir.

Sprint 1.

Sprint 2.

Sprint 3.

Sprint 4.

Cada Sprint entrega valor.

No Japão...

Cada Cour entrega uma parte da história.

São praticamente a mesma filosofia.


O verdadeiro inimigo

O maior inimigo não é o orçamento.

Nem o roteiro.

Nem os desenhistas.

É...

O calendário.

Goblin Slayer nunca enfrenta um Rei Goblin sozinho.

O diretor de um anime também não.

Atrás de um episódio existem centenas de profissionais.

  • roteiristas

  • storyboard

  • diretor

  • animadores

  • coloristas

  • dubladores

  • sonoplastia

  • CGI

  • edição

  • trilha sonora

Todos trabalham quase simultaneamente.

Se uma única equipe atrasar...

Toda a produção entra em colapso.

Exatamente como acontece em um Batch Noturno.


Um Cour é um Sprint

Para um programador COBOL...

Pense assim.

Projeto Bancário

↓

12 semanas

↓

Entrega

↓

Homologação

↓

Nova etapa

No anime:

Produção

↓

12 semanas

↓

12 episódios

↓

Fim do Cour

É literalmente uma Sprint gigante.


Os quatro grandes Cours

A televisão japonesa divide o ano em quatro campanhas.

Winter Cour

Janeiro

Fevereiro

Março


Spring Cour

Abril

Maio

Junho


Summer Cour

Julho

Agosto

Setembro


Fall Cour

Outubro

Novembro

Dezembro

Cada um possui sua própria leva de estreias.

É por isso que, em janeiro, de repente aparecem dezenas de novos animes.

Não foi mágica.

Foi mudança de Cour.


Goblin Slayer entenderia isso imediatamente

Imagine que a Guilda dos Aventureiros funciona como um estúdio de anime.

Ao invés de lançar episódios...

Ela lança campanhas.

Cour 1

Eliminar Goblins da floresta.

Missão concluída.

Novo Cour.

Cour 2

Salvar a fazenda.

Novo Cour.

Cour 3

Defender a cidade.

Cada campanha termina.

Outra começa.

A história continua.


Continuous Cour

Existe uma modalidade chamada:

Continuous Cour

É quando um anime termina um Cour...

e imediatamente começa outro.

Sem pausa.

Exatamente como um Batch que termina...

e o Job seguinte já inicia.

JOB001

↓

JOB002

↓

JOB003

Tudo contínuo.


Split Cour

Agora imagine outro cenário.

Terminou o primeiro Batch.

Mas...

Os usuários ainda precisam homologar.

A equipe quer melhorar.

Os testes precisam acontecer.

Então existe uma pausa.

Depois...

Continua.

No anime chama-se:

Split Cour

É o equivalente a:

Sprint 1

↓

Pausa

↓

Sprint 2

Muito comum atualmente.


Ragna Crimson

Foi exatamente isso que gerou confusão.

Muita gente acredita que existem duas temporadas.

Na realidade...

Existe apenas:

Temporada 1

Com:

24 episódios.

Divididos em:

  • Cour 1

  • Cour 2

Consecutivos.

Sem interrupção.

Ou seja...

É um Continuous Two-Cour Anime.


Por que 12 episódios?

Essa talvez seja a maior curiosidade.

Não existe uma lei.

Existe uma consequência.

Cada Cour acompanha aproximadamente um trimestre.

Como um trimestre possui doze ou treze semanas...

O anime acompanha essa duração.

É quase um sincronismo natural.


Curiosidade histórica

Nos anos 70, 80 e 90...

Era diferente.

Dragon Ball.

Yu Yu Hakusho.

Cavaleiros do Zodíaco.

Sailor Moon.

Ranma.

Todos possuíam dezenas de episódios contínuos.

Porque a televisão funcionava de outra maneira.

Hoje...

O mercado mudou.

O streaming exige planejamento.

O orçamento exige controle.

Os estúdios preferem produzir em blocos.


O Cour nasceu por causa do dinheiro?

Parcialmente.

Mas principalmente por causa da qualidade.

Imagine animar:

48 episódios.

Sem parar.

Durante um ano inteiro.

Isso significa milhares de desenhos.

Milhões de quadros.

Centenas de artistas.

É extremamente difícil manter a consistência visual.

Dividir em Cours permite:

  • descansar equipes;

  • revisar animações;

  • corrigir problemas;

  • reorganizar cronogramas;

  • manter qualidade.


Bellacosa Mainframe

O Cour lembra muito...

Desenvolvimento Incremental.

Em vez de construir:

Banco inteiro

Você constrói:

Conta Corrente

↓

PIX

↓

Cartão

↓

Investimentos

Cada módulo entrega valor.

Cada módulo reduz risco.

Os japoneses fazem exatamente isso.

Só que com animes.


Easter Egg nº 1

Você sabia que...

O espectador médio quase nunca percebe quando termina um Cour.

Mas o mercado inteiro percebe.

Mudam:

  • horários;

  • propagandas;

  • abertura;

  • encerramento;

  • campanhas;

  • Blu-rays;

  • merchandising.

É quase como trocar de Release no z/OS.


Easter Egg nº 2

Muitos animes trocam:

Opening.

Ending.

Trilha sonora.

Personagens da abertura.

Exatamente na mudança de Cour.

É uma forma de mostrar:

"A guerra entrou em outra fase."


Easter Egg nº 3

Algumas obras escondem spoilers justamente na abertura do segundo Cour.

Quando você reassiste...

Percebe que o final inteiro já estava ali.

Goblin Slayer faz isso em alguns materiais promocionais.

Attack on Titan virou especialista nisso.


Comparando com COBOL

Imagine um Batch.

Receber arquivos

↓

Validar

↓

Atualizar DB2

↓

Emitir relatório

↓

Backup

Cada etapa depende da anterior.

Um Cour também.

Introdução

↓

Construção

↓

Conflito

↓

Clímax

↓

Gancho

É praticamente um Job Control Language narrativo.


Curiosidades

  • A palavra cour provavelmente deriva do francês cours ("curso" ou "percurso"), mas ganhou um significado próprio na indústria japonesa.

  • Um cour normalmente possui entre 10 e 13 episódios, sendo 12 o formato mais comum.

  • Um anime pode ter 1 temporada com 2 cours, como Ragna Crimson, ou 2 temporadas separadas, o que é diferente.

  • Alguns estúdios planejam toda a obra em múltiplos cours desde o início, enquanto outros aguardam o sucesso do primeiro para aprovar a continuação.


Dicas para quem está começando a acompanhar animes

  1. Não confunda cour com temporada. Uma temporada pode ter um ou mais cours.

  2. Verifique o planejamento da produção. Muitos animes são anunciados como "2 cours consecutivos" antes mesmo da estreia.

  3. Observe as aberturas. A troca de opening costuma indicar a passagem para outro cour.

  4. Não estranhe pausas de três ou seis meses. Em muitos casos trata-se de um split cour, não de uma nova temporada.


A Filosofia do Goblin Slayer aplicada aos Cours

Goblin Slayer nunca entra em uma masmorra pensando apenas na luta seguinte.

Ele divide a missão em etapas:

  • reconhecimento;

  • coleta de informações;

  • preparação;

  • execução;

  • retirada.

Um estúdio de anime faz exatamente a mesma coisa.

Um arquiteto de software também.

Um analista COBOL experiente idem.

O segredo não é terminar tudo de uma vez.

É avançar de forma organizada, sustentável e previsível.


O Grande Segredo que Todo Programador COBOL Entende

Depois de alguns anos em produção, todo profissional de mainframe descobre uma verdade simples:

Os maiores sistemas do mundo não são construídos de uma vez. São construídos em entregas sucessivas, cuidadosamente planejadas.

Um anime também.

Cada cour é como um conjunto de JCLs perfeitamente encadeados. Cada episódio é um programa que precisa terminar com RC=0000 para que o próximo entre em execução. Se um falha, toda a cadeia sofre.

No universo de Goblin Slayer, derrotar o Rei Goblin exige inteligência, logística e disciplina. No universo dos animes, produzir uma série memorável exige exatamente os mesmos princípios.

No fim das contas, seja enfrentando goblins, dragões ou um gigantesco sistema bancário escrito em COBOL, a regra continua sendo a mesma:

Nunca tente conquistar a masmorra inteira em um único dia. Divida a jornada em cours, aprenda com cada batalha e avance um episódio de cada vez.


Entenda a razão dos animes terem em media 12 temporadas por episodio

https://eljefemidnightlunch.blogspot.com/2025/10/por-que-maioria-dos-animes-tem-12.html

O que é um Sōshūhen 

https://eljefemidnightlunch.blogspot.com/2022/02/soshuhen-quando-um-programador-viaja-no.html

segunda-feira, 21 de dezembro de 2020

Bala de Prata sem Mistérios

 

Bellacosa Mainframe e a bala de prata sem misterios

☕ Um Café no Bellacosa Mainframe

Bala de Prata sem Mistérios

O Guia Definitivo para um Programador COBOL Padawan Entender Por Que Não Existe Tecnologia Mágica Capaz de Resolver Todos os Problemas

Existe uma frase muito conhecida na Engenharia de Software que costuma aparecer em reuniões, palestras, livros e até em propagandas de novas tecnologias:

"Não existe bala de prata."

Para quem está começando no universo do COBOL e do IBM Mainframe, essa expressão pode soar estranha.

O que uma bala tem a ver com programação?

E por que justamente uma bala feita de prata?

A resposta mistura folclore europeu, literatura fantástica, engenharia, administração, marketing, inteligência artificial e quase cinquenta anos de história da computação.

Pegue seu café.

Hoje vamos descobrir por que "bala de prata" talvez seja uma das expressões mais importantes que um programador COBOL pode aprender.


O significado da expressão

"Bala de prata" (Silver Bullet) significa:

Uma solução única, simples e milagrosa capaz de resolver um problema extremamente complexo.

Na prática, quando alguém diz:

"Essa ferramenta é a bala de prata."

Está dizendo:

"Ela resolve praticamente tudo."

O detalhe é que, quase sempre...

isso não é verdade.

Na Engenharia de Software a expressão costuma ser usada justamente no sentido contrário:

Desconfie de quem promete uma bala de prata.


A origem da bala de prata

A expressão nasceu muito antes dos computadores.

Ela vem do folclore europeu medieval.

Segundo diversas lendas, criaturas sobrenaturais como:

  • lobisomens

  • demônios

  • vampiros

  • monstros amaldiçoados

não podiam ser mortos por armas comuns.

A única arma capaz de derrotá-los era:

uma bala feita de prata pura.

Por isso ela ficou conhecida como a única solução definitiva.

Essa ideia aparece em inúmeras histórias dos séculos XVII, XVIII e XIX.

Mais tarde foi popularizada pela literatura gótica.

Depois pelo cinema.

Depois pelos quadrinhos.

Depois pelos videogames.

Até chegar...

na Engenharia de Software.


O primeiro uso registrado

A ideia da bala de prata existe há centenas de anos.

Mas o uso moderno em tecnologia ficou famoso graças a um único artigo.

Em 1986.

Escrito por um dos maiores cientistas da computação da história.

Frederick P. Brooks Jr.

Seu artigo recebeu o título:

No Silver Bullet — Essence and Accidents of Software Engineering

Publicado na revista IEEE Computer.

Esse artigo mudou completamente a forma como a indústria pensa desenvolvimento de software.

Até hoje ele continua sendo citado.

Quase quarenta anos depois.


Quem foi Frederick Brooks?

Brooks foi gerente do projeto IBM System/360.

Depois liderou o desenvolvimento do sistema operacional OS/360.

Ou seja...

Ele viveu exatamente os problemas que milhões de programadores enfrentam até hoje.

Projetos gigantes.

Milhares de pessoas.

Prazos.

Mudanças.

Complexidade.

Ele percebeu algo interessante.

Toda década aparecia alguém prometendo:

  • nova linguagem

  • novo paradigma

  • novo hardware

  • novo compilador

  • nova metodologia

que resolveria todos os problemas da engenharia de software.

Nunca resolvia.


A grande ideia do artigo

Brooks dividiu os problemas de software em duas categorias.

Complexidade acidental

São dificuldades criadas pelas ferramentas.

Por exemplo:

Programar em Assembly.

Cartões perfurados.

Pouca memória.

Editor ruim.

Compilador limitado.

Esses problemas podem diminuir com tecnologia melhor.


Complexidade essencial

Essa é diferente.

Ela faz parte do próprio problema.

Imagine um banco.

Existem:

clientes

contas

cartões

PIX

TED

DOC

empréstimos

seguros

investimentos

fraudes

compliance

auditoria

LGPD

criptografia

riscos

Tudo isso existe independentemente da linguagem.

Mesmo usando IA.

Mesmo usando Java.

Mesmo usando Python.

Mesmo usando COBOL.

Essa complexidade nunca desaparece.


A famosa conclusão

Brooks escreveu uma frase histórica.

Em resumo:

Não existe nenhuma tecnologia capaz de produzir um ganho de dez vezes na produtividade resolvendo simultaneamente complexidade, confiabilidade e simplicidade.

Ou seja.

Não existe milagre.


Por que essa ideia continua atual?

Porque a indústria muda de nome.

Mas não muda de comportamento.

Ontem era:

CASE

Depois:

Visual Programming

Depois:

RAD

Depois:

SOA

Depois:

Cloud

Depois:

Microservices

Depois:

Containers

Depois:

Low-Code

Depois:

No-Code

Agora:

IA Generativa

Agentes

LLMs

MCP

RAG

Todas essas tecnologias têm enorme valor.

Mas nenhuma elimina a complexidade do negócio.


Um exemplo no Mainframe

Imagine um banco.

Um sistema COBOL possui:

12 milhões de linhas.

5 mil programas.

800 transações CICS.

300 tabelas Db2.

Filas MQ.

Batch.

VSAM.

IMS.

JCL.

SMF.

RACF.

Alguém chega dizendo:

"Vamos migrar tudo para linguagem X."

Pergunta.

O problema desapareceu?

Não.

As regras continuam exatamente iguais.

O sistema apenas mudou de roupa.


Outro exemplo

Um gerente diz:

"Vamos colocar Inteligência Artificial."

Ótimo.

Mas a IA ainda precisa entender:

qual regra calcula juros

qual regra calcula IOF

qual regra trata cheque especial

qual regra trata limite

qual regra trata renegociação

A IA não inventa essas regras.

Ela precisa aprendê-las.


Easter Egg

Pouca gente percebe.

O artigo "No Silver Bullet" foi publicado em 1986.

Na mesma década em que:

COBOL dominava bancos.

CICS crescia.

Db2 amadurecia.

MVS evoluía.

Quase quarenta anos depois...

Todos ainda existem.

Isso mostra que Brooks estava certo.


Curiosidade

Até hoje existem dezenas de artigos chamados:

"The New Silver Bullet"

"The Next Silver Bullet"

"The AI Silver Bullet"

"The Cloud Silver Bullet"

Curiosamente...

todos acabam chegando à mesma conclusão.

Não existe.


Como identificar uma falsa bala de prata

Sempre desconfie quando ouvir frases como:

"Resolve tudo."

"Não precisa mais programar."

"Nunca mais haverá bugs."

"Substitui qualquer linguagem."

"Elimina arquitetos."

"Acabou o COBOL."

"Acabou o Mainframe."

"Nunca mais será necessário DBA."

Essas frases normalmente aparecem antes de uma decepção.


O marketing adora balas de prata

Marketing precisa vender novidade.

Nada vende mais do que prometer facilidade.

Por isso surgem frases como:

"Programação sem programadores."

"Banco de dados sem DBA."

"Infraestrutura sem administradores."

"Aplicação sem arquitetura."

Na prática...

alguém sempre faz esse trabalho.

Apenas mudou de nome.


No universo COBOL

Quantas vezes ouvimos:

"O COBOL morreu."

Depois:

"O Java vai substituir."

Depois:

"O .NET vai substituir."

Depois:

"Python."

Depois:

"Cloud."

Depois:

"IA."

Enquanto isso...

milhões de linhas COBOL continuam processando bilhões de dólares diariamente.

Não porque COBOL seja perfeito.

Mas porque resolve muito bem determinados problemas.


A verdadeira bala de prata do programador

Curiosamente...

Ela não é uma tecnologia.

É conhecimento.

Conhecimento sobre:

negócio

arquitetura

testes

segurança

dados

comunicação

documentação

engenharia

Esse conjunto vale muito mais que qualquer ferramenta.


Exemplo Bellacosa Mainframe

Imagine um Padawan COBOL.

Ele pergunta:

"Qual linguagem devo aprender para nunca mais ter problemas?"

A resposta do Mestre seria:

"Nenhuma."

Depois explicaria:

Aprenda lógica.

Modelagem.

Algoritmos.

Estruturas de dados.

Banco de dados.

Sistemas Operacionais.

Arquitetura.

Comunicação.

Esses conhecimentos sobrevivem a qualquer linguagem.


Os perigos de acreditar em balas de prata

Quando uma empresa acredita em milagres tecnológicos pode acontecer:

Projetos cancelados.

Milhões desperdiçados.

Migrações fracassadas.

Retrabalho.

Perda de conhecimento.

Desmotivação da equipe.

Falhas em produção.

Prazos impossíveis.

Tudo porque alguém acreditou que uma tecnologia resolveria problemas de gestão.


Os sinais de alerta

Um programador experiente costuma desconfiar quando escuta:

"Não precisa testar."

"É automático."

"É impossível errar."

"Não precisa documentação."

"A IA faz tudo."

"Não existe curva de aprendizado."

"É só apertar um botão."

Na Engenharia de Software...

essas frases quase sempre escondem armadilhas.


A Inteligência Artificial é uma bala de prata?

Não.

Ela é uma ferramenta extraordinária.

Pode:

escrever código

explicar programas

gerar documentação

traduzir linguagens

encontrar bugs

criar testes

ajudar aprendizado

Mas continua dependendo de:

dados corretos

prompts corretos

contexto

engenheiros

revisão humana

governança

Ela acelera.

Não substitui conhecimento.


E no IBM Mainframe?

Hoje temos:

IBM watsonx

IBM Z Assist

GitHub Copilot

ChatGPT

Claude

Gemini

Todos ajudam bastante.

Mas nenhum conhece sozinho:

as regras específicas do seu banco.

Nem do seu seguro.

Nem da sua empresa.

Quem conhece isso é a equipe.


A razão de usar essa expressão

A expressão continua viva porque funciona como um lembrete.

Ela combate um dos maiores riscos da tecnologia:

acreditar que ferramentas substituem engenharia.

Toda tecnologia deve ser avaliada por perguntas como:

  • Qual problema ela resolve?

  • Quais problemas ela não resolve?

  • Quanto custa?

  • Qual o retorno?

  • Como integra ao legado?

  • Quem dará manutenção?

  • Qual o impacto operacional?

Essas perguntas são mais importantes do que o nome da tecnologia.


A lição para um COBOL Padawan

Existe uma analogia perfeita com Star Wars.

Todo Padawan procura o sabre de luz perfeito.

Mas Yoda nunca ensinou que a força estava na espada.

Ela estava no treinamento.

Na disciplina.

Na experiência.

Na paciência.

Na capacidade de aprender continuamente.

Na Engenharia de Software acontece exatamente a mesma coisa.

O compilador muda.

A linguagem muda.

O framework muda.

O banco de dados muda.

A infraestrutura muda.

Mas os princípios permanecem.


Conclusão

A expressão "bala de prata" atravessou séculos porque representa um desejo humano muito antigo: encontrar uma solução simples para problemas difíceis. No folclore, era a única arma capaz de derrotar monstros. Na Engenharia de Software, tornou-se um alerta contra promessas exageradas.

Frederick Brooks mostrou que a maior parte dos desafios do desenvolvimento não nasce da linguagem, do compilador ou do hardware, mas da própria complexidade do negócio. É por isso que, décadas depois, bancos, seguradoras, governos e grandes empresas continuam evoluindo seus sistemas em IBM Z e COBOL enquanto incorporam IA, APIs, containers e computação em nuvem. As novas tecnologias ampliam capacidades, mas não eliminam a necessidade de entender regras de negócio, projetar boas arquiteturas, testar, documentar e manter sistemas críticos.

Para o Programador COBOL Padawan, a verdadeira "bala de prata" não está em uma linguagem da moda nem em uma ferramenta milagrosa. Ela está na combinação de curiosidade, estudo contínuo, domínio dos fundamentos, capacidade de compreender o negócio e humildade para reconhecer que toda tecnologia tem pontos fortes e limitações.

Da próxima vez que alguém afirmar que encontrou a solução definitiva para todos os problemas da computação, sorria, tome um gole de café e lembre-se da maior lição de Frederick Brooks:

Na Engenharia de Software, não existem atalhos mágicos. Existem profissionais que aprendem continuamente e constroem soluções sólidas, um programa de cada vez.

 

domingo, 20 de dezembro de 2020

🤝🌸 Bellacosa Otaku Blog — Parte 38: O Elo Invisível — Expressões Japonesas de Amizade, Laços e Lealdade 🌸🤝



 🤝🌸 Bellacosa Otaku Blog — Parte 38: O Elo Invisível — Expressões Japonesas de Amizade, Laços e Lealdade 🌸🤝


💫 Kizuna — o fio vermelho que une corações e destinos

(Versão Bellacosa: o idioma do companheirismo que atravessa batalhas, lágrimas e sorrisos.)

Se o amor é a chama, a amizade no Japão é o laço que resiste ao tempo.
Nas histórias de anime e mangá, ela não é apenas afeto — é honra, destino e confiança absoluta.
Palavras como nakama (companheiro), kizuna (vínculo) e tomodachi (amigo) são símbolos de pertencimento e coragem compartilhada. ⚔️✨


🔗 1. 絆 (Kizuna)

Tradução: “Laço / vínculo profundo.”
👉 Representa conexões emocionais que ultrapassam o tempo e a distância.

📺 Anime vibe: Naruto, Kimetsu no Yaiba, Clannad.
💬 Exemplo: “Nosso kizuna é o que me mantém de pé.” 🌸

🌟 Curiosidade: A palavra “Kizuna” foi escolhida como kanji do ano no Japão em 2011, após o terremoto — símbolo da união e da esperança.


🧭 2. 仲間 (Nakama)

Tradução: “Companheiro / membro do grupo.”
👉 Mais que “amigo”: alguém que luta e cresce ao seu lado, parte da sua jornada.

📺 Anime vibe: One Piece, Fairy Tail, Naruto.
💬 Exemplo: “Não importa o que aconteça… vocês são meus nakama!” ⚓

💬 Emoção Bellacosa: A palavra nakama carrega honra e pertencimento — é dita com lágrimas, punhos cerrados e promessas eternas.


🌻 3. 友達 (Tomodachi)

Tradução: “Amigo.”
👉 Usada no dia a dia; expressa afeto sincero, companheirismo e confiança.

📺 Anime vibe: Horimiya, Toradora!, My Hero Academia.
💬 Exemplo: “Tomodachi wa takaramono — os amigos são tesouros.” 💎


🔥 4. 信頼 (Shinrai)

Tradução: “Confiança.”
👉 A base de qualquer laço verdadeiro; confiança que nasce de batalhas compartilhadas.

📺 Anime vibe: Attack on Titan, Naruto.
💬 Exemplo: “Sem shinrai, não há equipe.” 🛡️


⚔️ 5. 義理 (Giri)

Tradução: “Dever moral / obrigação de honra.”
👉 Nos animes de samurai ou yakuza, representa lealdade e gratidão profunda — o dever de retribuir um favor.

📺 Anime vibe: Samurai Champloo, Tokyo Revengers.
💬 Exemplo: “Meu giri é lutar ao seu lado até o fim.” 🩸


💖 6. 友情 (Yūjō)

Tradução: “Amizade (profunda e pura).”
👉 A forma mais nobre do afeto entre pessoas — o elo emocional que move corações.

📺 Anime vibe: Naruto, Digimon Adventure, Pokémon.
💬 Exemplo: “Yūjō é a chama que nunca se apaga.” 🔥


🧡 7. 支え (Sasae)

Tradução: “Apoio / suporte.”
👉 Mostra o ato de sustentar alguém emocionalmente, ser o ombro e o refúgio.

📺 Anime vibe: Fruits Basket, Your Lie in April.
💬 Exemplo: “Você sempre foi meu sasae, mesmo em silêncio.” 🌧️


🕊️ 8. 信じる (Shinjiru)

Tradução: “Acreditar / confiar.”
👉 Usada para promessas e fé entre amigos — a crença inabalável um no outro.

📺 Anime vibe: Naruto, One Piece.
💬 Exemplo: “Shinjiru — porque amizade é acreditar sem ver.” 💫


💫 9. 絶対 (Zettai)

Tradução: “Absoluto / incondicional.”
👉 Usada em juramentos e promessas de amizade que não podem ser quebradas.

📺 Anime vibe: Fullmetal Alchemist, Attack on Titan.
💬 Exemplo: “Zettai ni akiramenai — jamais vou desistir de vocês.” ⚡


🌸 10. 仲良し (Nakayoshi)

Tradução: “Amigos próximos / bem unidos.”
👉 Expressão doce e cotidiana para amizades sinceras e alegres.

📺 Anime vibe: K-On!, Azumanga Daioh.
💬 Exemplo: “Somos nakayoshi desde o primeiro dia de aula.” 🎒


💮 Curiosidades Bellacosa:

  • Kizuna e nakama são palavras que não têm tradução direta em português, pois expressam lealdade espiritual.

  • Em animes de grupo (como One Piece e Naruto), o “laço” é um tema recorrente — a força nasce da união.

  • Yūjō é tão importante no Japão que aparece em slogans, músicas e até medalhas olímpicas. 🥇


🌻 Dica Bellacosa:

  • Em animes, o tom da voz muda o sentido: tomodachi dito rindo é carinho; gritado em batalha é promessa.

  • Escreva nomes de amigos com 絆 (kizuna) em caligrafia japonesa — é um símbolo de amizade eterna.

  • Aprenda a ouvir o “não dito”: amizade no Japão é menos sobre palavras, mais sobre gestos e constância.


🌸 Conclusão Bellacosa:

As expressões japonesas de amizade são elos invisíveis entre corações, feitos de lealdade, confiança e emoção silenciosa.
Cada kizuna é uma promessa não escrita; cada nakama é uma história de luta e amor em forma de amizade.

“Mesmo separados por mares e batalhas, nossos laços — kizuna — continuarão a brilhar.” 🌅🤝

sábado, 12 de dezembro de 2020

Quem é o dono da história — o autor ou o público?

 Quem é o dono da história — o autor ou o público?


(Um café filosófico sobre arte, ego e a tirania dos finais felizes)


O dilema da autoria

Toda vez que um final polêmico acontece — como em Usagi Drop, Attack on Titan ou Neon Genesis Evangelion — uma pergunta ressurge nas redes:
De quem é a história?
Do autor que a criou, ou do público que a viveu emocionalmente?

A resposta, na prática, é um campo de guerra.

O autor escreve com intenção, com alma, com seus demônios. Mas quando o público lê, a obra deixa de ser apenas dele. Ela passa a existir dentro de cada espectador, moldada por memórias, esperanças e dores pessoais.
Quando o autor destrói algo que o público ama, ele não está apenas “mudando o final” — está violando o universo emocional que o leitor ajudou a construir.


💥 A era da audiência participativa

Vivemos a era do “feedback instantâneo”.
Antes, o leitor escrevia cartas. Hoje, escreve threads inflamadas, vídeos de reação, campanhas de boicote e hashtags pedindo “final alternativo”.

As redes sociais transformaram o público em coparticipante da obra, e isso alterou o equilíbrio de poder:

  • O autor cria o universo.

  • O público o habita, o defende e o exige de volta quando ele muda demais.

É o que muitos chamam de “ditadura do fandom” — quando o amor pela obra vira controle sobre ela.


🎭 O paradoxo da liberdade criativa

O público diz amar a criatividade, mas só até ela contrariar suas expectativas.
Quer finais surpreendentes, mas não tristes. Quer ousadia, mas sem desconforto. Quer originalidade, desde que siga o padrão emocional aprovado pela maioria.

Esse paradoxo sufoca a arte.
A arte verdadeira nasce do risco, do erro, da coragem de desagradar.
Sem isso, tudo vira produto feito sob medida para agradar o algoritmo.


📚 Curiosidades e exemplos

  • The Last of Us Part II (2020) foi massacrado por fãs que não aceitaram a morte de um personagem querido.

  • Game of Thrones teve sua equipe perseguida online após o final da série, com petições exigindo regravações.

  • Evangelion, em 1995, gerou tantas cartas de ódio que Hideaki Anno respondeu com um final ainda mais metafórico e provocador.

  • Usagi Drop foi linchado digitalmente, mesmo sendo uma escolha coerente com a visão da autora sobre amor e amadurecimento.


🧠 Reflexão Bellacosa

O público não é dono da história, mas é dono da experiência emocional que ela lhe causou.
O autor é dono da obra, mas perde o controle sobre o que ela significa quando a entrega ao mundo.
Entre esses dois extremos, nasce o conflito moderno da arte:
quem sente, acha que tem direito; quem cria, acha que tem razão.


💬 Mensagem final

A arte não é uma democracia.
Ela é um diálogo tenso entre liberdade e empatia.
Podemos discordar, criticar, até odiar um final — mas perseguir o autor é esquecer que a frustração também é parte da experiência estética.

Nem toda história foi feita para confortar.
Algumas existem para nos desafiar a crescer, mesmo quando o autor parece cruel.


Porque às vezes, o final que detestamos… é o que mais nos revela quem realmente somos como leitores.

sexta-feira, 11 de dezembro de 2020

DotCom: Capítulo XII — O Encontro de Dois Universos: Como as Startups Acabaram Descobrindo Tudo Aquilo que o Mainframe Já Sabia

 

Bellacosa Mainframe e o estouro da bolha dotcom capitulo xii 

Capítulo XII — O Encontro de Dois Universos: Como as Startups Acabaram Descobrindo Tudo Aquilo que o Mainframe Já Sabia

Por que, vinte anos depois da bolha da Internet, a computação moderna passou a redescobrir conceitos que os grandes sistemas corporativos utilizam desde as décadas de 1960 e 1970

"Às vezes, inovar significa caminhar durante vinte anos para finalmente reencontrar uma ideia que já existia."

Existe uma cena curiosa que poderia perfeitamente acontecer em uma convenção de tecnologia.

De um lado, um jovem desenvolvedor de startup.

Fala sobre microsserviços.

Containers.

Observabilidade.

Alta disponibilidade.

Escalabilidade horizontal.

Zero downtime.

Automação.

Do outro lado...

Um veterano de mainframe, com quarenta anos de experiência em COBOL e z/OS.

Ele escuta atentamente.

Sorri discretamente.

E pensa:

"Interessante... estamos fazendo algo parecido desde antes de você nascer."

Não é arrogância.

Nem saudosismo.

É apenas uma constatação histórica.

Ao longo das últimas duas décadas, boa parte da indústria de software percorreu um caminho que acabou redescobrindo muitos dos princípios que sempre estiveram presentes no universo dos grandes sistemas corporativos.

Não porque o mainframe fosse perfeito.

Mas porque problemas complexos frequentemente levam às mesmas soluções.


O Mundo das Startups Cresceu

Nos anos 1990, muitas startups possuíam apenas alguns servidores.

Poucos usuários.

Bases de dados relativamente pequenas.

Falhas ocasionais eram aceitáveis.

Se um site saísse do ar durante algumas horas...

Não era agradável.

Mas também não era o fim do mundo.

Hoje a realidade é completamente diferente.

Milhões de pessoas dependem continuamente de serviços digitais.

Bancos.

Hospitais.

Transporte.

Energia.

Comércio.

Educação.

Comunicação.

Quando esses sistemas falham...

O impacto é imediato.

A consequência?

As startups passaram a enfrentar exatamente os mesmos desafios que bancos enfrentavam há décadas.


Disponibilidade Deixou de Ser Luxo

Existe uma frase clássica na computação corporativa.

"O sistema deve estar disponível quando o cliente precisar. Não quando for conveniente para a equipe técnica."

Durante muitos anos essa preocupação parecia exclusiva dos grandes bancos.

Hoje...

Ela vale para praticamente qualquer plataforma digital.

Imagine:

Pix indisponível.

Uber fora do ar.

WhatsApp inacessível.

Amazon parada.

Netflix indisponível durante uma estreia.

A tolerância dos usuários tornou-se extremamente pequena.

O conceito de 24x7x365, tão comum no universo IBM Z, passou a fazer parte da realidade de praticamente toda empresa digital.


Escalabilidade: O Mesmo Problema, Novas Ferramentas

Outro conceito redescoberto foi a escalabilidade.

Nos anos 1970 um banco precisava processar milhões de transações.

Hoje uma rede social também.

Mudou o tipo de aplicação.

Não mudou o desafio.

Como atender milhões de usuários simultaneamente?

Como evitar gargalos?

Como distribuir carga?

Como manter consistência?

As respostas modernas utilizam containers, Kubernetes e computação em nuvem.

Os grandes sistemas utilizavam LPARs, Parallel Sysplex, Workload Manager (WLM), filas de processamento e balanceamento inteligente muito antes disso.

As tecnologias mudaram.

O problema permaneceu exatamente o mesmo.


A Redescoberta da Resiliência

Durante os primeiros anos da Web, muitas empresas aceitavam falhas frequentes.

Era quase esperado.

"Vamos reiniciar o servidor."

"Depois volta."

Hoje isso é impensável em diversos setores.

A computação moderna passou a investir fortemente em:

redundância;

replicação;

failover;

recuperação automática;

balanceamento de carga;

distribuição geográfica.

Curiosamente...

Esses conceitos sempre fizeram parte da cultura dos sistemas críticos.

O vocabulário mudou.

A filosofia permaneceu.


Observabilidade: Um Nome Novo para uma Necessidade Antiga

Hoje fala-se muito sobre observabilidade.

Logs.

Métricas.

Tracing distribuído.

Dashboards.

Alertas inteligentes.

OpenTelemetry.

Grafana.

Prometheus.

Tudo isso representa enorme evolução tecnológica.

Mas o princípio é antigo.

Um ambiente de produção precisa ser observado continuamente.

Administradores de mainframe fazem isso há décadas utilizando:

SMF.

RMF.

OMEGAMON.

NetView.

Tivoli.

Relatórios estatísticos.

Planejamento de capacidade.

Mais uma vez...

Mudaram as ferramentas.

Não mudou a necessidade.


DevOps e a Cultura Operacional

Durante muito tempo acreditou-se que DevOps representava algo totalmente novo.

Na realidade...

Ele trouxe enorme inovação.

Mas também recuperou práticas tradicionais.

Automação.

Controle de mudanças.

Padronização.

Gestão de configuração.

Monitoramento.

Integração entre desenvolvimento e operações.

Em ambientes IBM Z esses conceitos sempre estiveram profundamente presentes.

A diferença é que agora eles passaram a ser aplicados também ao restante da indústria.


Segurança Nunca Foi um Acessório

Durante os anos 1990 era relativamente comum adicionar segurança apenas no final dos projetos.

Hoje isso seria considerado extremamente perigoso.

Surgiu então o conceito de Security by Design.

Projetar segurança desde o início.

Curiosamente...

Mainframes sempre seguiram essa filosofia.

RACF.

SAF.

ACEE.

Controle de acesso.

Auditoria.

Segregação de funções.

Privilégios mínimos.

Proteção de datasets.

Tudo isso fazia parte da arquitetura.

Não era um complemento.

Era a fundação.

Hoje chamamos essa abordagem de Zero Trust em muitos ambientes distribuídos.

O princípio continua surpreendentemente parecido.


APIs Aproximaram Dois Mundos

Durante muitos anos existiu um mito.

Mainframes eram fechados.

A Internet era aberta.

Essa visão tornou-se rapidamente ultrapassada.

Hoje encontramos:

REST.

SOAP.

GraphQL.

gRPC.

MQ.

Kafka.

Eventos.

Web Services.

z/OS Connect.

IMS Connect.

CICS Web Services.

Os sistemas corporativos passaram a conversar naturalmente com aplicações modernas.

A fronteira praticamente desapareceu.

Hoje um aplicativo instalado em um smartphone frequentemente consulta informações processadas por programas COBOL executando em um IBM Z.

O usuário sequer percebe.

E talvez esse seja o maior elogio possível para uma arquitetura.

Ela funciona de forma transparente.


Cloud e Mainframe Deixaram de Ser Rivais

Outro mito importante desapareceu.

Durante anos criou-se a falsa ideia de que nuvem substituiria completamente os mainframes.

A realidade mostrou algo muito mais interessante.

Eles passaram a trabalhar juntos.

Hoje encontramos arquiteturas híbridas onde:

IBM Z processa transações críticas.

Cloud executa aplicações escaláveis.

Containers hospedam microsserviços.

APIs integram tudo.

A Inteligência Artificial analisa informações produzidas pelos sistemas corporativos.

Não existe competição.

Existe complementaridade.

Cada ambiente faz aquilo em que é melhor.


A Inteligência Artificial Reforçou Essa Aproximação

A chegada da IA acelerou ainda mais essa convergência.

Modelos precisam de dados.

Os dados mais importantes das empresas continuam armazenados em sistemas corporativos.

Bancos.

Seguradoras.

Hospitais.

Indústrias.

Governos.

Grande parte dessas informações permanece em plataformas tradicionais.

Assim, a IA não substitui o mainframe.

Ela depende dele.

É uma mudança de perspectiva extremamente importante.


O Que as Startups Ensinaram ao Mainframe

Essa história também possui o movimento inverso.

Não foram apenas as startups que aprenderam com os sistemas corporativos.

O universo mainframe também absorveu diversas ideias vindas da cultura startup.

Interfaces mais amigáveis.

Experiência do usuário.

Entrega contínua.

Git.

DevOps.

Open Source.

Containers.

Kubernetes.

APIs.

Automação.

Cloud híbrida.

Ferramentas modernas de desenvolvimento.

Hoje um desenvolvedor COBOL pode trabalhar utilizando Visual Studio Code, GitHub, pipelines CI/CD, testes automatizados e inteligência artificial para auxílio na programação.

O encontro aconteceu dos dois lados.


A Grande Convergência

Talvez este seja um dos acontecimentos mais importantes da computação nas últimas décadas.

Os dois mundos deixaram de competir.

Começaram a convergir.

Startups aprenderam robustez.

Mainframes incorporaram agilidade.

Cloud trouxe elasticidade.

IBM Z trouxe confiabilidade.

Open Source acelerou inovação.

Enterprise Computing trouxe governança.

Inteligência Artificial conectou todos esses elementos.

O resultado é um ecossistema muito mais rico do que qualquer um desses mundos isoladamente.


O Padawan COBOL Vive um Momento Único

Talvez nenhum momento da história tenha sido tão interessante para um novo profissional de tecnologia.

Hoje é possível estudar:

COBOL.

Python.

Java.

REST.

Docker.

OpenShift.

Git.

Ansible.

Cloud.

Kubernetes.

Machine Learning.

IA Generativa.

Tudo isso sem abandonar os fundamentos construídos ao longo de décadas.

Na verdade...

Quem compreende fundamentos aprende novas tecnologias muito mais rapidamente.


O Futuro Não Escolheu um Lado

Durante muitos anos parecia existir uma guerra.

Mainframe versus servidores.

COBOL versus Java.

Cloud versus IBM Z.

Legacy versus moderno.

Hoje percebemos que essas disputas eram artificiais.

Os sistemas mais sofisticados do mundo utilizam praticamente todas essas tecnologias ao mesmo tempo.

Cada uma resolve um tipo diferente de problema.

A verdadeira maturidade tecnológica consiste justamente em escolher a ferramenta adequada para cada situação.


Lições para o Padawan COBOL

Quando um jovem oficial entra pela primeira vez na sala de engenharia da USS Enterprise, costuma ficar impressionado com os motores de dobra, os painéis holográficos e a tecnologia futurista.

Mas o engenheiro-chefe sabe de um segredo.

Nenhuma nave permanece em operação durante décadas apenas porque possui equipamentos modernos.

Ela continua voando porque respeita princípios fundamentais de engenharia.

Redundância.

Monitoramento.

Segurança.

Planejamento.

Disciplina.

Melhoria contínua.

Foi exatamente isso que aconteceu com a computação.

As startups trouxeram velocidade.

O mainframe trouxe estabilidade.

A nuvem trouxe elasticidade.

A Inteligência Artificial trouxe uma nova forma de interação.

Nenhuma dessas revoluções anulou a anterior.

Cada uma acrescentou uma nova camada ao edifício da tecnologia.

Talvez essa seja a maior lição de toda esta jornada.

O futuro raramente destrói completamente o passado.

Na maioria das vezes...

Ele é construído sobre ele.

No próximo capítulo faremos uma última grande conexão com o presente, analisando por que a corrida da Inteligência Artificial lembra tanto os anos que antecederam a bolha das Dot-Com, quais sinais devemos observar, o que realmente mudou em vinte anos e como um profissional de tecnologia pode se preparar para aproveitar essa nova revolução sem repetir os erros do passado.


segunda-feira, 7 de dezembro de 2020

Os Rankings das Linguagens : Quando um Programador Descobre que o GitHub Não Enxerga o Mainframe... e Percebe que a Economia Mundial Funciona Graças ao Lado Invisível da Computação

Bellacosa Mainframe e os rankings das linguagens de programaçao mito ou realidade


☕ Um Café no Bellacosa Mainframe

Os Rankings das Linguagens sem Mistérios para Programadores COBOL

Quando um Programador Descobre que o GitHub Não Enxerga o Mainframe... e Percebe que a Economia Mundial Funciona Graças ao Lado Invisível da Computação

"Gentlemen, you can't fight in here! This is the War Room!"
— Dr. Strangelove (1964)

Imagine a cena.

Você acaba de entrar na famosa Sala de Guerra do Pentágono.

No centro da mesa existe um enorme painel luminoso mostrando o ranking mundial das linguagens de programação.

Python em primeiro.

C em segundo.

C++ em terceiro.

Java logo atrás.

JavaScript subindo.

Rust fazendo propaganda de si mesmo.

Enquanto isso...

Lá no canto inferior da tela...

COBOL aparece discretamente na posição 19.

Os jovens desenvolvedores olham para a tela e concluem:

"Pronto. Está morto."

Nesse momento, um general entra correndo na sala.

— Senhor!

— Sim?

— O sistema que processa a folha salarial das Forças Armadas parou.

— Em que linguagem ele foi escrito?

Silêncio.

Outro oficial responde:

— COBOL.

Cinco segundos depois...

Todos na sala percebem que talvez aquele ranking não estivesse contando exatamente toda a história.

E é exatamente sobre isso que vamos conversar hoje.

Prepare seu café.

Hoje vamos descobrir por que popularidade não é sinônimo de importância, por que o COBOL pode ser considerado uma espécie de Matéria Escura da Computação, e por que muitos rankings enxergam apenas a superfície do iceberg tecnológico.


Capítulo 1 — O Grande Mapa-Múndi das Linguagens

Todo ano surgem dezenas de rankings.

TIOBE.

RedMonk.

GitHub Octoverse.

Stack Overflow.

PYPL.

IEEE Spectrum.

Todos prometem responder à pergunta:

"Qual é a linguagem mais importante do mundo?"

Parece simples.

Mas existe um pequeno problema.

Nenhum deles mede exatamente a mesma coisa.

É como perguntar:

Qual é o melhor veículo?

E misturar numa mesma pesquisa:

  • quantidade de bicicletas vendidas;

  • número de aviões em operação;

  • caminhões registrados;

  • navios cargueiros;

  • foguetes lançados.

Todos são veículos.

Mas cumprem funções completamente diferentes.


Capítulo 2 — O Python é realmente o Rei?

Sim.

Mas depende da pergunta.

Python domina praticamente todos os indicadores modernos.

Por quê?

Porque está presente em:

  • Inteligência Artificial;

  • Machine Learning;

  • Ciência de Dados;

  • Automação;

  • DevOps;

  • Cloud Computing;

  • Segurança;

  • Ensino universitário.

Se milhões de estudantes aprendem Python todos os anos...

Os rankings naturalmente irão refletir isso.

Isso não é manipulação.

É estatística.


Capítulo 3 — O Primeiro Grande Erro

A maioria das pessoas interpreta rankings assim:

Popularidade = Importância

Só que isso é falso.

Vamos imaginar dois programas.

Programa A

Um aplicativo que troca a cor de um botão.

Escrito em JavaScript.

Possui:

  • 120.000 estrelas no GitHub

  • milhares de forks

  • vídeos no YouTube

  • milhares de perguntas no Stack Overflow


Programa B

Sistema nacional de aposentadorias.

Escrito em COBOL.

Possui:

  • zero estrelas;

  • zero forks;

  • zero vídeos;

  • zero repositórios públicos.

Mas movimenta bilhões todos os meses.

Qual deles é mais importante?

A resposta é óbvia.


Capítulo 4 — A Grande Pegadinha Estatística

Vamos analisar cada ranking.

GitHub Octoverse

Mede:

  • commits

  • pull requests

  • forks

  • repositórios públicos

Percebe o problema?

Quase nenhum banco publica seu Core Banking no GitHub.

Imagine o Itaú.

Imagine o Banco do Brasil.

Imagine o Bradesco.

Imagine a Caixa.

Imagine o Federal Reserve.

Imagine o Banco Central Europeu.

Agora imagine todos colocando seus programas COBOL em um repositório público.

Seria uma péssima ideia.


Capítulo 5 — Stack Overflow

Outro caso curioso.

Ele mede perguntas.

Mas pense no seguinte.

Quem pergunta mais?

Um iniciante.

Ou um profissional com trinta anos de experiência?

Normalmente o iniciante.

Logo...

Linguagens maduras geram menos perguntas.

COBOL sofre exatamente desse efeito.


Capítulo 6 — PYPL

Esse ranking mede buscas por tutoriais.

Quanto mais pessoas digitam:

How to learn Python

mais Python sobe.

Isso significa que Python seja mais importante economicamente?

Não.

Significa apenas que mais pessoas estão querendo aprender Python.


Capítulo 7 — O Caso TIOBE

Talvez seja o ranking mais famoso.

Também é um dos mais discutidos.

Ele mistura:

  • pesquisas;

  • livros;

  • documentação;

  • páginas na internet;

  • cursos.

Ou seja...

Ele mede interesse.

Não mede produção.


Capítulo 8 — IEEE Spectrum

Talvez seja o mais equilibrado.

Mistura:

  • mercado;

  • vagas;

  • pesquisas;

  • GitHub;

  • tendências.

Mesmo assim...

Continua dependendo de informações públicas.

E é aí que mora o problema.


Capítulo 9 — O Universo Invisível

Agora chegamos ao ponto principal.

Imagine um iceberg.

A parte visível representa:

  • GitHub;

  • Reddit;

  • Stack Overflow;

  • Hacker News;

  • LinkedIn;

  • Medium.

É um universo enorme.

Mas ainda é apenas a ponta.

A parte submersa contém:

  • bancos;

  • seguradoras;

  • bolsas de valores;

  • previdência;

  • governo;

  • defesa;

  • companhias aéreas;

  • telecomunicações;

  • energia.

É aqui que vivem linguagens como:

  • COBOL;

  • PL/I;

  • Natural;

  • RPG;

  • Assembly;

  • MUMPS.

Esse mundo raramente aparece nos rankings.


Easter Egg nº 1

No filme Dr. Strangelove, o mundo quase acaba porque diferentes pessoas possuem apenas uma parte da informação.

Na computação acontece algo semelhante.

O desenvolvedor Front-End conhece React.

O arquiteto conhece Java.

O DBA conhece Db2.

O Sysprog conhece z/OS.

O operador conhece JES2.

Mas pouquíssimas pessoas enxergam o sistema inteiro.


Capítulo 10 — O Conceito de Deep Language

Não existe uma definição acadêmica oficial para "Deep Language", mas a expressão ajuda a visualizar um fenômeno real.

Podemos pensar em linguagens "profundas" como aquelas que:

  • sustentam sistemas críticos;

  • vivem em ambientes fechados;

  • são pouco visíveis ao público;

  • possuem décadas de evolução;

  • armazenam regras de negócio acumuladas ao longo do tempo.

São linguagens que operam nas camadas mais profundas da infraestrutura digital.


Capítulo 11 — O Cofre Invisível

Imagine um enorme cofre.

Dentro dele existem:

  • cinquenta milhões de linhas COBOL;

  • vinte milhões PL/I;

  • milhares de programas Assembly;

  • regras bancárias acumuladas durante cinquenta anos.

Nenhum mecanismo de busca consegue enxergar isso.

Nenhum ranking consegue contar essas linhas.

É literalmente um universo invisível.


Curiosidade Bellacosa

Muitos sistemas corporativos nem sequer usam Git.

Você encontrará ferramentas como:

  • Endevor;

  • ISPW;

  • ChangeMan;

  • Panvalet;

  • Librarian.

Ou seja...

Mesmo que você fosse contar commits...

Eles simplesmente não existem no GitHub.


Capítulo 12 — O Peso Econômico

Uma linha COBOL vale o mesmo que uma linha JavaScript?

Claro que não.

Imagine:

if (button == red)

Agora compare com:

CALCULAR-JUROS-COMPOSTOS
VALIDAR-LIMITE-CREDITO
PROCESSAR-PAGAMENTO
AUTORIZAR-PIX

As consequências de um erro são completamente diferentes.


Easter Egg nº 2

No universo de Dr. Strangelove existe a famosa "Máquina do Juízo Final".

No mundo financeiro também existe uma espécie de máquina invisível.

Ela não lança bombas.

Ela lança:

  • salários;

  • aposentadorias;

  • dividendos;

  • seguros;

  • financiamentos.

E boa parte dessa máquina ainda conversa fluentemente em COBOL.


Capítulo 13 — O Iceberg Tecnológico

Visualize:

              PYTHON
            JAVASCRIPT
               JAVA
             TYPESCRIPT
             GO
             RUST
------------------------------
          COBOL
          PL/I
         NATURAL
            RPG
        ASSEMBLY

A parte superior muda rapidamente.

A inferior muda lentamente.

E justamente por isso continua funcionando há décadas.


Capítulo 14 — O Paradoxo da Invisibilidade

Existe um fenômeno curioso.

Quanto mais crítico um sistema...

Menos as pessoas falam dele.

Você nunca vê manchetes dizendo:

"Sistema bancário processou corretamente mais 40 bilhões de transações hoje."

Porque isso é o esperado.

As notícias aparecem apenas quando algo falha.

O silêncio operacional é um dos maiores indicadores de sucesso em ambientes críticos.


Capítulo 15 — Como Interpretar um Ranking Corretamente

Sempre faça quatro perguntas:

1. O que está sendo medido?

Commits?

Pesquisas?

Cursos?

Perguntas?

Livros?


2. Quem ficou de fora?

Empresas privadas?

Governos?

Mainframes?

Sistemas militares?


3. O que não pode ser divulgado?

Arquiteturas bancárias.

Código-fonte.

Volumes de transações.

Regras internas.


4. Qual o objetivo?

Aprender?

Contratar?

Investir?

Escolher uma linguagem?

Ou entender a infraestrutura mundial?

Cada objetivo exige uma interpretação diferente.


Dicas para o Programador COBOL Iniciante

Se você está começando agora, não caia em dois extremos.

O primeiro é acreditar que "só existe COBOL". O segundo é imaginar que "COBOL morreu porque aparece em 19º lugar". A realidade é muito mais interessante.

Algumas recomendações práticas:

  1. Aprenda COBOL profundamente, entendendo arquivos VSAM, Db2, JCL e CICS. É isso que transforma um iniciante em alguém capaz de navegar em sistemas corporativos reais.

  2. Estude também linguagens modernas, como Python ou Java. Elas são excelentes para automação, testes, integração e APIs. Hoje, muitos projetos conectam aplicações modernas a sistemas COBOL por meio de REST, mensageria e microsserviços.

  3. Aprenda a interpretar métricas. Um gráfico bonito não substitui o entendimento de como ele foi construído.

  4. Entenda o negócio, não apenas a sintaxe. Em bancos, seguradoras e órgãos públicos, as regras de negócio costumam valer mais do que a escolha da linguagem.


Curiosidade Histórica

Nos anos 1960 e 1970, praticamente ninguém se preocupava com "rankings de linguagens". A preocupação era outra:

  • o programa compila?

  • processa corretamente?

  • entrega a folha de pagamento?

  • fecha o balanço do banco?

  • a fita magnética pode ser lida amanhã?

Décadas depois, muitos desses programas continuam executando suas funções com impressionante confiabilidade.


Conclusão — Aprendendo a Amar o Iceberg

No final de Dr. Strangelove, a obsessão por indicadores, estratégias e cálculos leva os personagens a perderem a visão do todo.

Com os rankings de linguagens pode acontecer algo parecido.

É fácil olhar para uma tabela e concluir que uma linguagem "venceu" e outra "morreu". Mas tabelas contam apenas a parte visível da história. Elas mostram onde há mais repositórios públicos, mais buscas, mais cursos e mais conversas.

O que elas não mostram é o universo silencioso que sustenta bancos, governos, seguradoras, bolsas de valores e grandes empresas.

O COBOL raramente aparece nas manchetes porque sua missão nunca foi ser popular. Sua missão foi — e continua sendo — manter sistemas críticos funcionando de forma previsível, dia após dia, ano após ano.

Talvez essa seja a maior lição para um futuro Mestre Jedi do Mainframe: não confunda visibilidade com relevância. As tecnologias mais importantes nem sempre são as que fazem mais barulho. Muitas vezes, são justamente aquelas que trabalham em silêncio, escondidas nas profundezas do iceberg digital, onde cada linha de código carrega décadas de conhecimento, bilhões de transações e a confiança de toda uma economia.

No fim das contas, os rankings nos dizem muito sobre o entusiasmo do mercado. Já os mainframes nos lembram de algo ainda mais valioso: quando o assunto é infraestrutura crítica, a verdadeira grandeza costuma estar escondida nas camadas que quase ninguém vê — mas das quais praticamente todo o mundo depende.

 

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...