☕ 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

quarta-feira, 24 de janeiro de 2024

RAD (Rapid Application Development) - O Que Todo Programador COBOL Precisa Saber Sobre a Metodologia RAD Parte I

 

Bellacosa Mainframe apresenta a rapid application development parte i

☕ Um Café no Bellacosa Mainframe

RAD (Rapid Application Development)

O Que Todo Programador COBOL Precisa Saber Sobre a Metodologia que Ensinou o Mundo a Desenvolver Software Rapidamente

Você Não Está Descobrindo uma Ideia Nova. Está Descobrindo uma Tecnologia que Influenciou Quase Tudo o Que Veio Depois.

"Toda geração acredita que inventou uma forma mais rápida de desenvolver software. Poucos percebem que muitas dessas ideias nasceram há mais de trinta anos. O RAD foi uma delas."


Introdução

Quem começou a trabalhar com desenvolvimento de software nos anos 80 e 90 certamente ouviu falar de uma promessa bastante ousada.

"Vamos desenvolver sistemas em poucos meses."

Naquela época isso parecia impossível.

O desenvolvimento tradicional era lento.

Primeiro vinha o levantamento de requisitos.

Depois a documentação.

Depois o projeto.

Depois a programação.

Depois os testes.

Depois a homologação.

E finalmente... meses ou anos depois... o usuário via o sistema funcionando.

Não era raro um projeto durar dois ou três anos.

O problema?

Quando finalmente ficava pronto, o negócio já havia mudado.

As regras eram outras.

As necessidades eram diferentes.

E boa parte do software já nascia desatualizada.

Foi justamente para resolver esse problema que surgiu o Rapid Application Development, mais conhecido como RAD.

Muitos desenvolvedores mais jovens imaginam que desenvolvimento rápido começou com Agile, Scrum, DevOps, Low-Code ou Inteligência Artificial.

Na verdade, todos esses movimentos herdaram conceitos que o RAD apresentou décadas antes.

Para quem trabalha com COBOL, isso é especialmente interessante.

Durante muito tempo criou-se o mito de que Mainframe significa desenvolvimento lento.

Na prática, diversos bancos brasileiros entregavam sistemas críticos em velocidade impressionante utilizando conceitos extremamente próximos do RAD, mesmo antes de adotarem oficialmente essa metodologia.

O segredo nunca foi apenas a linguagem.

O segredo sempre foi o processo.


O cenário antes do RAD

Para entender o RAD precisamos voltar aos anos 1980.

A informática corporativa vivia um momento curioso.

Os computadores estavam ficando mais poderosos.

As empresas dependiam cada vez mais dos sistemas.

Mas o desenvolvimento continuava extremamente burocrático.

O modelo dominante era o famoso Waterfall, ou Cascata.

Sua lógica era simples.

Primeiro termina uma fase.

Depois começa a próxima.

Jamais volte atrás.

Na teoria fazia sentido.

Na prática...

Nem tanto.

Imagine desenvolver um sistema bancário durante dezoito meses.

Durante esse período:

  • novas leis aparecem;

  • novos produtos financeiros surgem;

  • a inflação muda;

  • concorrentes inovam;

  • clientes mudam de comportamento.

Quando o software finalmente chega à produção...

Ele resolve um problema que talvez nem exista mais.

Era uma época em que modificar requisitos era quase um pecado.

Qualquer alteração significava:

  • alterar documentos;

  • alterar diagramas;

  • alterar especificações;

  • alterar programas;

  • alterar testes.

Tudo isso custava muito dinheiro.

Foi nesse ambiente que algumas pessoas começaram a fazer uma pergunta aparentemente simples.

"E se desenvolvêssemos junto com o usuário?"

Essa pergunta mudaria a história da Engenharia de Software.


O nascimento do RAD

O principal responsável pela popularização do RAD foi James Martin.

Image

Image

Image

James Martin era um dos maiores especialistas em Engenharia de Software da época.

Consultor.

Autor.

Pesquisador.

Visionário.

Em 1991 publicou um livro que se tornaria referência mundial:

Rapid Application Development.

Naquele momento ele propôs algo bastante diferente.

Ao invés de gastar meses planejando cada detalhe do sistema...

Construa uma primeira versão.

Mostre ao usuário.

Receba feedback.

Melhore.

Repita.

Hoje isso parece absolutamente normal.

Na época era revolucionário.

Martin defendia que o software não deveria nascer perfeito.

Deveria nascer útil.

Existe uma enorme diferença entre essas duas ideias.


O grande problema que o RAD resolveu

Imagine um gerente de banco.

Ele pede um sistema.

Durante meses responde entrevistas.

Participa de reuniões.

Assina documentos.

Depois desaparece.

Um ano depois recebe o software.

Ao abrir a aplicação percebe algo curioso.

"Não era exatamente isso que eu queria."

Essa frase custava milhões de dólares.

Não porque os programadores eram ruins.

Mas porque pessoas têm dificuldade em imaginar um sistema apenas olhando documentação.

Quando veem uma tela funcionando...

Tudo muda.

Elas descobrem novas necessidades.

Percebem erros.

Lembram regras esquecidas.

Propõem melhorias.

O RAD transformou essa descoberta em metodologia.

Em vez de lutar contra mudanças...

Passe a utilizá-las como parte natural do desenvolvimento.


O princípio mais importante do RAD

Se fosse necessário resumir o RAD em apenas uma frase, seria esta:

O usuário entende melhor um sistema funcionando do que um documento descrevendo esse sistema.

Esse conceito parece óbvio hoje.

Mas revolucionou a forma de desenvolver software.

Em vez de produzir centenas de páginas de documentação...

Construa rapidamente um protótipo.

Mesmo incompleto.

Mesmo simples.

Mesmo temporário.

Porque um protótipo gera discussões muito mais produtivas do que um documento.

É muito mais fácil dizer:

"Esse botão deveria estar aqui."

Do que imaginar onde ele deveria ficar lendo uma especificação técnica.


O que significa "Rapid"

Muita gente interpreta o nome errado.

Rapid não significa:

"Programar correndo."

Nem:

"Escrever código sem qualidade."

Nem:

"Ignorar documentação."

Nem:

"Fazer gambiarra."

Rapid significa reduzir desperdícios.

Eliminar atividades que não agregam valor.

Descobrir erros cedo.

Corrigir rapidamente.

Automatizar tarefas repetitivas.

Construir somente aquilo que realmente será utilizado.

Em outras palavras...

Ser rápido porque o processo ficou melhor.

Não porque os programadores trabalham mais horas.


Os quatro pilares do RAD

Embora existam diversas interpretações, praticamente todas compartilham quatro fundamentos.

1. Desenvolvimento iterativo

Ao invés de entregar tudo no final...

Entregue pequenas partes continuamente.

Cada versão adiciona funcionalidades.

Cada ciclo reduz riscos.

Cada entrega aproxima o produto da necessidade real.

Esse conceito mais tarde inspiraria boa parte do Agile.


2. Prototipação

O protótipo é talvez a característica mais conhecida do RAD.

Ele não precisa ser bonito.

Nem completo.

Seu objetivo é validar ideias.

Quanto antes o usuário interagir...

Melhor.

Hoje fazemos isso com wireframes.

Mockups.

Aplicações Low-Code.

Ferramentas de UX.

Nos anos 90 isso já existia, apenas com tecnologias diferentes.


3. Participação intensa do usuário

No RAD o cliente deixa de ser apenas aprovador.

Ele participa continuamente.

Isso reduz um problema clássico.

Desenvolver exatamente aquilo que ninguém precisava.

Quanto mais próximo estiver o usuário...

Maior a chance de sucesso.


4. Times pequenos e multidisciplinares

Equipes enormes costumam gerar burocracia.

RAD prefere grupos pequenos.

Com autonomia.

Decisão rápida.

Comunicação simples.

Responsabilidade compartilhada.

Décadas depois...

Scrum repetiria praticamente o mesmo conceito.


O ciclo de vida do RAD

Embora existam variações, normalmente encontramos quatro grandes fases.

Planejamento

Define objetivos.

Escopo inicial.

Equipe.

Restrições.

Não tenta prever absolutamente tudo.

Planeja apenas o suficiente para começar.


Design colaborativo

Usuários e desenvolvedores trabalham juntos.

Modelam processos.

Criam protótipos.

Validam telas.

Ajustam regras.

É uma fase extremamente dinâmica.


Construção rápida

Os desenvolvedores começam imediatamente.

Ferramentas de geração automática.

Componentes reutilizáveis.

Bibliotecas.

Frameworks.

Tudo é utilizado para acelerar o trabalho.


Transição

Depois das validações...

O sistema entra em produção.

Mas o ciclo continua.

Novas versões aparecem.

Novos ajustes são realizados.

O software evolui continuamente.


RAD e Engenharia de Software

Existe um mito curioso.

Algumas pessoas acreditam que RAD significa abandonar Engenharia de Software.

Na verdade ocorre exatamente o contrário.

O RAD depende fortemente de boas práticas.

Arquitetura.

Modelagem.

Reutilização.

Padronização.

Automação.

Sem isso...

O desenvolvimento rápido se transforma rapidamente em caos.

Quanto maior a velocidade...

Maior deve ser a disciplina.


RAD versus Waterfall

A comparação mais comum é entre RAD e Cascata.

WaterfallRAD
Planejamento extensoPlanejamento suficiente
Documentação pesadaProtótipos
Entrega únicaEntregas frequentes
Mudanças carasMudanças esperadas
Usuário distanteUsuário presente
Descobre erros tardeDescobre erros cedo

Nenhum modelo é perfeito.

Projetos extremamente regulados ainda utilizam Cascata.

Projetos inovadores normalmente preferem abordagens iterativas.


O RAD influenciou quase tudo

É curioso observar quantas metodologias modernas possuem DNA do RAD.

Scrum utiliza iterações.

Kanban utiliza fluxo contínuo.

Lean elimina desperdícios.

XP incentiva feedback constante.

DevOps aproxima desenvolvimento e operação.

Low-Code acelera construção.

No-Code reduz codificação.

IA Generativa cria protótipos em minutos.

Nenhuma dessas ideias nasceu isoladamente.

Todas beberam, em maior ou menor grau, da mesma fonte: a busca por ciclos curtos de entrega e validação.


Vantagens do RAD

Para o negócio, os benefícios são claros:

  • redução do tempo de entrega;

  • menor custo de mudanças;

  • maior participação do cliente;

  • melhor alinhamento com o negócio;

  • menor risco de desenvolver funcionalidades desnecessárias;

  • maior satisfação dos usuários;

  • retorno mais rápido do investimento;

  • possibilidade de corrigir erros antes que se tornem caros.

Para os desenvolvedores, o ganho também é significativo.

Ver o sistema funcionando cedo aumenta a motivação da equipe.

O feedback deixa de ser uma surpresa no final do projeto e passa a orientar o trabalho desde o primeiro ciclo.


Desvantagens e limitações

Nenhuma metodologia resolve todos os problemas.

O RAD também possui limitações.

Projetos gigantescos, envolvendo centenas de equipes e forte dependência regulatória, podem exigir maior formalismo.

Além disso, o sucesso depende da disponibilidade do usuário.

Se o cliente não participa, o principal benefício do RAD desaparece.

Outro ponto crítico é a arquitetura.

A pressa para entregar não pode comprometer a qualidade estrutural da solução.

Sem uma boa arquitetura, cada nova iteração aumenta a dívida técnica.


Mitos sobre o RAD

Ao longo dos anos, alguns equívocos se tornaram comuns.

"RAD é programar sem planejamento."
Não. O planejamento existe, mas é adaptativo.

"RAD elimina documentação."
Não. Ele elimina documentação desnecessária.

"RAD serve apenas para sistemas pequenos."
Não. Grandes organizações o utilizam, desde que combinado com boa governança.

"RAD gera software de baixa qualidade."
Também não. Quando bem aplicado, tende a produzir software mais aderente às necessidades do negócio justamente porque recebe feedback constante.


O que um programador COBOL deve aprender com o RAD?

Talvez a maior lição do RAD seja esta:

A velocidade de um projeto não depende apenas da linguagem.

COBOL continua processando bilhões de transações diariamente com confiabilidade incomparável.

O desafio moderno não é substituir COBOL, mas reduzir o tempo entre uma ideia de negócio e sua implementação em produção.

É aí que entram os princípios do RAD.

Prototipação.

Integração contínua.

Automação de testes.

Reutilização de componentes.

Participação ativa do usuário.

Entrega incremental.

Esses conceitos funcionam tão bem em aplicações web quanto em ambientes IBM Z.

Um programa COBOL que expõe serviços por meio do z/OS Connect, integra APIs REST, participa de pipelines DevOps e recebe feedback frequente do negócio está muito mais próximo do espírito do RAD do que muitos sistemas escritos com tecnologias consideradas "modernas".

No fim, o RAD nunca foi sobre velocidade pela velocidade.

Sempre foi sobre reduzir desperdícios, aprender mais cedo e entregar valor continuamente.

Essa ideia nasceu há mais de três décadas, atravessou gerações de linguagens, frameworks e plataformas, e continua moldando a forma como construímos software.

No próximo café, veremos como colocar o RAD em prática: metodologias, ferramentas clássicas e modernas, métricas, governança, performance, integração com Low-Code, IA e um passo a passo completo para implementar RAD com sucesso — inclusive em ambientes IBM Mainframe.


terça-feira, 23 de janeiro de 2024

Resiliência IBM Z – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param? Parte I

 

Bellacosa Mainframe ibm z resiliencia parte i

☕ Um Café no Bellacosa Mainframe

O Holocron da Resiliência IBM Z

Parte I – Conceitos Fundamentais: Por que os Mainframes Quase Nunca Param?

Quando um jovem Padawan COBOL entra pela primeira vez em uma empresa que utiliza IBM Z, normalmente ele acredita que seu trabalho consiste em escrever programas COBOL, executar alguns Jobs, consultar arquivos VSAM e, eventualmente, criar uma transação CICS.

Não demora muito para ouvir frases como:

"Precisamos garantir o SLA."

"O RTO deste sistema é de cinco minutos."

"Não podemos ter nenhum Single Point of Failure."

"Essa aplicação precisa ser resiliente."

Nesse momento, o Padawan percebe que entrou em um universo completamente diferente daquele ensinado na maioria dos cursos de programação.

No IBM Z, escrever software é apenas uma parte da engenharia. A outra metade consiste em garantir que esse software continue funcionando quando tudo ao redor começa a falhar.

Bem-vindo ao mundo da Resiliência.

Os conceitos apresentados nesta primeira parte são a base para compreender por que os maiores bancos, seguradoras, bolsas de valores, companhias aéreas e governos do mundo continuam confiando no IBM Z para executar suas aplicações mais críticas. Os termos discutidos a seguir fazem parte do glossário de Resiliency do IBM Z e representam os pilares conceituais dessa arquitetura.


O que significa Resiliency?

Imagine um hospital.

Ninguém espera que um hospital nunca enfrente problemas.

Equipamentos quebram.

Transformadores queimam.

Geradores precisam de manutenção.

Redes elétricas falham.

Mesmo assim...

A cirurgia não pode parar.

No mundo dos computadores acontece exatamente a mesma coisa.

Resiliência significa continuar prestando serviço mesmo quando partes da infraestrutura apresentam defeitos.

Esse é um conceito muito diferente de simplesmente "não quebrar".

Todo equipamento quebra.

Todo software possui defeitos.

Todo disco possui vida útil.

Toda memória pode apresentar falhas.

A diferença é que o IBM Z foi projetado assumindo que essas falhas acontecerão.

A arquitetura inteira trabalha para impedir que o usuário perceba qualquer interrupção.

Essa filosofia explica por que milhares de transações bancárias continuam acontecendo enquanto técnicos substituem processadores, discos ou placas de comunicação.

Para um programador COBOL, compreender Resiliency muda completamente a forma de pensar. O objetivo deixa de ser apenas fazer o programa "funcionar"; passa a ser escrever aplicações que convivam com uma infraestrutura preparada para falhas.


RAS – Reliability, Availability and Serviceability

Existe um conceito extremamente famoso dentro da IBM:

RAS.

São apenas três palavras.

Mas representam décadas de engenharia.

Reliability

Confiabilidade.

O equipamento precisa falhar pouco.

Isso envolve:

  • qualidade dos componentes;

  • redundância;

  • testes de fábrica;

  • validações contínuas.

Quanto maior a confiabilidade, menor a probabilidade de interrupções inesperadas.


Availability

Disponibilidade.

Mesmo quando alguma coisa quebra...

O serviço continua.

É exatamente aqui que entram conceitos como:

  • Parallel Sysplex;

  • GDPS;

  • Load Balancing;

  • WLM.

Disponibilidade não significa ausência de falhas.

Significa continuidade do negócio.


Serviceability

Facilidade de manutenção.

Imagine trocar um disco sem desligar o computador.

Ou substituir memória durante a operação.

Ou atualizar firmware sem interromper milhares de usuários.

Isso é Serviceability.

Quanto mais simples a manutenção...

Menor o tempo de indisponibilidade.


High Availability (HA)

Muitos iniciantes acreditam que Alta Disponibilidade significa "100% online".

Não é verdade.

Alta Disponibilidade significa reduzir o impacto das interrupções até um nível aceitável para o negócio.

Imagine dois caixas eletrônicos.

Se um apresentar defeito...

O cliente utiliza o outro.

Agora imagine dois servidores CICS.

Se um falhar...

O outro assume automaticamente.

Essa é a essência da HA.

A infraestrutura foi desenhada para absorver falhas sem interromper o serviço.


Disaster Recovery (DR)

Enquanto a Alta Disponibilidade lida com falhas locais, o Disaster Recovery pensa em eventos extremos.

Perguntas típicas são:

  • E se o prédio pegar fogo?

  • E se faltar energia por várias horas?

  • E se houver uma enchente?

  • E se todo o datacenter ficar inacessível?

Nesse cenário entra o Plano de Recuperação de Desastres.

O objetivo não é impedir o desastre.

É garantir que o negócio sobreviva a ele.

No IBM Z, tecnologias como GDPS, replicação de dados e sites espelhados fazem parte dessa estratégia.


SLA – Service Level Agreement

Todo sistema existe para atender um negócio.

E o negócio estabelece compromissos.

Exemplo:

"O Internet Banking deve permanecer disponível 99,99% do tempo."

Isso é um SLA.

Curiosamente, poucas pessoas percebem o impacto desses números.

Veja:

  • 99% parece excelente.

  • 99,9% é muito melhor.

  • 99,99% é extraordinário.

  • 99,999% representa apenas alguns minutos de indisponibilidade por ano.

Cada "9" adicional exige muito mais investimento em hardware, software, processos e pessoas.


RPO – Recovery Point Objective

Imagine que um banco sofra uma pane às 15h.

Qual o último dado aceitável?

15h00?

14h59?

14h30?

Ontem?

Essa resposta define o RPO.

Quanto menor o RPO...

Menor a perda de informações.

Em sistemas financeiros modernos, o objetivo costuma ser próximo de zero.

Nenhuma transação pode desaparecer.


RTO – Recovery Time Objective

Agora faça outra pergunta.

Quanto tempo o sistema pode permanecer parado?

Cinco minutos?

Uma hora?

Quatro horas?

Isso é o RTO.

Observe a diferença.

O RPO mede perda de dados.

O RTO mede tempo de recuperação.

São conceitos diferentes.

E ambos determinam toda a arquitetura de um ambiente corporativo.


Single Point of Failure (SPoF)

Este talvez seja o termo mais importante para qualquer arquiteto.

Imagine um único switch de rede.

Se ele quebrar...

Toda a empresa para.

Esse switch é um SPoF.

Agora pense em um único banco de dados.

Ou uma única fonte de alimentação.

Ou um único servidor DNS.

Todos são candidatos a pontos únicos de falha.

A missão dos arquitetos IBM Z é eliminar todos eles.

Por isso existem componentes redundantes, caminhos alternativos e múltiplos mecanismos de recuperação.


Component Failure Impact Analysis (CFIA)

O nome parece complicado.

Mas a ideia é simples.

Pergunte para cada componente:

"O que acontece se você morrer agora?"

Depois repita para:

  • discos;

  • processadores;

  • memória;

  • switches;

  • links;

  • storages;

  • sistemas operacionais.

Se alguma resposta for:

"Tudo para."

Você encontrou um problema.

O CFIA é justamente o exercício sistemático de identificar esses riscos antes que eles ocorram.


ITIL – Muito Além da Tecnologia

Muitos desenvolvedores imaginam que disponibilidade depende apenas do hardware.

Na prática, processos mal definidos também derrubam sistemas.

É aqui que entra a ITIL.

Ela organiza boas práticas para:

  • mudanças;

  • incidentes;

  • problemas;

  • configuração;

  • continuidade;

  • disponibilidade.

Quando uma grande instituição financeira realiza uma atualização em produção, normalmente existe todo um processo inspirado nessas práticas para reduzir riscos.


A Mentalidade IBM Z

Existe uma frase bastante conhecida entre profissionais experientes de Mainframe:

"No IBM Z, falhas são esperadas. O que não é aceitável é que elas interrompam o negócio."

Essa mentalidade muda completamente a forma de desenvolver software.

O programador COBOL deixa de enxergar apenas linhas de código e passa a compreender que sua aplicação faz parte de um ecossistema muito maior, onde hardware, sistema operacional, middleware, armazenamento e processos trabalham em conjunto para garantir continuidade.

Cada programa Batch, cada transação CICS e cada acesso ao Db2 participa de uma cadeia cuidadosamente projetada para manter milhões de pessoas utilizando serviços bancários, comprando passagens aéreas, movimentando bolsas de valores ou recebendo benefícios sociais sem sequer imaginar a complexidade escondida por trás de uma simples tela.

Esse é o verdadeiro espírito do IBM Z.

Não construir computadores que nunca falham.

Mas construir sistemas que continuam funcionando mesmo quando inevitavelmente algo dá errado.

No próximo capítulo, deixaremos os conceitos e entraremos na infraestrutura física do IBM Z, explorando componentes como CPC, Processing Units, HMC, Support Element, License Internal Code e outros elementos que fazem do mainframe uma das plataformas mais resilientes já criadas.


segunda-feira, 22 de janeiro de 2024

COBOL Recursivo: Quando o Padawan Descobre que um Programa Pode Invocar a Si Mesmo

 

Bellacosa Mainframe apresenta um programa cobol recursivo

COBOL Recursivo: Quando o Padawan Descobre que um Programa Pode Invocar a Si Mesmo

O Poder Proibido do CALL Infinito na Galáxia IBM Z

Por Bellacosa Mainframe

"O medo leva ao ABEND. O ABEND leva ao dump. O dump leva ao sofrimento."

— Mestre Sysprog Yoda/390

Durante muitos anos, programadores COBOL cresceram acreditando em uma verdade absoluta:

"Programa COBOL não faz recursão."

Era praticamente um dogma do templo Jedi dos mainframes.

E, honestamente?

Durante décadas isso foi quase verdade.

A maioria dos sistemas bancários, seguradoras, governo e processamento batch nunca precisou de algoritmos recursivos.

Mas então surgiram:

  • XML

  • JSON

  • árvores hierárquicas

  • parsers

  • estruturas dinâmicas

  • APIs modernas

  • integração com Java

  • serviços z/OS Connect

E um dia o jovem Padawan perguntou:

"Mestre Bellacosa...

Posso fazer um programa COBOL chamar ele mesmo?"

A resposta é:

Sim.

Mas como todo poder da Força, existe um preço.


O que é Recursividade?

Recursão significa:

Um procedimento invoca ele próprio.

Exemplo clássico:

Calcular fatorial.

5! = 5 × 4 × 3 × 2 × 1

Matematicamente:

Fatorial(n)

se n=1 retorna 1

senão

n * Fatorial(n-1)

Exemplo:

F(5)

↓

5 × F(4)

↓

5 × 4 × F(3)

↓

5 × 4 × 3 × F(2)

↓

5 × 4 × 3 × 2 × F(1)

↓

120

É uma técnica extremamente elegante.


COBOL Sempre Teve Recursão?

Não.

Historicamente COBOL nasceu em 1959.

E sua filosofia era:

Processamento comercial.

Arquivos.

Registros.

Batch.

Volumes enormes.

Não havia necessidade prática.

Durante décadas COBOL assumia:

Programa residente

Uma única Working Storage

Compartilhada

Exemplo:

WORKING-STORAGE SECTION.

01 CONTADOR PIC 9(5).

Só existe uma instância.

Todo mundo usa a mesma.

Problema:

Programa chama ele mesmo.

Segunda chamada sobrescreve variáveis.

Primeira execução quebra.

Caos.


Quando Surgiu?

IBM Enterprise COBOL começou suportar adequadamente recursão através da opção:

RECURSIVE

ou

RENT

Dependendo da geração do compilador.

Hoje encontramos suporte em:

Enterprise COBOL 4

Enterprise COBOL 5

Enterprise COBOL 6.x

COBOL 6.3

COBOL 6.4

COBOL 6.5

Totalmente suportado.

Inclusive no IBM z17.


Como Declarar um Programa Recursivo

No cabeçalho:

IDENTIFICATION DIVISION.
PROGRAM-ID. FATORIAL RECURSIVE.

ou

PROGRAM-ID. FATORIAL.

RECURSIVE.

Depende do compilador.


Exemplo Completo

Passo 1

Definir LINKAGE

LINKAGE SECTION.


01 LK-NUMERO.
   PIC 9(4).

01 LK-RESULTADO.
   PIC 9(10).

Passo 2

Procedure Division

PROCEDURE DIVISION USING
          LK-NUMERO
          LK-RESULTADO.

Passo 3

Caso base

IF LK-NUMERO <= 1

   MOVE 1 TO LK-RESULTADO

ELSE

...

Passo 4

Criar variável local

LOCAL-STORAGE SECTION.


01 WS-TEMP.
   PIC 9(10).

01 WS-N.
   PIC 9(4).

Local Storage é fundamental.

Já veremos por quê.


Passo 5

Preparar próxima chamada

COMPUTE WS-N = LK-NUMERO -1

Passo 6

Invocar a si mesmo

CALL 'FATORIAL'

USING

WS-N
WS-TEMP

Passo 7

Calcular

COMPUTE LK-RESULTADO =
        LK-NUMERO * WS-TEMP

Fim.


Programa Completo

IDENTIFICATION DIVISION.
PROGRAM-ID. FATORIAL RECURSIVE.

DATA DIVISION.


LOCAL-STORAGE SECTION.


01 WS-N.
   PIC 9(4).

01 WS-TEMP.
   PIC 9(10).


LINKAGE SECTION.


01 LK-NUMERO.
   PIC 9(4).

01 LK-RESULTADO.
   PIC 9(10).


PROCEDURE DIVISION USING
        LK-NUMERO
        LK-RESULTADO.


IF LK-NUMERO <= 1

   MOVE 1 TO LK-RESULTADO

ELSE

   COMPUTE WS-N =
           LK-NUMERO -1


   CALL 'FATORIAL'

   USING

      WS-N
      WS-TEMP


   COMPUTE LK-RESULTADO =
           LK-NUMERO * WS-TEMP

END-IF.


GOBACK.

O que Acontece na Memória?

Aqui mora a magia.

Imagine:

FATORIAL(5)

Stack:

Frame 1
n=5

Chama:

Frame 2
n=4

Depois:

Frame 3
n=3

Depois:

Frame 4
n=2

Depois:

Frame 5
n=1

Retorno:

Frame 5 → 1

Frame 4 → 2

Frame 3 → 6

Frame 2 →24

Frame 1 →120


Visualmente

STACK



F(5)

F(4)

F(3)

F(2)

F(1)

Depois:

POP


F(1)


F(2)


F(3)


F(4)


F(5)

O Papel da LOCAL-STORAGE

Muitos Padawans cometem um erro fatal.

Usar:

WORKING-STORAGE

Exemplo:

01 WS-N.

Errado.

Por quê?

Porque Working Storage é única.

Compartilhada.

Exemplo:

Primeira chamada

WS-N=5

Segunda

WS-N=4

Terceira

WS-N=3

Sobrescreve.

Tudo quebra.


LOCAL-STORAGE

Cria uma cópia nova.

Para cada chamada.

Exemplo:

Frame 1

WS-N=5

Frame 2

WS-N=4

Frame 3

WS-N=3

Independentes.


Como o Compilador Faz Isso?

Ele cria activation records.

Também chamados:

Stack frames

Contém:

Variáveis locais

Endereço retorno

Parâmetros

Estado execução

Exatamente igual:

C

C++

Java

Pascal


CALL Estático

Mais eficiente.

CALL 'FATORIAL'

Resolvido no linkedit.

Menos overhead.


CALL Dinâmico

MOVE 'FATORIAL'

TO WS-PGM


CALL WS-PGM

Mais flexível.

Menos rápido.


Existe Limite?

Sim.

STACK.

Região LE.

Memory limits.

Exemplo:

F(1000000)

Boom.

SOC1

SOC4

S878

S80A

Dependendo ambiente.


Como Evitar?

Caso base.

Sempre.

Sempre.

Sempre.

Exemplo ruim:

CALL FATORIAL


CALL FATORIAL


CALL FATORIAL

Nunca termina.


Cuidados Importantes

1 Não usar Working Storage

Errado.


2 Ter condição parada

Obrigatório.


3 Validar entrada

Exemplo:

IF NUMERO < 0

Fatorial negativo?

Não faz sentido.


4 Cuidado com profundidade

100 níveis

Ok.

500

Talvez.

10000

Perigoso.


5 Testar LE Runtime

HEAP

STACK

ALL31

Importante.


Performance

Aqui muitos ficam decepcionados.

Recursão é elegante.

Mas nem sempre rápida.

Cada chamada cria:

Frame

Parâmetros

Contexto

Retorno

Overhead.


Loop tradicional:

PERFORM


UNTIL

Quase sempre vence.


Exemplo

Fatorial iterativo.

MOVE 1 TO WS-TOTAL


PERFORM VARYING I


FROM 1


BY 1


UNTIL I > N


MULTIPLY I


BY WS-TOTAL


END-PERFORM

Muito eficiente.


Quando Vale a Pena?

Árvores.

XML.

JSON.

DOM.

Grafos.

Estruturas hierárquicas.

Menus.

Organogramas.

Filesystem.

Dependências.


Exemplo XML

empresa


 departamento


   funcionario


 departamento


   funcionario

Percorrer árvore.

Recursão fica linda.


Segurança

Sim.

Existe aspecto de segurança.

Ataque:

Stack exhaustion.

Negação de serviço.

DoS.

Programa recebe:

99999999

Explode stack.


Proteção:

IF NIVEL > 1000

DISPLAY "ERRO"

STOP RUN

Debug

Debug recursivo é divertido.

E assustador.

Ferramentas:

IBM Debug Tool

Fault Analyzer

Abend Aid

Mostram:

Call Stack

Frame atual

Parâmetros

Muito útil.


Curiosidades

Poucos sistemas bancários usam recursão pesada.

COBOL nasceu para processamento sequencial.

Por isso muitos programadores veteranos passam décadas sem escrever uma única rotina recursiva.


Outra curiosidade:

COBOL OO suporta métodos recursivos naturalmente.

INVOKE SELF

Também funciona.


Recursão de Cauda (Tail Recursion)

Alguns compiladores modernos fazem otimizações.

Mas COBOL IBM geralmente não realiza Tail Call Optimization de forma agressiva como linguagens funcionais.

Logo:

RETURN F(N-1)

Ainda pode consumir stack.

Não confie nisso.


Padrão Recomendado pelo Mestre Bellacosa

Para o jovem Padawan COBOL, eu costumo ensinar uma regra bastante prática:

Use recursão apenas quando ela deixar a solução mais clara do que um PERFORM VARYING.

Se a lógica for:

  • Fatorial

  • Somatório

  • Contador

Prefira iteração.

Se a lógica envolver:

  • Árvores

  • XML

  • JSON aninhado

  • Catálogos IMS

  • Dependências complexas

  • Estruturas organizacionais

  • Menus multiníveis

Então a recursividade torna-se uma excelente aliada.


Exemplo pratico de recursividade

Veja uma algoritmo em arvore B (B-Tree) search

https://eljefemidnightlunch.blogspot.com/2023/10/cobol-recursivo-sem-misterios.html


Considerações Finais

A recursão em COBOL é quase como encontrar um antigo holocron escondido nos corredores de um datacenter IBM Z.

Muitos veteranos nunca precisaram utilizá-la. Outros a evitam por receio de consumir stack, degradar performance ou provocar abends difíceis de diagnosticar.

No entanto, compreender programas recursivos amplia significativamente o repertório técnico de um desenvolvedor COBOL moderno. Em um mundo onde o mainframe conversa diariamente com APIs REST, processa documentos JSON complexos, integra-se com microsserviços e participa de arquiteturas híbridas, dominar recursividade deixa de ser apenas curiosidade acadêmica e passa a ser uma habilidade estratégica.

O verdadeiro Padawan não utiliza recursão para demonstrar inteligência. Ele a utiliza porque compreende profundamente o problema, conhece os limites da memória, respeita a pilha de execução do Language Environment, escolhe LOCAL-STORAGE sabiamente e sabe exatamente quando um simples PERFORM VARYING é a solução mais elegante.

E essa talvez seja a maior lição do COBOL recursivo:

Nem todo poder disponível deve ser usado. Mas todo poder disponível deve ser compreendido.

No templo Bellacosa Mainframe, conhecer a recursividade significa possuir mais uma ferramenta no cinto utilitário do Sysprog Jedi, pronta para ser acionada quando a missão exigir atravessar estruturas tão profundas quanto os corredores infinitos de uma galáxia IBM Z em plena era do z17.


domingo, 21 de janeiro de 2024

☕🔥 COMMAREA, CHANNELS e CONTAINERS no CICS TS: O Guia Definitivo para Desenvolvedores COBOL Junior

 

Bellacosa Mainframe e commarea channels e containers no cics ts

☕🔥 COMMAREA, CHANNELS e CONTAINERS no CICS TS: O Guia Definitivo para Desenvolvedores COBOL Junior

Introdução

Todo programador COBOL que inicia no mundo CICS aprende rapidamente três palavras que aparecem em praticamente qualquer aplicação online:

  • COMMAREA

  • CHANNEL

  • CONTAINER

Embora pareçam apenas mecanismos para passagem de parâmetros, na realidade representam três gerações diferentes da evolução do CICS.

Compreender quando utilizar cada abordagem, suas limitações, vantagens, implicações de performance e integração com Web Services, APIs REST e IBM MQ é fundamental para qualquer desenvolvedor que deseje construir aplicações modernas no IBM Z.

A grande dúvida dos iniciantes costuma ser:

"Se a COMMAREA funciona há décadas, por que a IBM criou Channels e Containers?"

A resposta está diretamente relacionada à evolução dos sistemas corporativos.


Como o CICS Enxerga uma Transação

Quando uma transação executa:

Cliente
   |
TRANSAÇÃO
   |
PROGRAMA A

frequentemente o programa precisa:

  • chamar outro programa

  • enviar dados

  • receber retorno

  • transferir controle

Exemplo:

PROGRAMA A
   |
 LINK
   |
PROGRAMA B

Nesse momento os dados precisam ser transferidos.

É aí que entram COMMAREA, CHANNEL e CONTAINER.


COMMAREA — O Clássico do CICS

COMMAREA significa:

Communication Area

Ela surgiu nos primeiros anos do CICS e se tornou durante décadas o principal mecanismo de comunicação entre programas.

Exemplo:

Programa A:

EXEC CICS LINK
     PROGRAM('CLIENTE')
     COMMAREA(WS-COMMAREA)
     LENGTH(200)
END-EXEC

Programa B:

01 DFHCOMMAREA.
   05 CLI-CODIGO PIC 9(08).
   05 CLI-NOME   PIC X(40).

O CICS copia os dados de um programa para outro.


Como Funciona Internamente

Imagine:

PROGRAMA A
   |
   | 200 bytes
   |
PROGRAMA B

O CICS realiza uma cópia física do conteúdo.

Por isso o tamanho importa.


Limite da COMMAREA

O limite máximo teórico é:

64 KB

Na prática:

65.535 bytes

Porém a maioria dos sistemas utiliza:

32 KB

como limite operacional seguro.

Por quê?

Porque historicamente muitos aplicativos e interfaces foram construídos considerando esse valor.


Exemplo de Layout COMMAREA

01 WS-COMMAREA.
   05 WS-HEADER.
      10 WS-OPERACAO PIC X(08).
      10 WS-USUARIO  PIC X(20).

   05 WS-CLIENTE.
      10 WS-CONTA    PIC 9(10).
      10 WS-NOME     PIC X(40).
      10 WS-SALDO    PIC S9(9)V99 COMP-3.

Total:

82 bytes

Vantagens da COMMAREA

Simplicidade

Extremamente fácil.

EXEC CICS LINK

e pronto.


Compatibilidade

Praticamente todos os sistemas CICS do mundo utilizam COMMAREA.


Performance

Para pequenos volumes:

100 bytes
500 bytes
1 KB
2 KB

é extremamente eficiente.


Desvantagens da COMMAREA

Estrutura rígida

Quem envia e quem recebe devem conhecer exatamente o mesmo layout.

Mudou um campo?

Pode quebrar tudo.


Acoplamento forte

Programa A depende diretamente do layout do Programa B.


Limite de tamanho

Web Services modernos frequentemente ultrapassam:

32 KB
50 KB
100 KB
500 KB

A COMMAREA não foi projetada para isso.


O Problema das APIs Modernas

Imagine um JSON:

{
  "cliente": {
     "nome":"João",
     "enderecos":[...],
     "cartoes":[...],
     "seguros":[...]
  }
}

Facilmente pode ultrapassar:

40 KB
80 KB
150 KB

A COMMAREA começa a sofrer.


Surge o CHANNEL

Para resolver isso a IBM criou:

CHANNEL

Pense nele como um envelope.


O que é um CHANNEL?

Um CHANNEL não contém dados.

Ele contém:

CONTAINERS

Imagine:

CHANNEL CLIENTE

   |
   +-- HEADER
   +-- DADOS
   +-- ENDERECOS
   +-- CARTOES
   +-- SEGUROS

O que é um CONTAINER?

Container é onde os dados ficam armazenados.

Cada container possui:

  • nome

  • conteúdo

  • tamanho


Analogia Simples

COMMAREA:

1 caixa gigante

CHANNEL:

1 armário

CONTAINER:

gavetas do armário

Exemplo de Criação

Criando container:

EXEC CICS PUT CONTAINER
     CONTAINER('CLIENTE')
     CHANNEL('CANAL01')
     FROM(WS-DADOS)
     FLENGTH(500)
END-EXEC

Recuperando Dados

EXEC CICS GET CONTAINER
     CONTAINER('CLIENTE')
     CHANNEL('CANAL01')
     INTO(WS-DADOS)
END-EXEC

Limites dos Containers

Ao contrário da COMMAREA:

64 KB máximo

Containers podem armazenar:

Megabytes

de informação.

Na prática:

  • JSON grandes

  • XML grandes

  • payloads extensos

funcionam muito melhor.


Estrutura Recomendada

Exemplo:

CHANNEL CLIENTE

HEADER
CLIENTE
ENDERECOS
TELEFONES
PRODUTOS
LOGS

Cada informação isolada.


Benefícios dos Channels

Menor acoplamento

Cada container pode evoluir independentemente.


Melhor manutenção

Não é necessário reconstruir um layout monolítico.


Escalabilidade

Ideal para integrações modernas.


COMMAREA vs CHANNEL

CaracterísticaCOMMAREACHANNEL
Tamanho64 KBMuito maior
EstruturaÚnicaMúltiplos Containers
JSONLimitadoExcelente
XMLLimitadoExcelente
APIs RESTFracoExcelente
MQBomExcelente
EvoluçãoDifícilFácil

Uso com Web Services

Quando um Web Service recebe:

<cliente>
 ...
</cliente>

ou

{
 ...
}

normalmente o runtime do CICS utiliza:

CHANNEL
CONTAINER

internamente.

Motivo:

Payloads variáveis.


Uso com z/OS Connect

Praticamente todas as implementações modernas utilizam:

JSON
↓
CHANNEL
↓
COBOL

em vez de COMMAREA.


Uso com IBM MQ

MQ pode trabalhar com ambos.


Modelo Tradicional

MQ
  |
COMMAREA
  |
COBOL

Modelo Moderno

MQ
  |
CHANNEL
  |
CONTAINERS
  |
COBOL

Exemplo MQ

Mensagem recebida:

Pedido
Itens
Cliente
Pagamento

Pode ser dividida em:

PEDIDO
ITENS
CLIENTE
PAGAMENTO

Cada parte em um container.


Quando Usar COMMAREA?

Utilize quando:

✅ aplicações legadas

✅ pequenas estruturas

✅ LINK simples

✅ integração interna

Exemplo:

Consulta Cliente
Consulta Agência
Consulta Conta

Quando Usar CHANNEL?

Utilize quando:

✅ APIs REST

✅ JSON

✅ XML

✅ Web Services

✅ MQ moderno

✅ microsserviços

✅ payloads grandes


Estratégia Utilizada pelos Bancos

O que normalmente vemos hoje:

Core COBOL antigo
      |
   COMMAREA

e

APIs novas
      |
CHANNEL
CONTAINER

Os dois convivem perfeitamente.


Erros Comuns dos Iniciantes

Não validar tamanho

LENGTH(...)

deve sempre ser controlado.


Alterar layout sem sincronizar

Clássico problema de COMMAREA.


Usar container gigante

Separar logicamente os dados é melhor.


Não documentar containers

Sempre documente:

CLIENTE
ENDERECO
PRODUTO
PAGAMENTO

Boas Práticas

COMMAREA

  • manter abaixo de 32 KB

  • usar copybooks

  • versionar layouts


CHANNELS

  • containers pequenos

  • nomes padronizados

  • separar responsabilidades


MQ

  • payload desacoplado

  • evitar estruturas gigantes

  • utilizar containers temáticos


Conclusão

A COMMAREA continua viva e continuará por muitos anos. Milhares de aplicações bancárias processam bilhões de transações diariamente utilizando esse mecanismo criado há décadas.

Entretanto, o mundo mudou.

JSON, APIs REST, Open Banking, PIX, Web Services, MQ distribuído e arquiteturas orientadas a serviços exigiram uma evolução do modelo tradicional.

Foi exatamente para atender esse novo cenário que surgiram os Channels e Containers.

O desenvolvedor COBOL moderno não deve enxergar COMMAREA e CHANNEL como concorrentes.

Eles são ferramentas diferentes para problemas diferentes.

A regra prática é simples:

  • COMMAREA para integrações simples e legadas.

  • CHANNEL e CONTAINER para aplicações modernas, APIs, MQ e Web Services.

Quem domina os dois mundos consegue navegar tanto nos sistemas que sustentam os bancos há décadas quanto nas novas arquiteturas digitais que conectam o IBM Z ao restante do planeta.

E essa é uma das habilidades mais valiosas para qualquer programador COBOL que deseja evoluir para desenvolvedor CICS de alto nível.

sábado, 20 de janeiro de 2024

☕💀 “RE:MONSTER” — O GOBLIN QUE TRANSFORMOU EVOLUÇÃO BIOLÓGICA EM UM SISTEMA OPERACIONAL DE GUERRA E PROVOU QUE O MAIOR PREDADOR DO ISEKAI NÃO ERA O HERÓI… ERA O PROCESSAMENTO ADAPTATIVO 🖥️🔥

 

Bellacosa Mainfrmae e o RE:Monster o goblin gulos

☕💀 “RE:MONSTER” — O GOBLIN QUE TRANSFORMOU EVOLUÇÃO BIOLÓGICA EM UM SISTEMA OPERACIONAL DE GUERRA E PROVOU QUE O MAIOR PREDADOR DO ISEKAI NÃO ERA O HERÓI… ERA O PROCESSAMENTO ADAPTATIVO 🖥️🔥

A evolução do Globin


☕ Introdução — Quando o Isekai Saiu do Modo “Herói” e Entrou em “Sobrevivência Selvagem”

Durante anos, o gênero isekai foi dominado por:

  • protagonistas gentis,

  • mundos coloridos,

  • guildas aventureiras,

  • escolas mágicas,

  • e o eterno “rei demônio”.

Então surgiu RE:MONSTER.

E o anime basicamente disse:

“Esqueça cavaleiros. Esqueça honra. A evolução pertence a quem consegue sobreviver.” 💀

O resultado foi uma obra que misturou:

  • fantasia sombria,

  • progressão monstruosa,

  • biologia predatória,

  • sobrevivência tribal,

  • e um protagonista que age mais como um processo autônomo de adaptação do que como um ser humano.


📜 Informações Oficiais

📌 Título Original

Re:Monster (リ・モンスター)

✍️ Autor

Kogitsune Kanekiru

🎨 Ilustrador da Light Novel

Yamaada

🏢 Estúdio do Anime

Studio DEEN

📅 Estreia do Anime

Abril de 2024

📚 Origem

  • Web Novel

  • Light Novel

  • Mangá

🎭 Gêneros

  • Isekai

  • Dark Fantasy

  • Ação

  • Sobrevivência

  • Evolução Monstruosa

  • Aventura

  • Seinen

🔞 Classificação Indicativa

+16 / +18 dependendo da região

Por conter:

  • violência,

  • gore,

  • escravidão,

  • temas sexuais,

  • brutalidade psicológica.

📺 Episódios

12 episódios (1ª temporada)


🖥️ Sinopse — O Processo Que Reinicializou Como Goblin

Tomokui Kanata era um humano comum… até ser assassinado.

Após morrer, ele renasce em outro mundo como um goblin recém-nascido chamado Gobrou.

Mas existe um BUG crítico no sistema:

✅ ele manteve memórias humanas
✅ ele possui inteligência superior
✅ ele herdou a habilidade “Absorption”

Tudo o que ele devora:

  • habilidades,

  • magia,

  • resistência,

  • atributos,

  • características biológicas,

…pode ser incorporado ao seu corpo.

E aí o anime abandona totalmente a ideia de “aventura heroica”.

O que vemos é:

uma entidade evolutiva crescendo exponencialmente até se tornar uma arma biológica consciente.


☕ A Grande Diferença de RE:MONSTER

A maioria dos isekais pergunta:

“Como um humano sobreviveria em outro mundo?”

RE:MONSTER pergunta algo muito mais sombrio:

“O que aconteceria se a evolução deixasse de ter limites morais?”

Essa é a verdadeira essência da obra.

Gobrou não é exatamente:

  • herói,

  • vilão,

  • anti-herói tradicional.

Ele funciona como:

  • algoritmo adaptativo,

  • inteligência predatória,

  • sistema autônomo de sobrevivência.

É quase:

“um workload manager orgânico evoluindo em produção.” 💀🖥️


🧠 A Temática Oculta — Darwinismo Selvagem

O anime trabalha fortemente:

  • seleção natural,

  • poder biológico,

  • tribalismo,

  • dominância,

  • pragmatismo extremo.

Aqui:

  • bondade não garante sobrevivência,

  • honra não impede morte,

  • moralidade não impede extinção.

O mundo de RE:MONSTER funciona como um ecossistema hostil onde:

adaptação é mais importante que ética.

Isso faz o anime parecer muito mais “cru” que:

  • Slime

  • Overlord

  • Shield Hero


⚔️ As Aventuras — Cada Arco é um Upgrade de Sistema

🩸 Sobrevivência Goblin

No começo:

  • fome,

  • fraqueza,

  • hierarquia brutal,

  • predadores,

  • tribos inimigas.

Gobrou aprende rapidamente:

quem não evolui… vira alimento.


🔥 Formação da Tribo

Ele começa a:

  • organizar goblins,

  • treinar guerreiros,

  • estruturar liderança,

  • criar estratégias.

É praticamente:

“ITIL aplicado em gerenciamento tribal goblin.” ☕


☠️ Evolução Orgânica

Cada batalha gera:

  • novas habilidades,

  • mutações,

  • upgrades corporais,

  • absorção genética.

A sensação é de assistir:

um sistema z/OS fazendo IPL contínuo sem downtime.


🧬 Transformação em Ogre

Aqui o anime muda completamente de escala.

Gobrou deixa de parecer:

  • criatura fraca,

  • monstro genérico.

E passa a virar:

  • comandante,

  • predador alfa,

  • entidade quase mítica.


🖥️ O Protagonista — Um “Sysprog Biológico”Gobrou lembra um sysprog veterano porque ele:

  • otimiza tudo,

  • reaproveita recursos,

  • aprende rápido,

  • automatiza sobrevivência,

  • escala poder continuamente.

Ele não luta por justiça.

Ele luta por:

  • eficiência,

  • continuidade,

  • domínio,

  • estabilidade da tribo.


🏢 O Studio DEEN — O Estúdio das Obras Polêmicas

O anime foi produzido pelo:

Studio DEEN

Um estúdio conhecido por:

  • obras cult,

  • adaptações controversas,

  • produções experimentais,

  • animes adultos e sombrios.

Eles participaram de:

  • Higurashi

  • Konosuba (temporadas antigas)

  • Fate/stay night clássico

  • Rurouni Kenshin antigo

O DEEN frequentemente divide opiniões:

  • alguns amam,

  • outros criticam animação inconsistente.

Em RE:MONSTER:

  • o foco ficou mais na atmosfera,

  • progressão,

  • brutalidade,

  • do que em animação ultra fluida.


🚨 Houve Censura?

Sim… parcialmente.


A obra original possui:

  • violência mais pesada,

  • conteúdo sexual mais explícito,

  • situações extremamente controversas.

O anime suavizou:

  • algumas cenas sexuais,

  • brutalidade gráfica,

  • certos momentos envolvendo escravidão e reprodução.

Mesmo assim:
o conteúdo ainda foi considerado pesado para parte do público.


🧩 Mensagens Ocultas e Filosofia

☕ 1. Evolução sem ética

O anime pergunta:

“Se a sobrevivência estiver em jogo, a moral ainda importa?”


☕ 2. Humanidade é apenas uma camada superficial

Gobrou lentamente deixa de agir como humano.

O anime mostra:

  • desumanização,

  • adaptação extrema,

  • transformação psicológica.


☕ 3. Poder muda percepção

Quanto mais forte Gobrou fica:

  • menos ele teme,

  • menos ele hesita,

  • mais distante ele fica da humanidade original.


🌍 Impacto Cultural

RE:MONSTER ganhou destaque porque:

  • ajudou a popularizar “monster evolution isekai”,

  • reforçou o arquétipo do protagonista não humano,

  • influenciou debates sobre moralidade em isekais modernos.

Ele se tornou referência para fãs de:

  • progressão de poder,

  • fantasia biológica,

  • protagonistas monstruosos.


⚠️ Por Que o Anime Divide Tanto o Público?

Porque ele quebra regras modernas do gênero.

Hoje muitos animes tentam:

  • suavizar violência,

  • romantizar protagonistas,

  • criar heróis simpáticos.

RE:MONSTER faz o contrário:

  • sobrevivência brutal,

  • pragmatismo,

  • evolução predatória,

  • poder acima da moralidade.

Isso cria:

  • fascínio,

  • desconforto,

  • polêmica,

  • culto de fãs.


☕ Comparações Técnicas de Datacenter (Modo Bellacosa Mainframe)

Gobrou é praticamente:

  • um z/OS adaptativo,

  • um RACF biológico,

  • um WLM orgânico,

  • um sistema de auto-upgrade em runtime.

Cada inimigo derrotado vira:

  • patch,

  • upgrade,

  • módulo carregado,

  • capability expansion.

💀 Em outras palavras:

“o protagonista transforma combate em instalação incremental de firmware genético.”


🏆 Vale a Pena?

Vale MUITO se você gosta de:

✅ evolução constante
✅ dark fantasy
✅ protagonistas monstruosos
✅ progressão absurda
✅ sobrevivência brutal
✅ anti-heróis pragmáticos

Talvez NÃO se:

❌ procura fantasia leve
❌ prefere heróis tradicionais
❌ não gosta de temas moralmente cinzentos
❌ se incomoda com violência e escravidão


☕ Conclusão

RE:MONSTER não é apenas um isekai.

É:

uma análise brutal sobre evolução, sobrevivência e poder absoluto em um mundo onde ética vale menos que capacidade adaptativa.

O anime pergunta algo profundamente desconfortável:

“Quando a sobrevivência vira prioridade absoluta… o que sobra da humanidade?”

E talvez seja exatamente essa pergunta que transformou RE:MONSTER em um dos isekais mais estranhos, polêmicos e fascinantes da fantasia moderna. 💀🖥️🔥

sexta-feira, 19 de janeiro de 2024

☕🚆 “O ANIME MAIS ESTRANHO DE 2024?” — SHUUMATSU TRAIN DOKO E IKU? E O COLAPSO TOTAL DA REALIDADE NOS TRILHOS DO FIM DO MUNDO

Bellacosa Mainframe e o final do mundo dentro de um trem shuumatsu train

 ☕🚆 “O ANIME MAIS ESTRANHO DE 2024?” — SHUUMATSU TRAIN DOKO E IKU? E O COLAPSO TOTAL DA REALIDADE NOS TRILHOS DO FIM DO MUNDO

☕🚆 Shuumatsu Train Doko e Iku? — “Train to the End of the World”

📌 Informações Gerais

ItemDetalhes
Título Original終末トレインどこへいく? (Shuumatsu Train Doko e Iku?)
Título InternacionalTrain to the End of the World
Criação Originalapogeego
DireçãoTsutomu Mizushima
Roteiro/ComposiçãoMichiko Yokote
StudioEMT Squared
Data de Lançamento1º de abril de 2024
TemporadaSpring 2024
Episódios12
GênerosPós-apocalíptico, sci-fi, slice of life, surrealismo, aventura, comédia absurda
ClassificaçãoTeen/Seinen leve

Música de abertura“GA-TAN GO-TON”
Ending“Eureka”

☕🔥 O QUE É SHUUMATSU TRAIN DOKO E IKU?

Imagine:

  • Girls Last Tour,

  • FLCL,

  • Sonny Boy,

  • Mawaru Penguindrum,

  • e um sistema legado IBM completamente corrompido…

…tudo isso dentro de um trem atravessando um Japão quebrado pela própria tecnologia.

Esse anime não é apenas uma aventura pós-apocalíptica.

Ele é:

uma viagem filosófica sobre colapso da realidade, isolamento social, desconexão humana e sobrevivência emocional.

E faz isso usando:

  • humor nonsense,

  • diálogos caóticos,

  • horror existencial,

  • e absurdismo japonês puro.


🚆 SINOPSE

Após o lançamento experimental da rede 7G, algo terrível acontece.

A realidade entra em colapso.

O Japão inteiro sofre distorções:

  • cidades desaparecem,

  • distâncias mudam,

  • pessoas viram animais,

  • regras físicas deixam de existir,

  • e o país se transforma num mosaico surrealista. 

Na cidade rural de Agano:

  • todos os adultos acima de 21 anos viram animais falantes.

Quando Shizuru descobre que sua amiga desaparecida Yoka pode estar viva em Ikebukuro, ela decide embarcar num trem abandonado com suas amigas.

E assim começa:

uma das viagens mais estranhas dos animes modernos.


☕🚂 RESUMO DA HISTÓRIA

A estrutura da temporada funciona quase como:

  • uma road movie,

  • um RPG episódico,

  • ou uma sequência de “zonas corrompidas”.

Cada estação ferroviária apresenta:

  • uma sociedade diferente,

  • uma distorção diferente,

  • e novas regras absurdas.

O trem literalmente atravessa:

  • cidades zumbificadas,

  • realidades deformadas,

  • cultos estranhos,

  • pessoas transformadas,

  • ambientes que parecem sonhos febris.

Mas o anime não trata isso como horror puro.

Ele trata como:

“a nova normalidade.”

E é justamente isso que torna tudo desconfortável.


☕🔥 ANÁLISE BELLACOSA MAINFRAME

🖥️ “O Japão virou um grande ambiente legacy sem documentação”

O 7G funciona exatamente como:

  • uma atualização crítica aplicada sem rollback,

  • sem teste em homologação,

  • sem disaster recovery,

  • e sem governança.

Resultado?

ABEND nacional.

O mundo de Shuumatsu Train parece:

  • um z/OS corrompido,

  • subsistemas fora de sincronismo,

  • VTAM enlouquecido,

  • JES2 travando spool,

  • DB2 inconsistente,

  • e CICS operando em modo sobrevivência.

Cada cidade é praticamente:

um subsystem quebrado tentando continuar vivo.

E o trem?
O trem é o batch sobrevivente.

Ele continua rodando mesmo quando:

  • ninguém entende mais a arquitetura original,

  • ninguém sabe as dependências,

  • e toda a documentação desapareceu.


👧 PERSONAGENS PRINCIPAIS

🚂 Shizuru Chikura

A protagonista.

Determinada, emocionalmente reprimida e extremamente resiliente.

Ela representa:

a insistência humana em continuar mesmo sem compreender o sistema ao redor.

Shizuru é o “operador veterano” do anime.
Ela não entende tudo.
Mas continua mantendo o ambiente funcionando.


🌌 Yoka Nakatomi

A ausência mais presente da obra.

Yoka simboliza:

  • inocência perdida,

  • influência tecnológica,

  • e o perigo do escapismo digital.

Ela acaba ligada diretamente ao colapso do 7G.  


📚 Akira Shinonome

A intelectual do grupo.

Obcecada por literatura e cultura antiga.

Funciona como:

o “arquivo histórico” da humanidade.

Ela constantemente tenta racionalizar o irracional.


⚡ Reimi Kuga

Explosiva e emocional.

É quem traz energia e humanidade ao grupo.

Representa:

  • instinto,

  • impulsividade,

  • sobrevivência emocional.


🍄 Nadeshiko Hoshi

A mais “normal” do grupo.

E exatamente por isso:

ela vira o ponto de estabilidade emocional do anime.


🌍 TEMÁTICAS PROFUNDAS

🔥 1. Tecnologia sem controle

O anime é uma crítica pesada à:

  • dependência digital,

  • hiperconectividade,

  • redes sociais,

  • e aceleração tecnológica.

O 7G simboliza:

tecnologia avançando mais rápido que a capacidade humana de compreendê-la.


🌌 2. A realidade virou subjetiva

Cada cidade possui suas próprias regras.

Isso reflete:

  • bolhas sociais,

  • tribalismo digital,

  • algoritmos,

  • internet fragmentada.

Cada comunidade vive numa “verdade própria”.

Exatamente como a internet moderna.


🚂 3. O trem como metáfora existencial

O trem é:

  • progresso,

  • movimento,

  • passagem do tempo,

  • fuga,

  • amadurecimento.

As garotas seguem avançando mesmo sem saber:

  • se existe destino,

  • se o mundo pode ser salvo,

  • ou se ainda existe normalidade.


☕ 4. Solidão pós-moderna

Mesmo cheio de humor, o anime é profundamente melancólico.

Todos os personagens parecem:

  • desconectados,

  • perdidos,

  • emocionalmente isolados.

O fim do mundo aqui não é explosivo.

É silencioso.


🎨 DIREÇÃO E ESTILO VISUAL

Tsutomu Mizushima usa:

  • enquadramentos desconfortáveis,

  • timing cômico estranho,

  • caos visual,

  • e ambientação surreal.

O orçamento do anime claramente não é gigantesco.

Mas a direção transforma limitação em identidade.

O anime parece:

um sonho estranho entre nostalgia e pesadelo.


🎵 TRILHA SONORA

A opening “GA-TAN GO-TON” virou uma das músicas mais memoráveis da temporada Spring 2024. 

Ela transmite:

  • viagem,

  • melancolia,

  • esperança,

  • e decadência.

Já “Eureka” encerra os episódios com aquela sensação:

“o mundo acabou… mas ainda estamos vivos.”


🔥 O QUE TORNA ESSE ANIME DIFERENTE?

✅ 1. Pós-apocalipse sem foco em violência

Não é:

  • Mad Max,

  • Attack on Titan,

  • ou Fallout.

O foco é:

  • comportamento humano,

  • estranheza,

  • absurdo existencial.


✅ 2. Surrealismo inteligente

O anime nunca explica tudo.

Ele quer:

  • desconfortar,

  • intrigar,

  • causar fascínio.

Isso lembra muito obras cult clássicas.


✅ 3. Atmosfera única

Pouquíssimos animes conseguem equilibrar:

  • fofura,

  • horror cósmico,

  • humor nonsense,

  • e melancolia existencial.


✅ 4. Road movie ferroviário

O trem vira praticamente um personagem.

Cada parada:

  • é um mini universo,

  • um experimento psicológico,

  • uma crítica social.


⚠️ PONTOS FRACOS

❌ Final acelerado

Muitos espectadores sentiram que:

  • o encerramento corre demais,

  • algumas ideias não foram aprofundadas,

  • e o lore poderia render muito mais episódios. 


❌ Não é anime para todos

Quem busca:

  • batalhas,

  • power scaling,

  • explicações lógicas,

  • narrativa tradicional,

pode estranhar MUITO.


☕🔥 IMPACTO E RECEPÇÃO

A comunidade anime ficou dividida:

  • alguns chamaram de obra-prima cult,

  • outros acharam caótico demais.

Mas praticamente todos concordam em algo:

esse anime tem personalidade própria.

Num mercado cheio de fórmulas repetidas…
isso vale ouro.


☕🚆 VEREDITO BELLACOSA MAINFRAME

CategoriaNota
Criatividade10/10
Atmosfera10/10
Construção de mundo9/10
Desenvolvimento emocional8.5/10
Narrativa8/10
SurrealismoABSURDO
OriginalidadeEXTREMAMENTE RARA

☕🔥 CONCLUSÃO FINAL

Shuumatsu Train Doko e Iku? é uma das obras mais originais da década recente dos animes.

Ele pega:

  • slice of life,

  • pós-apocalipse,

  • surrealismo,

  • sci-fi,

  • horror existencial,

  • e amizade adolescente…

…e transforma tudo numa viagem ferroviária psicodélica sobre:

  • conexão humana,

  • colapso tecnológico,

  • e sobrevivência emocional.

No estilo Bellacosa Mainframe:

☕ “Quando o sistema operacional da realidade sofre corrupção irreversível… ainda existe um último batch job atravessando os trilhos do caos.” 

quinta-feira, 18 de janeiro de 2024

A internet ficou mais chata?

 


A internet ficou mais chata?

Censura, vigilância moral e o fim da autonomia digital**

Por muito tempo a internet representou o território da liberdade. Espaço onde se tropeçava no bizarro, no proibido, no criativo e no nonsense sem filtro. Nos últimos anos, entretanto, a sensação dominante entre muitos usuários é clara: algo mudou. Tudo parece altamente policiado. Há sempre alguém julgando, denunciando ou “ensinando o que é o certo”.

A pergunta surge com força:
por que a internet está mais chata e moralista?

Este post não busca respostas absolutas. O objetivo é mapear os elementos que explicam essa “nova ordem digital”.


1. Plataformas centralizaram o poder

A internet antes era fragmentada. Hoje, concentra-se em meia dúzia de aplicativos. Quem controla essas plataformas controla:

• o que pode ser dito
• o que pode ser visto
• o que pode ser monetizado

O algoritmo virou o verdadeiro editor-chefe do mundo. Ele decide o que ganha espaço e o que é enterrado no limbo do irrelevante. Isso gera a sensação de que há um “curador invisível” guiando nossas escolhas.


2. A monetização exige ambiente “seguro”

Publicidade teme polêmicas. Para proteger anunciantes, as plataformas implementam filtros mais rígidos. Conteúdos eróticos, violentos, politizados ou “tabu” sofrem desvalorização automática.

Resultado:
o conteúdo neutro e insosso é mais recompensado do que o autêntico e arriscado.

A criatividade perde para o medo de ser desmonetizado ou banido.


3. Novo puritanismo social

Mesmo sem leis diretas, a vigilância moral aumentou. Grupos organizados promovem cancelamentos e campanhas de linchamento simbólico. Certas opiniões deixam de ser “controversas” para se tornarem proibitivas.

Isso gera autocensura. O usuário passa a se policiar para evitar punição social.


4. Regulamentações estatais em expansão

Governos adotam legislações para combate a:

• desinformação
• ódio
• exploração
• crimes virtuais

Essa normatização surge de preocupações legítimas, porém cria efeitos colaterais. Para evitar problemas legais, empresas aumentam o bloqueio automático de temas sensíveis.

O risco é simples: no esforço para proteger, pode-se começar a tolher demais.


5. O algoritmo quer perfeição emocional

Plataformas associam “bem-estar” a ausência de desconforto. Qualquer conteúdo complexo, provocativo ou que exija reflexão pode ser interpretado como “negativo”.

Assim, a cultura da internet se infantiliza. O contraditório vira inimigo.

A máquina protege o usuário do mundo, mas também o protege de pensar.


O que realmente mudou

A internet não é mais o espelho da humanidade.
Ela se tornou o produto daquilo que empresas e comunidades acreditam que deve ser aceito.

Antigamente:
→ o usuário moldava a rede
Hoje:
→ a rede molda o usuário

Cada clique é avaliado.
Cada palavra é rastreada.
Cada desejo é classificado.

A autonomia dá lugar à curadoria forçada.


Conclusão

A pergunta do título talvez esteja mal formulada.
A internet não ficou necessariamente mais “chata”.
Ela ficou governada.

O espaço que antes era caos criativo agora opera sob:

• algoritmos que selecionam o que “pode”
• moralistas que policiam o que “deve”
• anunciantes que decidem o que “vende”

A liberdade existe… desde que dentro das regras do feed.

A era da internet anárquica terminou.
Vivemos agora na internet domesticada.

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