Translate

segunda-feira, 3 de novembro de 2025

🔥🧠 REXX: A ARTE DE ENSINAR O MAINFRAME A PENSAR — IF, DO, SELECT E O CÉREBRO OPERACIONAL DO z/OS 🧠🔥

 

Bellacosa Mainframe laços de repetição e desvio em REXX


🔥🧠 REXX: A ARTE DE ENSINAR O MAINFRAME A PENSAR — IF, DO, SELECT E O CÉREBRO OPERACIONAL DO z/OS 🧠🔥

“Enquanto muita gente achava que REXX era apenas uma linguagem de script… o mainframe já estava automatizando datacenters inteiros.”
— Bellacosa Mainframe


☕ Introdução — O Momento em Que o REXX Ganha Vida

Existe um instante mágico no aprendizado de REXX.

Até então você apenas:

  • executava comandos
  • mostrava mensagens
  • manipulava variáveis
  • fazia pequenos scripts

Mas quando aparecem:

  • IF
  • THEN
  • ELSE
  • DO
  • SELECT
  • WHILE
  • FOREVER

…o EXEC deixa de ser uma lista de comandos.

E passa a “pensar”.

É aqui que nasce a automação real.

É aqui que o REXX deixa de ser script.

E vira um OPERADOR DIGITAL DE MAINFRAME.


🧠 O REXX Foi Criado Para Humanos

Essa é talvez a característica mais genial da linguagem.

O REXX foi desenhado por Mike Cowlishaw com uma obsessão:

“Programas devem parecer inglês.”

E honestamente?

Ele conseguiu.

Compare isso:

if(x==1 && y!=2)

Com isso:

If x = 1 & y \= 2 Then

O segundo parece quase uma frase operacional.

Isso não foi acidente.

Foi engenharia de produtividade.


🏛️ O Contexto Histórico Que Pouca Gente Conhece

Nos anos 70 e 80:

  • operadores precisavam automatizar tarefas rapidamente
  • sysprogs precisavam integrar ferramentas
  • ambientes eram extremamente caros
  • erros humanos custavam milhões

Então nasceu uma linguagem:

✅ simples
✅ poderosa
✅ legível
✅ integrada ao host
✅ fácil para operadores

REXX não queria competir com FORTRAN.

Ele queria dominar o ambiente operacional.

E conseguiu.


⚡ O DIA EM QUE O OPERADOR DESCOBRE O IF

Existe uma transformação psicológica quando alguém aprende IF no REXX.

Antes:

Say "PROCESSANDO"

Depois:

If rc = 0 Then
Say "JOB EXECUTADO COM SUCESSO"
Else
Say "ABEND DETECTADO"

Agora o EXEC reage.

Analisa.

Decide.


🔥 O RC — A ENTIDADE MÍSTICA DO MAINFRAME

Se você trabalha em z/OS…

Você sabe.

RC não é apenas variável.

RC é estado emocional operacional.

If rc > 8 Then
Say "O CAOS COMEÇOU"

😂 Easter Egg #1 — O Operador Veterano

Todo operador experiente já fez isso:

If rc = 0 Then
Say "MILAGRE"
Else
Say "COMO SEMPRE"

🧮 Comparações — O Cérebro Binário do EXEC

No REXX:

  • 1 = TRUE
  • 0 = FALSE

Simples.

Elegante.

Brutalmente eficiente.


Exemplo

Say 10 > 5

Resultado:

1

O EXEC literalmente responde:

“Sim. Isso é verdade.”


🧵 Comparações String — Onde o Mainframe Mostra Sua Personalidade

No mundo distribuído moderno:

  • espaços são ignorados
  • padding é irrelevante
  • strings são “flexíveis”

No mainframe?

HAHAHAHAHAHA.

Não.


O Trauma do Campo CHAR FIXO

campo = "IBM "

é DIFERENTE de:

"IBM"

E é aqui que nasce o operador STRICT.


⚔️ O Temido ==

Say "IBM " == "IBM"

Resultado:

0

Porque no mainframe:

ESPAÇOS IMPORTAM.

Muito.


🧠 Easter Egg #2 — O Programador COBOL Sentindo Dor

Quando o novato descobre isso:

Say "ABC" == "ABC   "

o espírito de milhares de layouts PIC X(80)
sussurra no vento:

“Bem-vindo ao processamento posicional…”


🚦 IF THEN ELSE — A Tomada de Decisão do z/OS

O IF no REXX é quase poético.

If user = "IBMUSER" Then
Say "ACESSO LIBERADO"
Else
Say "CHAMA O RACF"

🔥 O Poder do DO/END

O DO/END é o contêiner da lógica.

Ele organiza o caos.


Exemplo

If rc \= 0 Then
Do
Say "ERRO DETECTADO"
Say "NOTIFICANDO OPERADOR"
Exit 8
End

☢️ Easter Egg #3 — O Exit 8 Filosófico

Existe um momento na carreira do mainframeiro em que:

Exit 8

vira linguagem universal.


🎛️ SELECT — O Menu Supremo do ISPF

O SELECT é uma obra-prima operacional.

Ele nasceu para menus.

E o ISPF praticamente respira SELECT.


Exemplo

Select

When opcao = "1" Then
Say "ALLOCATE"

When opcao = "2" Then
Say "DELETE"

When opcao = "3" Then
Say "LISTCAT"

Otherwise
Say "USUARIO INVENTANDO MODA"

End

😂 Easter Egg #4 — O Usuário Criativo

Todo sysprog conhece:

DIGITE UMA OPCAO:
_

Usuário digita:

BATATA

🔁 LOOPS — O Motor da Automação

Sem loops:

  • não existe monitoramento
  • não existe polling
  • não existe automação contínua
  • não existe scheduler inteligente

Loops são o coração operacional do REXX.


🔥 DO FOREVER — O LOOP IMORTAL

Do Forever

"LISTCAT LEVEL(PROD)"

If rc \= 0 Then
Leave

End

Esse tipo de código rodou datacenters inteiros por décadas.


☕ Easter Egg #5 — O Café do Operador

Do Forever

Say "VERIFICANDO JES2..."

If cafe = 0 Then
Signal DEAD

End

🧨 LEAVE — A FUGA ESTRATÉGICA

If rc > 8 Then
Leave

O EXEC diz:

“Chega. Não vale mais continuar.”


🔄 ITERATE — O “PRÓXIMO!”

If linha = "" Then
Iterate

Muito usado em:

  • leitura de datasets
  • parsing
  • filas
  • processamento batch

🏛️ O Mainframe Nunca Precisou de “Modernidade”

Enquanto o mundo distribuído reinventava:

  • automação
  • scripts
  • pipelines
  • workflows

O z/OS já fazia isso há décadas com:

  • JCL
  • REXX
  • ISPF
  • CLIST
  • SDSF
  • RACF automation

⚡ O REXX NÃO É “SCRIPTZINHO”

Essa é uma das maiores injustiças tecnológicas da história.

REXX controlou:

✅ bancos
✅ operadores
✅ JES2
✅ spool
✅ RACF
✅ storage
✅ ISPF
✅ automações críticas
✅ monitoramento corporativo


🧠 Exemplo Realista — Monitor Operacional

Address TSO

Do Forever

"LISTCAT LEVEL(PROD.CRITICO)"

If rc = 0 Then
Do
Say "CATALOGO OK"
End
Else
Do
Say "ALERTA!"
Say "PROBLEMA NO CATALOGO"

Exit 12
End

Call SysSleep 10

End

🔥 Easter Egg #6 — O Operador Ninja

O operador veterano olha isso:

Exit 12

e já sabe:

  • quem vai ligar
  • quem vai culpar o storage
  • quem vai dizer “aqui não mudou nada”

🎯 O Verdadeiro Poder do REXX

O REXX não impressiona por:

  • orientação a objetos
  • frameworks
  • hype
  • buzzwords

Ele impressiona por algo mais raro:

PRODUTIVIDADE OPERACIONAL ABSURDA.


☕ Bellacosa Mainframe Thought™

Existe uma diferença enorme entre:

“linguagem moderna”

e

“linguagem que mantém bancos funcionando há 40 anos.”

O REXX pertence à segunda categoria.

E honestamente?

Isso vale muito mais.


🚀 Conclusão — Quando o EXEC Aprende a Pensar

Neste momento do aprendizado:

  • IF dá decisão
  • SELECT dá organização
  • DO dá estrutura
  • LOOP dá persistência
  • LEAVE dá controle
  • ITERATE dá eficiência

E o EXEC finalmente ganha algo fundamental:

🧠 comportamento.

É aqui que nasce a automação real do mainframe.

E é aqui que muita gente percebe:

O REXX talvez seja uma das linguagens mais subestimadas da história da computação.


☕ Até o Próximo Café no Bellacosa Mainframe…

E lembre-se:

If mainframe = "VIVO" Then
Say "O MUNDO CONTINUA FUNCIONANDO"
Else
Say "ABEND GLOBAL"

😄🔥

Sem comentários:

Enviar um comentário