☕ 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

Mostrar mensagens com a etiqueta Hollerith. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Hollerith. Mostrar todas as mensagens

quinta-feira, 5 de dezembro de 2019

Os Irmãos do Blues do Processamento de Dados Pequena historia dos profissionais de informatica no Brasil

 

Bellacosa Mainframe e a pequena historia do profissional de informatica no Brasil

☕ Um Café no Bellacosa Mainframe

Os Irmãos do Blues do Processamento de Dados

Quando os primeiros profissionais da informática brasileira receberam uma missão: atravessar calculadoras, telégrafos, cartões perfurados, mainframes e cinquenta anos de evolução sem deixar o processamento parar

Era noite.

Em algum lugar do Brasil industrial dos anos 1970, uma impressora de linha martelava milhares de caracteres por minuto. As unidades de fita giravam para frente e para trás como músicos esperando o momento exato de entrar na canção. Luzes piscavam no painel do computador. Um operador carregava um enorme disk pack com as duas mãos, quase como quem transportava um instrumento sagrado.

Do outro lado da parede de vidro, um programador examinava uma listagem contínua coberta de códigos, números de linha e mensagens do compilador.

O programa havia falhado.

Não existia Google.

Não existia Stack Overflow.

Não existia vídeo explicativo.

Não existia inteligência artificial para sugerir a correção.

Existiam apenas o manual, a experiência, o café, a lógica e uma equipe que sabia que precisava colocar aquele sistema novamente em funcionamento antes do amanhecer.

A missão era simples:

fazer o processamento rodar.

O prazo?

Antes que a empresa abrisse as portas.

Os recursos?

Poucos kilobytes de memória, cartões perfurados, fitas magnéticas e uma quantidade quase ilimitada de coragem.

Esta é a história da profissão de informático no Brasil. Uma história que começou muito antes do notebook, do computador pessoal e até mesmo do computador eletrônico. Ela nasceu entre calculadoras mecânicas, máquinas contábeis, telégrafos, ferrovias, fichários e departamentos Hollerith.

É também a história dos perfuradores, conferentes, operadores, programadores, analistas, técnicos de manutenção, administradores de dados e chefes de CPD que transformaram máquinas gigantescas em ferramentas essenciais para o funcionamento do país.

Eles usavam nomes diferentes.

Mas todos faziam parte da mesma banda.


1. Antes do computador, o Brasil já processava dados

Um programador COBOL iniciante pode imaginar que a história da informática começou quando alguém escreveu o primeiro IDENTIFICATION DIVISION.

Não começou.

Muito antes de existirem linguagens de programação, as empresas brasileiras já enfrentavam aquilo que hoje chamaríamos de um problema de escalabilidade.

Imagine uma grande ferrovia.

Ela precisava controlar:

  • milhares de empregados;

  • salários e benefícios;

  • locomotivas;

  • vagões;

  • horários;

  • cargas;

  • passagens;

  • oficinas;

  • ferramentas;

  • peças de reposição;

  • consumo de combustível;

  • manutenção;

  • acidentes;

  • receitas e despesas.

Enquanto uma empresa era pequena, livros contábeis e fichas manuais podiam resolver o problema. Entretanto, quando a organização crescia, o volume de informação tornava o processamento humano lento, caro e sujeito a erros.

O verdadeiro antepassado do profissional de informática não foi apenas o matemático.

Foi também o escriturário.

Era ele quem registrava, classificava, somava, conferia e arquivava informações. Em enormes salas administrativas, dezenas ou centenas de pessoas processavam dados manualmente.

O computador não surgiu primeiro para criar imagens, músicas ou mundos virtuais.

Ele surgiu para vencer filas de documentos.


2. Calculadoras mecânicas: a pré-história do processamento

Antes do computador eletrônico, existiram calculadoras mecânicas e eletromecânicas.

Elas realizavam somas, subtrações e, dependendo do modelo, multiplicações e divisões. Algumas funcionavam por manivelas. Outras utilizavam motores elétricos para movimentar engrenagens, rodas e registradores.

Não eram computadores de propósito geral, mas já introduziam uma ideia revolucionária:

Uma parte do trabalho intelectual poderia ser automatizada por uma máquina.

Para um jovem acostumado com processadores executando bilhões de operações por segundo, pode parecer pouco.

Mas considere o contexto.

Uma folha de pagamento com milhares de funcionários exigia inúmeros cálculos. Um erro poderia significar salário incorreto, imposto indevido ou total contábil incompatível.

A calculadora mecânica diminuía o esforço, mas ainda dependia intensamente do operador.

A pessoa digitava os valores.

A máquina calculava.

A pessoa anotava o resultado.

A informação precisava ser transportada manualmente de um documento para outro.

Era uma arquitetura com alto acoplamento humano.

O usuário funcionava como CPU, memória, barramento e interface.


3. O telégrafo e a primeira rede brasileira

Enquanto máquinas contábeis processavam números, o telégrafo conectava cidades, estações ferroviárias, portos e centros administrativos.

Ele foi uma das primeiras grandes infraestruturas de comunicação de dados.

Sim, caro padawan do COBOL: o telégrafo pode ser entendido como um ancestral distante das redes de computadores.

Uma mensagem era codificada.

Transmitida por um meio físico.

Recebida em outro ponto.

Decodificada.

Confirmada ou retransmitida.

Temos aí vários elementos conhecidos:

  • origem;

  • destino;

  • protocolo;

  • codificação;

  • transmissão;

  • recepção;

  • tratamento de erro;

  • operador.

Quando um telegrafista enviava uma mensagem para organizar a circulação de trens, ele participava de um sistema distribuído.

A diferença é que o middleware usava Código Morse e o operador humano fazia aquilo que hoje seria responsabilidade de um software de comunicação.

A ferrovia, portanto, não transportava apenas pessoas e mercadorias.

Transportava informações.


4. O Departamento Hollerith da Companhia Paulista

É nesse mundo de ferrovias, telégrafos, escrituração e mecanização administrativa que encontramos os departamentos Hollerith.

O nome vinha de Herman Hollerith, criador de sistemas de processamento baseados em cartões perfurados. Sua tecnologia ficou famosa pela utilização no censo norte-americano de 1890 e tornou-se a base de uma indústria de máquinas de tabulação.

No Brasil, grandes organizações passaram a empregar máquinas Hollerith para atividades administrativas. A Companhia Paulista de Estradas de Ferro está ligada a essa história de mecanização do processamento de informações ferroviárias.

O Departamento Hollerith era uma espécie de antepassado do CPD.

Não havia processador eletrônico central.

Havia um conjunto de máquinas especializadas.

Uma perfurava.

Outra conferia.

Outra classificava.

Outra intercalava.

Outra tabulava.

Outra imprimia.

O processamento era realizado como uma linha de montagem.

Observe como isso se aproxima de um pipeline:

Documento de origem
        ↓
Codificação dos dados
        ↓
Perfuração
        ↓
Conferência
        ↓
Classificação
        ↓
Tabulação
        ↓
Relatório

Hoje podemos substituir essas etapas por:

Formulário digital
        ↓
Validação
        ↓
API
        ↓
Fila
        ↓
Processamento
        ↓
Banco de dados
        ↓
Dashboard

A aparência mudou.

A lógica permaneceu.


5. O cartão perfurado: o banco de dados que cabia na mão

O cartão perfurado de 80 colunas tornou-se um dos maiores símbolos da informática corporativa.

Cada posição podia ser perfurada de acordo com um código. Letras, números e símbolos eram representados por combinações de furos.

Para um programador moderno, podemos imaginar um cartão como um registro físico.

Se o cartão representasse um funcionário, suas colunas poderiam ser organizadas assim:

01-06  Matrícula
07-36  Nome
37-44  Data de admissão
45-54  Salário
55-56  Código do departamento
57-80  Informações complementares

Isso é um arquivo de largura fixa.

Quem trabalha com COBOL reconhecerá imediatamente a filosofia.

01 REGISTRO-FUNCIONARIO.
   05 MATRICULA             PIC 9(06).
   05 NOME                  PIC X(30).
   05 DATA-ADMISSAO         PIC 9(08).
   05 SALARIO               PIC 9(08)V99.
   05 COD-DEPARTAMENTO      PIC 9(02).
   05 COMPLEMENTO           PIC X(24).

O cartão perfurado não era apenas mídia.

Ele também influenciou a própria estrutura das linguagens e dos programas.

O formato tradicional do COBOL foi organizado considerando cartões de 80 colunas:

  • colunas 1 a 6: sequência;

  • coluna 7: indicador;

  • colunas 8 a 11: Área A;

  • colunas 12 a 72: Área B;

  • colunas 73 a 80: identificação.

Nada disso nasceu por acaso.

O formato fixo do COBOL é uma lembrança fossilizada do cartão perfurado.

Easter egg desbloqueado: sempre que você encontra um programa COBOL antigo usando colunas rígidas, está olhando para a sombra digital de uma máquina de perfuração.


6. A perfuradora não era uma simples digitadora

Uma das profissões fundamentais daquela época era a de perfurador ou perfuradora.

O programador escrevia o código em folhas de codificação.

Essas folhas eram encaminhadas ao setor de perfuração.

O profissional lia cada linha e a transferia para cartões.

A operação exigia velocidade, atenção e precisão.

Um furo errado poderia transformar:

ADD VALOR-VENDA TO TOTAL-VENDAS

em uma instrução inválida.

Pior: dependendo do erro, o programa poderia ser compilado e produzir um resultado incorreto.

Depois da perfuração vinha a conferência.

Em muitas instalações, outro profissional digitava novamente o conteúdo em uma máquina verificadora. Se a sequência digitada não correspondesse aos furos existentes, a máquina indicava divergência.

Era uma forma humana e mecânica de dupla validação.

Hoje chamamos isso de controle de qualidade.

Naquela época, chamava-se sobrevivência operacional.


7. Quando deixar cair um programa era literalmente possível

Um programa podia ser formado por centenas ou milhares de cartões.

Cada cartão representava uma linha.

Os cartões precisavam permanecer em ordem.

Se a pilha caísse no chão, o programa também caía.

Literalmente.

Por isso as colunas iniciais frequentemente continham números de sequência.

Caso o desastre acontecesse, os cartões poderiam ser classificados novamente por uma máquina sorter.

Essa é uma bela lição para o programador iniciante:

Numeração de sequência não era decoração. Era recuperação de desastre.

Hoje você usa Git.

Naquela época, usava-se disciplina, numeração e caixas de cartão.

A frase “meu código quebrou” tinha outra dimensão.


8. Os primeiros computadores desembarcam no Brasil

A chegada dos computadores eletrônicos ao Brasil ocorreu durante a década de 1950.

Um marco frequentemente citado é a instalação, em 1957, de um computador Univac para o governo do Estado de São Paulo. Pouco depois, em 1959, a Anderson Clayton adquiriu um IBM 305 RAMAC, apontado como o primeiro computador eletrônico instalado no setor privado brasileiro. (Din UEM)

O RAMAC era impressionante porque utilizava armazenamento em disco de acesso aleatório. Sua unidade IBM 350 empregava cinquenta discos magnéticos de grandes dimensões e armazenava poucos megabytes — capacidade minúscula hoje, mas revolucionária naquele contexto. (Wikipédia)

Não pense nesses computadores como PCs enormes.

Eles pertenciam a outro universo operacional.

A empresa não “comprava um computador” como quem compra uma estação de trabalho.

Ela implantava uma infraestrutura.

Era necessário preparar:

  • sala especial;

  • alimentação elétrica;

  • climatização;

  • piso;

  • cabeamento;

  • procedimentos;

  • operadores;

  • técnicos;

  • programadores;

  • métodos de segurança;

  • rotinas de backup.

A chegada do computador criava um novo departamento e uma nova cultura.


9. O CPD entra no palco

O Centro de Processamento de Dados, o famoso CPD, tornou-se o coração informacional das organizações.

Ali ficavam:

  • a unidade central;

  • leitoras de cartões;

  • perfuradoras;

  • impressoras de linha;

  • unidades de fita;

  • discos removíveis;

  • consoles;

  • painéis;

  • formulários contínuos;

  • armários de documentação.

O CPD era cercado por respeito e mistério.

Possuía acesso controlado.

Em muitos ambientes havia paredes de vidro separando os visitantes das máquinas.

O ar-condicionado era intenso.

Os operadores usavam roupas adequadas ao ambiente e, em algumas empresas, jalecos.

As máquinas produziam uma trilha sonora própria:

clac-clac-clac dos cartões,

vrummm das fitas,

trrrrrrrrr das impressoras,

bip do console.

Era rhythm and blues em código binário.

Uma banda inteira tocando para fechar a folha de pagamento.


10. IBM System/360: a grande banda entra em cena

Em 1964, a IBM anunciou a família System/360.

O nome representava a ambição de cobrir uma ampla variedade de aplicações: negócios, ciência, indústria e governo.

O conceito de família compatível foi revolucionário.

Antes disso, migrar para uma máquina maior frequentemente exigia reescrever programas. Com o System/360, a IBM buscava permitir que clientes evoluíssem dentro de uma arquitetura comum.

No Brasil, sistemas dessa família chegaram a bancos, indústrias, siderúrgicas, universidades e órgãos públicos.

Para empresas como a Mannesmann, o mainframe tornou-se parte da infraestrutura industrial.

Ele processava:

  • produção;

  • estoques;

  • custos;

  • materiais;

  • compras;

  • folha de pagamento;

  • contabilidade;

  • faturamento;

  • manutenção.

O computador deixava de ser uma curiosidade tecnológica.

Tornava-se sistema nervoso corporativo.


11. Uma carteira de trabalho assinada em 1975

Quando alguém olha para uma carteira de trabalho assinada em 1975 com uma função relacionada a processamento de dados, não está vendo apenas um registro profissional.

Está vendo um documento arqueológico da informática brasileira.

A pessoa que ingressava em um CPD naquela época encontrava um mundo sem interfaces amigáveis.

Aprender significava:

  1. observar profissionais experientes;

  2. estudar manuais;

  3. decorar códigos;

  4. entender formulários;

  5. acompanhar operações;

  6. interpretar mensagens;

  7. registrar procedimentos;

  8. errar com cuidado;

  9. nunca repetir o mesmo erro;

  10. respeitar a produção.

No CPD da Mannesmann, diante de um IBM System/360, as limitações de memória não eram uma abstração acadêmica.

Eram parte de cada decisão.

Uma tabela muito grande podia não caber.

Um programa mal estruturado podia consumir recursos preciosos.

Um excesso de operações de entrada e saída podia aumentar o tempo de execução.

Um erro na definição de arquivo podia interromper toda uma cadeia de processamento.

Essa escola criava um tipo específico de profissional:

alguém que pensava antes de executar.


12. O programador não começava programando

O caminho profissional podia começar em várias funções:

Auxiliar administrativo
        ↓
Perfurador
        ↓
Conferente
        ↓
Operador
        ↓
Programador trainee
        ↓
Programador júnior
        ↓
Programador pleno
        ↓
Programador sênior
        ↓
Analista de sistemas

Nem todas as carreiras seguiam exatamente essa ordem, mas era comum o conhecimento ser adquirido dentro da empresa.

O profissional conhecia primeiro a operação.

Depois aprendia a lógica.

Depois recebia pequenas alterações.

Mais tarde criava programas completos.

Isso tinha uma vantagem enorme: muitos programadores entendiam profundamente como o sistema era executado.

Eles sabiam o que acontecia antes e depois de seu código.

Sabiam quem montava a fita.

Sabiam onde o relatório era entregue.

Sabiam qual departamento dependia do processamento.

Hoje um desenvolvedor pode executar uma aplicação sem conhecer a infraestrutura.

Naquela época, software e operação viviam quase grudados.

Era DevOps antes do nome DevOps.


13. A folha de codificação: programar antes de digitar

O programa começava no papel.

O analista descrevia o problema.

Criava fluxogramas.

Definia arquivos.

Desenhava relatórios.

Especificava validações.

O programador recebia essas informações e escrevia o código em folhas de codificação.

Cada linha era planejada.

Depois a folha seguia para perfuração.

Esse processo podia levar horas ou dias até a primeira compilação.

Portanto, escrever código sem pensar era muito caro.

Considere um ciclo típico:

Especificação
     ↓
Fluxograma
     ↓
Teste de mesa
     ↓
Folha de codificação
     ↓
Perfuração
     ↓
Conferência
     ↓
Montagem do deck
     ↓
Submissão
     ↓
Compilação
     ↓
Listagem
     ↓
Correção

Hoje o compilador responde em segundos.

Naquela época, o programador podia entregar o job e aguardar uma janela de processamento.

O erro voltava impresso.

A depuração era feita examinando papel.


14. O teste de mesa: o debugger dentro da cabeça

Antes de submeter o programa, o profissional realizava o teste de mesa.

Ele simulava manualmente a execução.

Suponha o seguinte trecho:

MOVE 0 TO TOTAL-GERAL

PERFORM UNTIL FIM-ARQUIVO = 'S'
    READ ARQUIVO-VENDAS
        AT END
            MOVE 'S' TO FIM-ARQUIVO
        NOT AT END
            ADD VALOR-VENDA TO TOTAL-GERAL
    END-READ
END-PERFORM

No teste de mesa, o programador criava uma pequena tabela:

Registro   Valor   Fim?   Total
1          100     N      100
2          250     N      350
3           50     N      400
EOF        ---     S      400

Ele verificava cada mudança de variável.

Isso revelava loops infinitos, totais incorretos, condições erradas e registros processados duas vezes.

Dica Bellacosa para o iniciante:

Quando um programa COBOL parecer misterioso, execute cinco registros no papel. O papel não mente e não esconde estado.


15. O operador: maestro da sala de máquinas

O operador não era alguém que apenas apertava ENTER.

Ele controlava a execução física e lógica do ambiente.

Suas tarefas podiam incluir:

  • iniciar equipamentos;

  • carregar o sistema;

  • montar fitas;

  • instalar disk packs;

  • alimentar leitoras;

  • retirar listagens;

  • controlar filas;

  • responder a mensagens;

  • registrar falhas;

  • reiniciar jobs;

  • comunicar incidentes;

  • executar rotinas de backup.

Imagine um job solicitando:

MOUNT TAPE PAYR01 ON UNIT 480

Alguém precisava localizar a fita correta, conferir sua etiqueta, montá-la na unidade e responder ao sistema.

A automação dependia de mãos humanas.

O operador era parte do fluxo de execução.

Se ele montasse a fita errada, o sistema poderia ler informações incorretas.

Por isso existiam procedimentos rigorosos.

O CPD ensinou cedo uma lição que a nuvem às vezes faz esquecer:

Infraestrutura abstrata continua sendo infraestrutura real em algum lugar.


16. Disk packs: o disco removível com peso de responsabilidade

Antes dos pequenos discos rígidos modernos, eram comuns conjuntos removíveis de discos magnéticos.

Os disk packs possuíam múltiplos pratos.

O operador os transportava em recipientes protetores e os instalava em unidades específicas.

Cada superfície podia armazenar dados.

Uma poeira, um impacto ou uma instalação inadequada podia causar danos.

A troca de um volume não era um clique.

Era uma operação física.

Hoje montamos um volume em cloud computing usando uma instrução ou console.

Naquela época, “montar o volume” significava literalmente pegar o volume com as mãos.

Outro easter egg tecnológico:

O verbo mount, usado até hoje em sistemas operacionais, preserva a memória de uma época em que mídias precisavam ser fisicamente montadas.


17. Fitas magnéticas e o pensamento sequencial

As fitas magnéticas foram fundamentais.

Elas ofereciam boa capacidade para a época e eram úteis para:

  • arquivos históricos;

  • backups;

  • processamento em lote;

  • transferência;

  • entrada e saída de grandes volumes.

Mas a fita era sequencial.

Para chegar ao registro desejado, era necessário percorrer os anteriores.

Esse comportamento influenciou profundamente os programas COBOL.

Muitos sistemas eram desenhados para ler dois arquivos ordenados e realizar casamento de registros.

Exemplo:

Arquivo de clientes
+ 
Arquivo de pagamentos
=
Relatório de clientes pagos e inadimplentes

O algoritmo caminhava pelos dois arquivos em ordem de chave.

Essa técnica continua valiosa.

Ela ensina que a melhor solução depende das características do armazenamento.

Não existe algoritmo isolado da infraestrutura.


18. O analista de sistemas: tradutor entre dois mundos

Com o crescimento dos sistemas, tornou-se necessário separar responsabilidades.

O analista conversava com as áreas de negócio.

Ele precisava compreender:

  • como a empresa funcionava;

  • quais documentos existiam;

  • quais regras eram aplicadas;

  • onde ocorriam erros;

  • quais relatórios eram necessários;

  • quais arquivos deveriam ser criados;

  • quais controles seriam obrigatórios.

Depois transformava isso em especificação técnica.

O analista era um tradutor.

De um lado, o usuário dizia:

“Preciso impedir o faturamento de clientes bloqueados.”

Do outro, o programador precisava receber algo como:

Se o código de situação do cliente for diferente de 01,
rejeitar a transação, registrar ocorrência e emitir mensagem 145.

Boa análise elimina ambiguidade.

Esse princípio continua absolutamente atual.

Um requisito ruim em 1975 gerava um programa errado.

Um requisito ruim em 2026 gera um microsserviço errado muito mais rapidamente.


19. Os primeiros cursos e a formação prática

Durante os primeiros anos, a indústria formava grande parte de seus profissionais.

Fabricantes ofereciam treinamento.

Empresas criavam programas internos.

Manuais técnicos circulavam entre equipes.

Os primeiros cursos superiores brasileiros voltados especificamente à computação surgiram no final da década de 1960. Estudos históricos apontam a criação, em 1969, de cursos de graduação plena na Unicamp e na Universidade Federal da Bahia. (HCTE UFRJ)

Até que essa formação se difundisse, os profissionais pioneiros precisavam vir de outras áreas:

  • engenharia;

  • matemática;

  • administração;

  • contabilidade;

  • estatística;

  • operação de máquinas;

  • funções administrativas.

A informática brasileira foi construída por uma tripulação heterogênea.

Não havia uma estrada pronta.

Eles desenharam a estrada enquanto dirigiam.


20. Uma correção histórica importante sobre 1985

Aqui precisamos ajustar uma informação frequentemente repetida.

O Decreto nº 91.250, de 17 de maio de 1985, não regulamentou de forma ampla e definitiva o exercício das profissões de informática no setor privado brasileiro.

Ele alterou dispositivos do Decreto nº 83.989, de 1979, relacionados a categorias funcionais e requisitos de ingresso no serviço público federal. Entre as alterações, incluiu o curso de Tecnólogo em Processamento de Dados entre as formações aceitas para a categoria funcional de Analista de Sistemas. (Presidência da República)

Portanto, a interpretação mais precisa é:

O decreto contribuiu para organizar e reconhecer cargos de informática dentro da estrutura funcional federal, mas não criou uma regulamentação geral da profissão de programador ou analista para todo o mercado brasileiro.

A regulamentação ampla das profissões de informática continuou sendo objeto de debates e projetos legislativos posteriores. (Legis Senador)

Isso não diminui a importância histórica de 1985.

Pelo contrário.

Mostra como o Estado precisou adaptar suas estruturas administrativas ao crescimento de uma atividade que já existia havia décadas.

A profissão surgiu primeiro.

A legislação tentou alcançá-la depois.


21. O veterano sem diploma específico não era improvisado

Quando se fala em reconhecer experiência profissional, é preciso evitar um erro comum.

O pioneiro que não possuía diploma de Ciência da Computação não era necessariamente alguém sem formação.

Muitos eram engenheiros, matemáticos, administradores, contadores ou técnicos altamente especializados.

Outros haviam aprendido integralmente dentro das empresas.

Eles acumulavam milhares de horas de prática.

Conheciam máquinas que exigiam domínio simultâneo de:

  • lógica;

  • hardware;

  • armazenamento;

  • operação;

  • linguagem;

  • negócio;

  • contingência;

  • documentação.

O mercado não podia simplesmente declarar:

“Agora existe um curso; tudo o que veio antes deixou de valer.”

Seria como construir uma ponte e depois informar aos engenheiros que fizeram a obra que sua experiência não conta.

O reconhecimento da experiência preservava a memória técnica das organizações.


22. A reserva de mercado e a informática nacional

Durante parte das décadas de 1970 e 1980, o Brasil adotou políticas de proteção à indústria nacional de informática.

A intenção era reduzir dependência externa e desenvolver capacidade tecnológica local.

Esse movimento ajudou a estimular empresas, pesquisas e projetos nacionais, mas também limitou o acesso a certos equipamentos estrangeiros, aumentou custos e criou diferenças tecnológicas em relação aos principais mercados mundiais.

Foi uma história cheia de contradições.

De um lado:

  • formação de engenheiros;

  • criação de empresas nacionais;

  • desenvolvimento de hardware;

  • pesquisa universitária;

  • domínio local de tecnologias.

Do outro:

  • equipamentos caros;

  • atraso em determinados segmentos;

  • restrições de importação;

  • compatibilidades problemáticas;

  • mercado paralelo.

Em 1972, o Patinho Feio, desenvolvido na Universidade de São Paulo, tornou-se um símbolo do esforço brasileiro de projetar computadores. O projeto nasceu no ambiente acadêmico da Escola Politécnica da USP e deixou um legado importante para ensino e indústria. (Revista Pesquisa Fapesp)

A informática nacional não foi apenas uma tentativa de copiar máquinas.

Foi também um laboratório de formação humana.


23. A grande migração: do cartão para o terminal

Com a popularização dos terminais, especialmente famílias como o IBM 3270, a relação entre o programador e o computador mudou.

Antes:

Papel → perfuração → cartão → leitora → compilação → listagem

Depois:

Terminal → editor → submissão → spool → correção

O ciclo encurtou.

Ferramentas como TSO e ISPF transformaram o desenvolvimento em mainframe.

O código passou a ser editado diretamente em datasets.

O programador podia consultar a saída no spool.

Alterar uma linha tornou-se muito mais rápido.

Mas os hábitos do cartão continuaram presentes:

  • colunas;

  • largura fixa;

  • sequência;

  • datasets;

  • jobs;

  • relatórios;

  • processamento batch.

A nova tecnologia não apagou a anterior.

Construiu sobre ela.


24. Cinquenta anos de armazenamento

Uma pessoa que iniciou a carreira em 1975 pôde testemunhar uma das maiores transformações materiais da história.

Ela atravessou:

Cartão perfurado
      ↓
Fita magnética
      ↓
Disk pack
      ↓
Disquete
      ↓
Disco rígido
      ↓
RAID
      ↓
Storage corporativo
      ↓
SAN
      ↓
SSD
      ↓
NVMe
      ↓
Object storage
      ↓
Cloud computing

No cartão, o dado era visível como um furo.

Na fita, era uma sequência magnética.

No disco, ocupava trilhas e setores.

Na nuvem, parece não possuir localização física.

Mas ainda está armazenado em algum dispositivo.

A nuvem não eliminou o hardware.

Apenas colocou o hardware atrás de uma API.


25. O que o programador COBOL iniciante deve aprender com os pioneiros

Passo 1 — Entenda o negócio

Não comece apenas pela sintaxe.

Descubra:

  • quem usa o programa;

  • qual processo ele atende;

  • quais dados recebe;

  • qual resultado produz;

  • o que acontece quando falha.

Passo 2 — Leia o layout do arquivo

Em COBOL, dados são arquitetura.

Analise:

  • PIC;

  • tamanho;

  • sinal;

  • casas decimais;

  • campos redefinidos;

  • níveis;

  • campos de controle.

Passo 3 — Faça um teste de mesa

Pegue poucos registros.

Simule:

  • entrada;

  • condições;

  • cálculos;

  • saída;

  • fim de arquivo.

Passo 4 — Conheça o JCL

O programa não vive sozinho.

O JCL informa:

  • qual programa executar;

  • quais arquivos utilizar;

  • onde estão os dados;

  • o que fazer com a saída;

  • quais recursos serão necessários.

Passo 5 — Leia o spool

Não procure apenas a última mensagem.

Examine:

  • etapas executadas;

  • códigos de retorno;

  • mensagens;

  • alocações;

  • estatísticas;

  • dumps.

Passo 6 — Respeite a produção

Nunca trate uma alteração como “apenas uma linha”.

Uma linha pode afetar:

  • milhões de registros;

  • milhares de clientes;

  • fechamento contábil;

  • pagamento;

  • faturamento;

  • obrigação legal.

Passo 7 — Documente

O profissional seguinte talvez seja você mesmo seis meses depois.

Escreva para que ele entenda.


26. Curiosidades da estrada mainframe

O formulário contínuo tinha personalidade

Impressoras de linha utilizavam papel contínuo com furos laterais. Relatórios gigantes podiam ocupar caixas inteiras.

O erro podia chegar de carrinho

Listagens volumosas eram transportadas em carrinhos dentro de grandes CPDs.

O som ajudava no diagnóstico

Operadores experientes reconheciam anormalidades pelo ruído das unidades e impressoras.

A mídia tinha biblioteca

Fitas e discos eram armazenados, catalogados, emprestados e devolvidos como livros.

Backup era uma operação física

Copiar dados significava usar dispositivos, mídias, tempo de máquina e procedimentos formais.

O café era um componente crítico

Não aparece no diagrama da arquitetura, mas sustentou muitas janelas batch.


27. Easter egg: estamos em uma missão de Deus?

Os protagonistas de uma famosa comédia musical de 1980 cruzam estradas, reúnem antigos companheiros e enfrentam obstáculos absurdos para salvar aquilo em que acreditam.

A geração pioneira da informática brasileira também recebeu uma missão.

Não usava um automóvel preto atravessando Chicago.

Usava ônibus, trem, fusca, crachá e relógio de ponto.

Não precisava reunir uma banda.

Precisava reunir:

  • o analista;

  • o programador;

  • o perfurador;

  • o conferente;

  • o operador;

  • o técnico;

  • o usuário;

  • o chefe do CPD.

Quando todos trabalhavam em harmonia, o processamento entrava no ritmo.

Quando um deles saía do compasso, aparecia o ABEND.

A diferença entre uma banda e um CPD talvez seja menor do que parece.

Ambos exigem sincronização.

Ambos dependem de disciplina.

Ambos possuem bastidores invisíveis.

E ambos podem ser destruídos por alguém que entra no momento errado.


28. O verdadeiro mainframe sempre foi humano

É tentador contar a história da informática como uma sequência de máquinas.

Hollerith.

UNIVAC.

RAMAC.

System/360.

System/370.

308X.

ES/9000.

S/390.

IBM Z.

Mas máquinas não escrevem sua própria história.

Foram pessoas que decidiram como utilizá-las.

Pessoas perfuraram cartões.

Pessoas carregaram discos.

Pessoas interpretaram dumps.

Pessoas enfrentaram madrugadas.

Pessoas explicaram sistemas.

Pessoas ensinaram colegas.

Pessoas preservaram programas.

Pessoas migraram dados.

Pessoas impediram que décadas de conhecimento fossem perdidas.

O profissional que começou em 1975 e chegou à computação em nuvem não atravessou apenas mudanças de equipamento.

Atravessou diferentes maneiras de imaginar o que é informação.

Primeiro, a informação era um documento.

Depois, um furo.

Depois, um campo magnético.

Depois, um registro.

Depois, uma tabela.

Depois, um objeto.

Depois, um evento distribuído.

Mas, em todas as épocas, alguém precisou responder às mesmas perguntas:

  • O dado está correto?

  • O processamento terminou?

  • O resultado pode ser confiado?

  • Existe recuperação?

  • Quem será afetado?

  • O que faremos se falhar?


Conclusão: todos fazem parte da mesma banda

A história da profissão de informático no Brasil não começa no Vale do Silício.

Começa também nas ferrovias, nos escritórios, nos bancos, nas siderúrgicas, nas repartições públicas, nas universidades e nos departamentos Hollerith.

Começa com pessoas que mecanizaram cálculos.

Continua com perfuradores que transformaram papel em dados.

Avança com operadores que comandaram salas cheias de máquinas.

Ganha lógica com programadores que escreveram sistemas em Assembler, COBOL, FORTRAN e RPG.

Ganha visão com analistas que converteram processos empresariais em especificações.

Ganha escala com os grandes mainframes.

Ganha alcance com redes e terminais.

Ganha velocidade com discos e servidores.

Ganha abstração com virtualização e nuvem.

E chega ao presente com ambientes distribuídos, inteligência artificial e armazenamento aparentemente infinito.

Entretanto, a essência permanece.

Informática continua sendo a arte de transformar uma necessidade humana em uma sequência confiável de operações.

Por isso, olhar para uma carteira de trabalho assinada em 1975 não é praticar nostalgia vazia.

É reconhecer um documento de fundação.

Aquela assinatura pertence a uma geração que entrou em CPDs quando o conhecimento ainda precisava ser descoberto, traduzido e transmitido de pessoa para pessoa.

Uma geração que programava na raça.

Que respeitava cada byte.

Que sabia o peso de um disco.

Que conhecia o valor de uma fita.

Que entendia o silêncio de uma máquina parada.

Que não precisava chamar tudo de “missão crítica”, porque sabia que, se o processamento não terminasse, alguém não receberia, uma fábrica não faturaria ou um banco não fecharia.

A nova geração precisa conhecer essa história não para repetir suas limitações, mas para herdar suas virtudes:

disciplina,

curiosidade,

responsabilidade,

capacidade de análise,

respeito aos dados,

e coragem para enfrentar sistemas que parecem impossíveis.

Portanto, coloque os óculos escuros.

Ajuste o chapéu.

Confira o JCL.

Monte a fita.

Não derrube os cartões.

Temos memória limitada, uma janela batch fechando, centenas de quilômetros de história pela frente e um sistema inteiro esperando para ser processado.

Estamos em uma missão.

Fazer o conhecimento dos pioneiros continuar rodando.

Conheça um pouco sobre o Cobol

 https://eljefemidnightlunch.blogspot.com/2009/04/cobol-uma-odisseia-de-1959-ao-ibm-z.html

segunda-feira, 12 de agosto de 2019

O Paciente 1890: Herman Hollerith, Cartões Perfurados e o Dia em que o Big Data Entrou na Sala de Emergência

Bellacosa Mainframe apresenta herman hollerith

☕ Um Café no Bellacosa Mainframe

O Paciente 1890: Herman Hollerith, Cartões Perfurados e o Dia em que o Big Data Entrou na Sala de Emergência

Imagine a cena.

Ano: 1890.

Local: Estados Unidos.

Na sala de emergência não há médicos, estetoscópios ou aparelhos de ressonância magnética.

Há funcionários públicos.

Muitos funcionários públicos.

Montanhas de papel.

Tabelas.

Listas.

Canetas.

Calculadoras mecânicas.

E um paciente em estado crítico.

O nome do paciente?

Censo dos Estados Unidos.

Sintomas?

Excesso de dados.

Processamento lento.

Escalabilidade praticamente inexistente.

Grande risco de erro humano.

Diagnóstico preliminar?

A população americana estava crescendo mais rápido do que a capacidade do governo de contar a própria população.

Se o Dr. House fosse analista de sistemas em 1890, provavelmente entraria na sala, olharia para aquelas toneladas de papel e diria:

— Não precisamos de mais funcionários. Precisamos parar de fazer isso como idiotas.

E, surpreendentemente, foi mais ou menos isso que Herman Hollerith percebeu.

A solução não seria contratar milhares de pessoas adicionais.

Seria automatizar o processamento dos dados.

E nesse momento começa uma das histórias mais importantes da computação.

Não com um computador eletrônico.

Não com COBOL.

Não com IBM.

Não com System/360.

Nem sequer com válvulas.

A história começa com um pedaço de papel perfurado.

E uma pergunta que ainda hoje atormenta qualquer programador COBOL trabalhando em um banco:

Como processar milhões de registros de maneira rápida, previsível e confiável?

Bem-vindo ao episódio de hoje do nosso hospital tecnológico.

Pegue o café.

O paciente tem aproximadamente 136 anos.

E, surpreendentemente, continua vivo.


🩺 Capítulo 1 — O paciente apresenta sintomas graves

Para entender Hollerith, precisamos primeiro entender o problema.

A Constituição dos Estados Unidos exige que o governo realize periodicamente um censo da população.

Isso não era apenas curiosidade estatística.

Os dados do censo influenciavam questões importantes como representação política, planejamento público e distribuição de recursos.

No século XIX, entretanto, coletar dados significava basicamente escrever coisas em papel.

Imagine milhões de pessoas respondendo perguntas como:

nome,

idade,

sexo,

profissão,

estado civil,

origem,

local de residência,

ocupação.

Agora imagine funcionários tentando transformar tudo isso em estatísticas nacionais.

Sem Excel.

Sem SQL.

Sem Python.

Sem Db2.

Sem SORT.

Sem DFSORT.

Sem ICETOOL.

Sem absolutamente nada que um programador moderno reconheceria como ferramenta computacional.

Era processamento humano.

O censo americano de 1880 havia se tornado particularmente problemático.

Sua tabulação completa levou muitos anos.

E aqui apareceu um problema assustador.

Se a população continuasse crescendo, existia o risco de o processamento de um censo não terminar antes do próximo começar.

Isso, em linguagem moderna, seria algo semelhante a executar:

JOB CENSUS80

START: 1880
END:   1888

e descobrir:

NEXT JOB: CENSUS90
START: 1890

O SLA já estava basicamente condenado.

Podemos imaginar o JES emitindo:

IEF450I CENSUS80 - TIME LIMIT EXCEEDED

Claro que JES ainda não existia.

Mas o problema operacional era exatamente esse.




🧠 Capítulo 2 — O diagnóstico de Hollerith

Herman Hollerith era engenheiro e estatístico.

Ele percebeu algo fundamental:

o gargalo não estava na coleta dos dados.

Estava na transformação dos dados em informação.

Essa distinção é importantíssima.

Até hoje empresas confundem essas duas coisas.

Ter dados não significa possuir informação.

Você pode ter:

10 bilhões de registros,

500 TB de logs,

milhões de transações,

anos de arquivos históricos.

Mas se não conseguir processá-los corretamente, eles têm valor limitado.

Em outras palavras:

DADO ≠ INFORMAÇÃO

Para transformar dado em informação precisamos de processamento.

E Hollerith procurou uma maneira de representar características humanas de forma que uma máquina pudesse identificá-las.

Nascia a ideia das perfurações codificadas.


🕳️ Capítulo 3 — O cartão perfurado entra no hospital

Pense em um cartão de papel.

Cada posição possível no cartão representa determinada informação.

Uma perfuração naquela posição significa uma coisa.

Ausência de perfuração significa outra.

Simplificando bastante:

IDADE   SEXO   ESTADO   PROFISSÃO
  |      |       |         |
  O      O       O         O

Hoje pensaríamos nisso como bits.

Algo semelhante a:

0
1
0
1

Naturalmente o sistema de Hollerith era diferente dos bits modernos.

Mas o conceito fundamental estava ali:

representar informação utilizando estados fisicamente detectáveis.

Em um computador moderno temos:

tensão alta  → 1
tensão baixa → 0

No cartão perfurado poderíamos pensar:

furo     → informação presente
sem furo → informação ausente

O papel havia se transformado em meio de armazenamento legível por máquina.

Isso é extraordinário.

Porque naquele momento aconteceu algo conceitualmente gigantesco:

a informação deixou de ser apenas legível por seres humanos.

Agora também podia ser interpretada mecanicamente.



⚡ Capítulo 4 — Como aquela geringonça funcionava?

Agora chegamos ao mecanismo digno de laboratório.

A tabuladora de Hollerith empregava contatos elétricos.

Um cartão era colocado sobre um conjunto de posições.

Agulhas metálicas desciam.

Quando encontravam papel:

nada acontecia.

Quando encontravam uma perfuração:

atravessavam o cartão e fechavam um contato elétrico, originalmente envolvendo recipientes com mercúrio.

Esse circuito acionava contadores.

Em versão simplificada:

CARTÃO
   ↓
LEITOR MECÂNICO
   ↓
DETECÇÃO DO FURO
   ↓
CIRCUITO ELÉTRICO
   ↓
CONTADOR
   ↓
RESULTADO

Não temos CPU.

Não temos memória RAM.

Não temos sistema operacional.

Mas temos algo importantíssimo:

entrada → processamento → saída.

A santa trindade da computação já estava ali.



💾 Capítulo 5 — O primeiro record que você nunca programou

Agora vamos trazer isso para o COBOL.

Você escreve:

01 WS-PESSOA.
   05 WS-IDADE       PIC 9(03).
   05 WS-SEXO        PIC X.
   05 WS-ESTADO      PIC X(02).
   05 WS-PROFISSAO   PIC X(20).

Para você isso é um registro.

Um record.

Mas pense no cartão de Hollerith como exatamente isso.

Cada cartão representava uma entidade.

Por exemplo:

Pessoa 000001
Pessoa 000002
Pessoa 000003
Pessoa 000004

Ou seja:

um cartão = um registro físico.

Décadas depois teríamos:

registro em fita
registro em disco
registro VSAM
linha Db2
documento JSON
mensagem MQ
evento Kafka

O suporte mudou.

O conceito permaneceu.

Essa é uma das grandes lições da computação.

Tecnologias desaparecem.

Abstrações sobrevivem.


📦 Capítulo 6 — Bem-vindo ao primeiro dataset de papel

Imagine agora dez mil cartões.

Você coloca todos dentro de uma caixa.

Parabéns.

Criamos aproximadamente isto:

CENSUS.PEOPLE.DATA

Claro que o dataset não existia literalmente.

Mas conceitualmente temos:

DATASET
  |
  +-- RECORD
  +-- RECORD
  +-- RECORD
  +-- RECORD

Na época:

CAIXA
  |
  +-- CARTÃO
  +-- CARTÃO
  +-- CARTÃO
  +-- CARTÃO

Você percebe como a evolução começa a ficar interessante?

O mainframe moderno não apareceu magicamente em 1964.

Existe uma longa linhagem intelectual.


🔀 Capítulo 7 — E então inventamos o SORT antes do SORT

Agora aparece outro problema.

Você tem milhares de cartões.

Mas eles estão misturados.

Pessoas de Nova York.

Texas.

Califórnia.

Homens.

Mulheres.

Crianças.

Profissões diferentes.

Se quiser saber quantas pessoas vivem em determinado estado, precisa agrupar os registros.

Entram em cena as máquinas classificadoras.

Elas separavam cartões conforme determinadas perfurações.

Em linguagem mainframe:

SORT FIELDS=(ESTADO,A)

Mais tarde:

SORT FIELDS=(SEXO,A,IDADE,A)

Talvez você nunca tenha pensado nisso dessa maneira, mas o humilde SORT possui uma ancestralidade muito antiga.

Hoje escrevemos:

//SORTSTEP EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DSN=ENTRADA,DISP=SHR
//SORTOUT  DD DSN=SAIDA,
//            DISP=(NEW,CATLG,DELETE)
//SYSIN    DD *
 SORT FIELDS=(1,2,CH,A)
/*

Em 1890 alguém precisava fazer essencialmente isto:

PEGAR CARTÕES
↓
IDENTIFICAR CAMPO
↓
SEPARAR
↓
AGRUPAR
↓
CONTAR

Mudou a interface.

A lógica sobreviveu.


🏭 Capítulo 8 — Nasce o batch

Batch significa lote.

Literalmente.

Um conjunto de coisas processadas juntas.

Imagine um operador chegando com 5.000 cartões.

Ele coloca o lote na máquina.

Executa determinado processamento.

Retira o resultado.

Depois vem o lote seguinte.

Temos então:

BATCH 001
BATCH 002
BATCH 003

Décadas depois:

JOB001
JOB002
JOB003

Hoje, no z/OS:

JES2
 ↓
JOB
 ↓
STEP
 ↓
PROGRAM
 ↓
DATASET

O hardware mudou dramaticamente.

Mas a ideia de separar processamento em unidades controláveis continuou.


🧾 Capítulo 9 — O ancestral espiritual do JCL

Imagine precisar entregar cartões para uma máquina.

Alguns cartões representam dados.

Outros poderiam representar instruções.

Décadas depois, computadores baseados em cartões adotariam exatamente essa lógica.

Um deck poderia conter:

JOB CONTROL
PROGRAM
INPUT DATA

Quando apareceu JCL, a filosofia já era familiar.

Você não apenas fornecia dados.

Também descrevia:

qual programa executar,

quais arquivos utilizar,

onde colocar a saída,

o que fazer em caso de erro.

Exemplo:

//BELLACOS JOB CLASS=A,MSGCLASS=X
//STEP01   EXEC PGM=MEUPGM
//ENTRADA  DD DSN=CLIENTES.MASTER,DISP=SHR
//SAIDA    DD DSN=CLIENTES.REPORT,
//            DISP=(NEW,CATLG,DELETE)

O JCL é muito mais sofisticado, evidentemente.

Mas seu espírito pertence a uma tradição antiga:

definir um trabalho de forma estruturada e reproduzível.


🧬 Capítulo 10 — A genealogia do mainframe

Agora precisamos desmontar um mito.

IBM não nasceu fazendo computadores.

Hollerith fundou uma empresa chamada:

Tabulating Machine Company.

Ela produzia equipamentos para processamento de informações.

Em 1911, sua empresa participou de uma consolidação empresarial que resultou na:

Computing-Tabulating-Recording Company — CTR.

Depois apareceu um personagem fundamental:

Thomas J. Watson Sr.

Em 1924, a CTR passou a utilizar o nome:

International Business Machines.

IBM.

Veja a genealogia:

Herman Hollerith
      ↓
Tabulating Machine Company
      ↓
CTR
      ↓
IBM
      ↓
máquinas de cartões
      ↓
computadores eletrônicos
      ↓
IBM System/360
      ↓
System/370
      ↓
S/390
      ↓
zSeries
      ↓
IBM Z

Agora fica muito mais fácil entender por que processamento de dados está praticamente no DNA da IBM.


🏥 Capítulo 11 — House entra na sala e pergunta: qual é a doença?

Qual era realmente a doença do censo?

Não era falta de dados.

Era incapacidade de processá-los suficientemente rápido.

Vamos chamar isso de:

DATA PROCESSING BOTTLENECK

Agora avance para 2026.

Uma empresa possui:

logs,

transações,

dados de sensores,

histórico de clientes,

documentos,

streams,

imagens,

telemetria.

Ela diz:

— Temos Big Data.

House provavelmente responderia:

— Não. Você tem Big Storage. Só vira Big Data quando consegue fazer alguma coisa útil com isso.

Essa distinção continua absolutamente válida.


🏦 Capítulo 12 — Imagine Hollerith trabalhando em um banco

Vamos trazer tudo para um cenário COBOL.

Suponha que você trabalhe em um banco.

Todo final do dia chegam milhões de transações.

Precisamos:

  1. ler movimentos;

  2. validar registros;

  3. ordenar por conta;

  4. atualizar saldo;

  5. calcular juros;

  6. gerar extratos;

  7. produzir relatórios;

  8. guardar histórico.

Fluxo:

TRANSAÇÕES
     ↓
VALIDAÇÃO
     ↓
SORT
     ↓
PROGRAMA COBOL
     ↓
ATUALIZAÇÃO
     ↓
RELATÓRIO

Agora coloque Hollerith em 1890:

CARTÕES
   ↓
VALIDAÇÃO
   ↓
CLASSIFICAÇÃO
   ↓
TABULAÇÃO
   ↓
CONTAGEM
   ↓
RELATÓRIO

Não é a mesma tecnologia.

Mas existe uma impressionante continuidade arquitetural.


🗃️ Capítulo 13 — O ancestral conceitual do arquivo mestre

Programadores COBOL antigos conhecem muito bem o conceito de:

MASTER FILE

Você possui um arquivo principal.

Por exemplo:

CLIENTES.MASTER

Durante o dia chegam movimentos:

CLIENTES.MOVIMENTO

À noite:

MASTER + MOVIMENTO
          ↓
       UPDATE
          ↓
     NOVO MASTER

Essa filosofia aparece naturalmente quando dados físicos precisam ser organizados em grandes conjuntos.

Com cartões, era comum trabalhar com conjuntos classificados que precisavam ser combinados, atualizados ou contados.

O mundo do processamento comercial nasceu muito antes do COBOL.

COBOL apenas herdou uma tradição.


💳 Capítulo 14 — Por que o cartão IBM tinha 80 colunas?

Aqui vem uma curiosidade que todo iniciante em COBOL deveria conhecer.

O famoso cartão perfurado IBM consolidou-se em um formato de 80 colunas.

Isso teve impacto gigantesco na programação.

Programas COBOL tradicionais eram organizados respeitando posições específicas.

Simplificando:

1-6    sequência
7      indicador
8-11   área A
12-72  área B
73-80  identificação

Por que essas limitações aparentemente estranhas?

Porque código-fonte era armazenado em cartões físicos.

Uma linha:

um cartão.

Um programa de 2.000 linhas?

Aproximadamente 2.000 cartões.

Agora imagine derrubar a caixa.

Bem-vindo ao ABEND psicológico.

Por isso existiam números sequenciais.

Se os cartões caíssem no chão, você poderia reorganizá-los.

Provavelmente rezando para qualquer entidade disponível no CPACF espiritual.


🥚 Easter Egg #1 — O verdadeiro motivo da coluna 72

Quando um iniciante pergunta:

— Por que COBOL antigo às vezes parece ter medo de passar da coluna 72?

Não era superstição.

Era arqueologia de hardware.

A linguagem carrega fósseis tecnológicos.

Assim como nosso corpo carrega estruturas herdadas da evolução, linguagens antigas carregam estruturas herdadas das máquinas onde nasceram.

House aprovaria a analogia.


⚙️ Capítulo 15 — Do cartão ao VSAM

Agora acompanhe a evolução conceitual.

Primeiro:

cartão

Depois:

fita magnética

Depois:

disco

Depois:

arquivos organizados

Depois:

VSAM

No VSAM podemos ter:

KSDS,

ESDS,

RRDS,

LDS,

entre outros.

Mas observe o princípio fundamental:

armazenar registros de maneira organizada para recuperação e processamento previsíveis.

Esse princípio não nasceu com VSAM.

VSAM é uma sofisticada manifestação de uma ideia muito mais antiga.


🗄️ Capítulo 16 — E depois chegou o banco de dados

Imagine então perceber:

— Talvez não seja muito inteligente cada programa manter seu próprio arquivo independente.

Entram bancos de dados.

IMS.

Db2.

Agora podemos representar informações utilizando estruturas relacionais.

Exemplo:

SELECT ESTADO,
       COUNT(*)
FROM PESSOA
GROUP BY ESTADO;

Hollerith provavelmente entenderia imediatamente o objetivo.

Ele apenas ficaria fascinado com a velocidade.

Sua máquina fazia contagens mecanicamente.

Db2 pode realizar operações sobre milhões ou bilhões de registros utilizando processadores moderníssimos.

Mas a pergunta continua:

Quantas pessoas pertencem a determinada categoria?


🔍 Capítulo 17 — GROUP BY é descendente intelectual da tabuladora

Pense:

SELECT SEXO, COUNT(*)
FROM CENSO
GROUP BY SEXO;

Agora volte a 1890.

A máquina identifica determinadas perfurações.

Separa.

Conta.

Produz totais.

Conceitualmente:

READ
GROUP
COUNT
REPORT

Esse é provavelmente o aspecto mais bonito dessa história.

Não estamos olhando apenas para hardware velho.

Estamos vendo ideias computacionais em estado embrionário.


📊 Capítulo 18 — Big Data já existia antes de chamarmos de Big Data

Naturalmente não existiam petabytes em 1890.

Mas Big Data é relativo.

Um dataset é "grande" quando começa a superar nossa capacidade prática de processá-lo utilizando métodos existentes.

Para 1890, milhões de registros humanos eram um gigantesco problema de dados.

O censo era, em termos daquele período, uma aplicação de processamento em massa.

Hoje o problema poderia ser:

10 bilhões de transações

Em 1890:

dezenas de milhões de habitantes

A questão é sempre a mesma:

VOLUME
+
TEMPO
+
CONFIABILIDADE

⏱️ Capítulo 19 — Performance não é luxo

Essa é uma excelente lição para programadores COBOL iniciantes.

Imagine um programa que lê 100 registros.

Se ele é lento, talvez ninguém perceba.

Agora imagine:

100.000.000 registros

Uma diferença minúscula por registro pode virar horas.

É exatamente por isso que mainframe possui obsessão histórica por:

I/O,

buffers,

índices,

access paths,

SORT,

CPU,

elapsed time,

WLM,

paralelismo.

Em grande escala:

pequenas ineficiências ficam gigantescas.

Hollerith descobriu isso antes de existir CPU.


🧪 Capítulo 20 — Passo a passo: transforme o censo em um Job COBOL

Vamos brincar.

Imagine que recebemos o Census 1890 hoje.

Arquivo:

CENSUS.INPUT

Layout:

01 CENSUS-RECORD.
   05 CENSUS-ID        PIC 9(09).
   05 CENSUS-AGE       PIC 9(03).
   05 CENSUS-SEX       PIC X.
   05 CENSUS-STATE     PIC X(02).
   05 CENSUS-OCCUP     PIC X(20).

Precisamos descobrir população por estado.

Primeiro fazemos SORT:

//SORT01 EXEC PGM=SORT
//SORTIN DD DSN=CENSUS.INPUT,DISP=SHR
//SORTOUT DD DSN=CENSUS.BYSTATE,
// DISP=(NEW,CATLG,DELETE)
//SYSIN DD *
 SORT FIELDS=(13,2,CH,A)
/*

Depois COBOL:

PERFORM UNTIL EOF-SW = 'Y'

   READ CENSUS-FILE
      AT END
         MOVE 'Y' TO EOF-SW
      NOT AT END
         ADD 1 TO STATE-COUNT
   END-READ

END-PERFORM.

Naturalmente um programa real seria mais elaborado.

Mas perceba:

Hollerith fazia conceitualmente a mesma operação usando eletromecânica.


🚨 Capítulo 21 — E se um cartão estivesse errado?

Excelente pergunta.

Aí entramos na qualidade de dados.

Um campo incorreto em 1890 poderia gerar estatística incorreta.

Um registro incorreto hoje pode provocar:

pagamento errado,

saldo errado,

cobrança indevida,

fraude,

decisão regulatória incorreta.

Por isso processamento empresarial desenvolveu obsessão por controles.

Hoje temos:

VALIDAÇÃO
CHECKSUM
RECONCILIAÇÃO
AUDITORIA
LOG
RESTART
RECOVERY

Tudo converge para uma pergunta:

Posso confiar no resultado?


🛡️ Capítulo 22 — Esse é o verdadeiro DNA do mainframe

Muita gente acha que mainframe significa:

"computador muito poderoso".

É uma definição incompleta.

Mainframe é sobretudo uma arquitetura orientada para processamento empresarial altamente confiável.

Os pilares incluem:

confiabilidade, disponibilidade, segurança, escalabilidade, throughput, integridade e auditabilidade.

Um banco não quer apenas saber:

"Meu programa rodou?"

Quer saber:

"Ele rodou corretamente?"

"Processou tudo?"

"Processou duas vezes?"

"Perdeu alguma coisa?"

"Consigo provar o resultado?"

"Se falhar, consigo reiniciar?"

Essas perguntas descendem diretamente dos grandes problemas de processamento de dados.


🔄 Capítulo 23 — Restart: porque até máquinas ficam doentes

Imagine um batch com 200 milhões de registros.

Ele executa quatro horas.

Falha no registro:

199.875.431

Você quer começar novamente do zero?

Provavelmente não.

Por isso sistemas empresariais desenvolveram mecanismos de:

checkpoint,

restart,

commit,

rollback,

recovery.

House diria:

— O programa não precisa nunca ficar doente. Precisa sobreviver quando ficar.

Essa talvez seja uma excelente definição de resiliência.


🥚 Easter Egg #2 — O primeiro DBA talvez usasse caixas

Antes de catálogo Db2, tabelas de sistema e índices B-tree, alguém precisava saber onde estavam os cartões.

Imagine:

CAIXA 001 → NEW YORK
CAIXA 002 → TEXAS
CAIXA 003 → OHIO

Parabéns.

Temos o ancestral conceitual do catálogo.

Naturalmente ninguém deveria colocar no currículo:

"DBA de caixas de sapato desde 1890."

Mas a analogia é divertida.


🤖 Capítulo 24 — Hollerith encontraria IA e reconheceria o problema

Se transportássemos Hollerith até 2026 e mostrássemos inteligência artificial, provavelmente ele ficaria maravilhado.

GPUs.

LLMs.

Vetores.

Embeddings.

Machine learning.

Mas quando perguntássemos:

— Qual continua sendo nosso problema?

Talvez ele respondesse:

— Vocês ainda estão tentando transformar enorme quantidade de informação em algo útil.

Exatamente.

Mudamos brutalmente nossas máquinas.

Mas nossos grandes problemas continuam envolvendo:

coletar,

representar,

armazenar,

classificar,

processar,

interpretar.


🧠 Capítulo 25 — Data Lake, Db2 ou caixa de cartões: a pergunta continua igual

Imagine três épocas.

1890:

CARTÕES

1970:

FITAS

2026:

OBJECT STORAGE

A pergunta:

Onde está o dado?

Depois:

Como encontro?

Depois:

Como processo?

Depois:

Posso confiar?

Tecnologia muda.

Governança permanece.


🥚 Easter Egg #3 — PROC CENSUS

Se o universo tivesse criado z/OS em 1890, talvez existisse:

//CENSUS90 JOB (USA),'HOLLERITH',
// CLASS=A,MSGCLASS=X
//*
//SORTPOP EXEC PGM=SORT
//*
//TABULATE EXEC PGM=HOLLERTH
//*
//REPORT EXEC PGM=CENSRPT

E provavelmente alguém reclamaria:

JOB HELD - PRINTER OUT OF PAPER

Até hoje continuamos perdendo batalhas contra impressoras.

Algumas tecnologias são eternas.


🎓 Capítulo 26 — Cinco lições para quem está começando em COBOL

Quando você estudar COBOL, tente não decorar apenas sintaxe.

Entenda a filosofia.

Quando encontrar:

READ
WRITE
REWRITE
START
DELETE

pense:

estou manipulando registros.

Quando encontrar:

JOB
EXEC
DD

pense:

estou descrevendo processamento.

Quando encontrar DFSORT:

pense:

estou organizando dados para torná-los processáveis.

Quando encontrar VSAM:

pense:

estou escolhendo uma organização física e lógica adequada.

Quando encontrar Db2:

pense:

estou abstraindo acesso estruturado aos dados.

Essa mudança mental transforma completamente seu aprendizado.


🔬 Capítulo 27 — House olha para o gráfico

No final do episódio alguém pergunta:

— Afinal, Hollerith inventou o mainframe?

Não.

Diagnóstico errado.

Hollerith não inventou o mainframe.

Também não inventou COBOL.

Não inventou computador eletrônico.

Mas ajudou a consolidar vários princípios fundamentais do processamento de dados mecanizado.

E esses princípios posteriormente seriam incorporados em sistemas empresariais.

Ele ajudou a demonstrar que grandes volumes de informações poderiam ser:

estruturados,

representados,

classificados,

contados,

processados automaticamente.

Esse é o elo histórico importante.


🧬 Capítulo 28 — A linhagem intelectual

Podemos representar assim:

CENSO
 ↓
DADOS
 ↓
CARTÕES
 ↓
TABULAÇÃO
 ↓
AUTOMAÇÃO
 ↓
PROCESSAMENTO COMERCIAL
 ↓
IBM
 ↓
COMPUTADORES
 ↓
MAINFRAMES
 ↓
COBOL
 ↓
JCL
 ↓
VSAM / IMS / DB2
 ↓
IBM Z

Não é uma linha evolutiva perfeitamente direta.

História tecnológica nunca é.

Existem inúmeros inventores, empresas, concorrentes e caminhos paralelos.

Mas a influência de Hollerith e da indústria de tabulação sobre a história da IBM e do processamento empresarial é indiscutível.


🏛️ Capítulo 29 — Do Census Bureau ao IBM Z

Agora imagine as duas pontas dessa história.

Uma máquina eletromecânica identifica perfurações em papel.

Um IBM Z executa bilhões de instruções, protege transações criptograficamente, suporta milhares de workloads simultâneos e processa operações empresariais críticas.

Visualmente:

não poderiam ser mais diferentes.

Conceitualmente:

há uma familiaridade surpreendente.

Ambos existem porque organizações possuem dados demais para serem processados manualmente.

Ambos tentam resolver:

escala,

velocidade,

confiabilidade,

repetibilidade.


☕ Capítulo Final — O paciente nunca esteve realmente doente

House fecha o prontuário.

Olha pela janela.

Toma café — sim, nesta versão ele abandonou o vicodin e descobriu uma máquina de espresso instalada ao lado de um IBM z17.

O residente pergunta:

— Então qual era a doença?

House responde:

— Crescimento.

— Crescimento?

— Dados crescem. Empresas crescem. Populações crescem. Transações crescem. O problema começa quando sua capacidade de processamento não cresce junto.

Silêncio.

Essa talvez seja a maior lição deixada por Hollerith.

A humanidade sempre produziu informação.

Durante milhares de anos conseguimos processá-la manualmente.

Então nossas sociedades cresceram.

Governos cresceram.

Empresas cresceram.

Bancos cresceram.

Populações cresceram.

E chegou um momento em que cérebro, papel e caneta não eram mais suficientes.

Precisávamos de máquinas.

Primeiro máquinas mecânicas.

Depois eletromecânicas.

Depois válvulas.

Transistores.

Circuitos integrados.

Mainframes.

Cloud.

IA.

Mas existe uma linha invisível atravessando tudo isso.

Uma ideia simples:

dados só têm valor quando conseguimos processá-los de forma confiável.

O cartão perfurado desapareceu.

As máquinas de Hollerith desapareceram.

As caixas desapareceram.

Grande parte das fitas desapareceu.

Os antigos leitores de cartões desapareceram.

Mas:

records continuam existindo.

Sort continua existindo.

Batch continua existindo.

Jobs continuam existindo.

Datasets continuam existindo.

Processamento centralizado continua existindo.

Auditoria continua existindo.

Confiabilidade continua existindo.

E COBOL continua existindo.

Talvez essa seja a grande piada histórica.

Todo mundo olha para um IBM Z moderno e enxerga uma máquina futurista.

Mas, se você retirar as camadas de silício, virtualização, criptografia, APIs e inteligência artificial, bem lá no fundo ainda existe uma pergunta feita há mais de um século:

Tenho uma enorme quantidade de registros.

Como diabos vou processar tudo isso corretamente?

Herman Hollerith levantaria a mão.

Um programador COBOL levantaria outra.

E provavelmente ambos começariam a discutir SORT.

Enquanto isso, no fundo da sala, alguma impressora continuaria offline.

Porque existem problemas que nem 136 anos de evolução tecnológica conseguiram resolver.

☕ Bem-vindo ao Bellacosa Mainframe.

Onde sistemas "legados" às vezes são apenas ideias tão boas que se recusaram a morrer.


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