🔥🧠 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