| Bellacosa Mainframe do go ao cobol no zos |
☕ Um Café no Bellacosa Mainframe
De Go ao COBOL no IBM Z
Você Não Está Saindo da Programação Moderna. Está Descobrindo Onde Ela Aprendeu a Ser Confiável.
"A velocidade impressiona. A estabilidade conquista. O IBM Z existe porque algumas aplicações simplesmente não podem parar."
Se você programa em Go (Golang), provavelmente já desenvolveu APIs REST, microsserviços, aplicações concorrentes, ferramentas de linha de comando, sistemas distribuídos ou soluções em nuvem.
Você conhece conceitos como:
goroutines
channels
interfaces
JSON
HTTP
testes automatizados
concorrência
Docker
Git
CI/CD
À primeira vista, aprender COBOL em IBM Z pode parecer um retorno aos anos 70.
Na realidade, acontece exatamente o contrário.
Você descobrirá uma plataforma que há décadas executa alguns dos sistemas mais críticos do planeta com níveis de disponibilidade, consistência e confiabilidade que poucas arquiteturas distribuídas conseguem igualar.
Não é trocar tecnologia.
É ampliar repertório.
A maior surpresa
Quem vem do universo Go normalmente acredita que COBOL seja apenas uma linguagem antiga.
Mas COBOL é apenas uma pequena parte do ecossistema.
Na prática você aprenderá uma arquitetura inteira composta por:
z/OS
JES2
TSO/ISPF
SDSF
JCL
VSAM
Db2
CICS
RACF
SMF
DFSMS
WLM
É parecido com alguém que conhece Go e pensa que Kubernetes é apenas um editor de YAML.
Não é.
Existe todo um ecossistema por trás.
| Bellacosa Mainframe go versus cobol no zos |
O que Go e COBOL têm em comum?
Muito mais do que parece.
Ambos valorizam simplicidade
Go ficou famoso por eliminar complexidade desnecessária.
COBOL nasceu com a mesma filosofia.
Um programa COBOL costuma ser extremamente legível.
Exemplo em Go
if saldo >= valor {
saldo -= valor
}
COBOL
IF SALDO >= VALOR
SUBTRACT VALOR FROM SALDO
END-IF
A sintaxe muda.
A lógica não.
Os dois gostam de código explícito
Go evita "mágicas".
COBOL também.
Você sempre sabe:
onde os dados estão
quem alterou
quando alterou
Essa previsibilidade explica por que bancos gostam tanto de COBOL.
Os dois valorizam estabilidade
Go prioriza compatibilidade.
IBM faz praticamente o mesmo.
Existe código COBOL escrito décadas atrás que continua compilando.
Poucas plataformas conseguem oferecer isso.
Ambos tratam processamento intensivo
Go costuma aparecer em:
gateways
APIs
proxies
observabilidade
streaming
COBOL aparece em:
compensação bancária
cartões
folha de pagamento
seguros
previdência
governo
Nos dois casos estamos falando de sistemas críticos.
Ambos processam grandes volumes
Go trabalha muito bem com milhares de conexões.
COBOL trabalha muito bem com bilhões de registros.
São desafios diferentes.
Mas ambos exigem eficiência.
Onde começam as diferenças?
Aqui começa a mudança de mentalidade.
Go nasceu na Internet
Go nasceu para:
cloud
containers
microsserviços
APIs
concorrência
O IBM Z nasceu décadas antes.
Seu foco sempre foi:
processamento massivo
consistência
segurança
disponibilidade
Isso muda completamente o modo de pensar.
Concorrência
Em Go você escreve:
go processar()
E cria uma goroutine.
No Mainframe a concorrência existe em outro nível.
Ela é administrada pelo sistema operacional.
Você aprenderá conceitos como:
Address Spaces
Dispatching
SRB
TCB
WLM
CICS Tasks
Ou seja:
menos código concorrente.
Mais gerenciamento sistêmico.
Persistência
Go normalmente conversa com:
PostgreSQL
MySQL
Redis
MongoDB
No Mainframe você encontrará:
Db2
VSAM
IMS
São tecnologias extremamente maduras.
Deploy
No Go:
go build
No IBM Z:
compilação
link-edit
geração de load module
execução via JCL
promoção entre ambientes
Existe um pipeline muito mais estruturado.
Arquitetura
Em Go:
API
↓
Service
↓
Repository
↓
Banco
No Mainframe:
Tela CICS
↓
Programa COBOL
↓
Db2
↓
VSAM
↓
Mensageria
↓
Batch
↓
Relatórios
É outra arquitetura.
O que um programador Go já leva pronto?
Muito mais do que imagina.
Você já sabe:
Resolver problemas
Esta continua sendo a habilidade principal.
Estruturas de dados
Você entende:
registros
arrays
mapas
strings
COBOL apenas usa outra sintaxe.
Modularização
Você já separa responsabilidades.
COBOL também possui:
COPYBOOKS
SUBPROGRAMS
CALL
Testes
Go incentiva testes.
Hoje o Mainframe também.
Ferramentas modernas incluem:
zUnit
IBM Test Accelerator
COBOL Check
Git
Cada vez mais empresas utilizam:
GitHub
GitLab
Azure DevOps
inclusive para COBOL.
O que precisa aprender do zero?
Agora começa a verdadeira jornada.
1. COBOL
Primeiro aprenda apenas:
DATA DIVISION
PROCEDURE DIVISION
WORKING-STORAGE
PIC
MOVE
COMPUTE
IF
PERFORM
EVALUATE
FILE SECTION
Sem pressa.
2. Arquivos
Aprenda:
Sequential
VSAM KSDS
ESDS
RRDS
Entenda por que arquivos ainda são importantes.
3. JCL
Aqui muitos iniciantes desistem.
Não desista.
JCL é apenas uma forma de dizer ao z/OS:
"Execute este programa usando estes arquivos."
Pense nele como um YAML extremamente poderoso.
4. TSO/ISPF
Você aprenderá:
editar
copiar datasets
compilar
navegar
É seu novo ambiente de desenvolvimento.
5. SDSF
Imagine um painel onde você acompanha:
jobs
logs
spool
mensagens
É isso.
6. JES2
Depois descubra quem realmente executa tudo.
Esse é o papel do JES2.
7. Db2
Depois do COBOL, estude SQL embarcado.
Você verá:
EXEC SQL
END-EXEC
Não é muito diferente de usar database/sql em Go.
8. CICS
Aqui o Mainframe ganha vida.
Você aprenderá:
transações
telas
COMMAREA
CHANNEL
CONTAINER
É como desenvolver um servidor de aplicações extremamente otimizado.
9. RACF
Segurança.
Autorização.
Perfis.
Permissões.
O equivalente ao IAM do mundo IBM Z.
10. Monitoramento
Aprenda a ler:
mensagens
ABENDs
dumps
logs
Essa habilidade vale ouro.
O que deve praticar?
Não apenas estudar.
Praticar.
Muito.
Semana 1
Escrever pequenos programas COBOL.
Somar.
Subtrair.
Calcular médias.
Ler teclado.
Formatar saída.
Semana 2
Arquivos.
Criar.
Ler.
Atualizar.
Excluir.
Semana 3
JCL.
Executar programas.
Ler SYSOUT.
Entender retorno.
Semana 4
VSAM.
Inserções.
Pesquisa.
Atualizações.
Semana 5
Db2.
CRUD.
Cursores.
SQLCODE.
Semana 6
CICS.
Primeira tela.
Primeira transação.
Primeiro programa online.
Semana 7
Debug.
ABEND.
S0C7.
S806.
S222.
S322.
Aprenda a gostar deles.
Eles serão seus professores.
Semana 8
Projeto completo.
Cadastro.
Consulta.
Alteração.
Relatório Batch.
Tela CICS.
Db2.
JCL.
Git.
Você finalmente entenderá como um sistema corporativo funciona.
A mudança de mentalidade
Quem vem do Go normalmente pensa:
"Como faço isso rapidamente?"
No Mainframe a pergunta costuma ser:
"Como faço isso para funcionar pelos próximos vinte anos?"
Essa diferença muda tudo.
O que estudar paralelamente?
Enquanto aprende COBOL, mantenha seus conhecimentos modernos.
Estude:
REST
JSON
XML
APIs
OpenAPI
Git
GitHub
Zowe
VS Code
DevOps
Jenkins
GitHub Actions
Docker
Kubernetes
OpenShift
O profissional mais valorizado hoje é aquele que conecta esses dois mundos.
Um roteiro de seis meses
Mês 1: Lógica em COBOL, DATA DIVISION, arquivos sequenciais, TSO/ISPF.
Mês 2: JCL, utilitários, SORT, IDCAMS, VSAM, SDSF.
Mês 3: Db2 para z/OS, SQL embarcado, cursores, tratamento de erros.
Mês 4: CICS, transações, BMS, COMMAREA, canais e containers.
Mês 5: Arquitetura IBM Z, RACF, desempenho, debugging, análise de ABENDs, Git, Zowe e VS Code.
Mês 6: Modernização: APIs REST, z/OS Connect, integração com aplicações Go, mensageria (IBM MQ), testes automatizados e DevOps para Mainframe.
Ao final desse período, desenvolva um projeto integrando uma API escrita em Go com um programa COBOL em CICS consumido via z/OS Connect. Essa experiência mostrará, na prática, que linguagens modernas e Mainframe não competem: elas cooperam.
O maior erro de quem vem do Go
Querer comparar cada comando.
Não faça isso.
COBOL não tenta ser Go.
Go não tenta ser COBOL.
Cada um resolve problemas diferentes.
Aprenda primeiro a pensar como um desenvolvedor Mainframe.
Depois faça as comparações.
Você compreenderá muito mais.
A maior vantagem competitiva
Existem milhares de excelentes desenvolvedores Go.
Mas poucos dominam Go e IBM Z.
Esse profissional consegue conversar com equipes de cloud, APIs, microsserviços e, ao mesmo tempo, entender os sistemas responsáveis por bilhões de transações financeiras diárias.
É justamente essa combinação que muitas organizações procuram em projetos de modernização.
Um conselho do Bellacosa
Não entre no universo Mainframe tentando provar que a tecnologia moderna é melhor.
Entre querendo entender por que tantas instituições continuam confiando nela depois de mais de seis décadas.
Você encontrará soluções elegantes para problemas complexos, uma disciplina de engenharia admirável e uma cultura de qualidade construída ao longo de gerações.
Depois de aprender COBOL, você continuará sendo um programador Go.
Mas será um programador Go que entende sistemas críticos, processamento em larga escala, arquitetura corporativa e confiabilidade de missão crítica.
E essa combinação abre portas que poucos profissionais conseguem atravessar.
Porque, no fim das contas, aprender Mainframe não é voltar ao passado.
É descobrir como o futuro continua sendo construído sobre uma base extremamente sólida.
Nos vemos no próximo café.
☕