Translate

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

sábado, 6 de novembro de 2010

☕🔥 EBCDIC vs ASCII — A GUERRA SILENCIOSA QUE DIVIDIU A COMPUTAÇÃO

 

Bellacosa Mainframe e a guerra entre EBCDIC versus ASCII

☕🔥 EBCDIC vs ASCII — A GUERRA SILENCIOSA QUE DIVIDIU A COMPUTAÇÃO

Se você trabalha com Mainframe…

mais cedo ou mais tarde vai descobrir uma verdade dolorosa:

“Nem todo texto é texto.”

Porque no mundo Enterprise…

uma letra “A” pode valer:

  • C1 no EBCDIC

  • 41 no ASCII

E é exatamente aí que começam:

  • arquivos corrompidos,

  • integrações quebradas,

  • caracteres estranhos,

  • “ç” virando lixo,

  • jobs falhando,

  • FTPs destruindo datasets,

  • e programadores entrando em crise existencial.

Hoje vamos mergulhar numa das maiores divisões técnicas da história da computação:

ASCII vs EBCDIC

A batalha entre:

  • o padrão do mundo aberto

  • e o padrão do império IBM.


☕ O QUE É ASCII?

ASCII significa:

American Standard Code for Information Interchange

Criado em:

1963

Padronizado pelo:

ANSI (American National Standards Institute)

Objetivo:
Criar um padrão universal de representação de caracteres.

Antes disso:
cada fabricante fazia sua própria codificação.

Resultado?
Caos absoluto.

Um computador não “entendia” o texto do outro.

ASCII veio para resolver isso.


☕ O QUE É EBCDIC?

EBCDIC significa:

Extended Binary Coded Decimal Interchange Code

Criado pela:

IBM

Ano:

1964

Baseado em:

  • BCD (Binary Coded Decimal)

  • punch cards

  • sistemas IBM 1401/360

O EBCDIC nasceu praticamente junto do:

IBM System/360

Ou seja:

o DNA do EBCDIC está ligado diretamente à história do Mainframe moderno.


☕ A DIFERENÇA TÉCNICA MAIS IMPORTANTE

A maior diferença NÃO é o tamanho.

Os dois usam 8 bits (na prática moderna).

O problema real é:

O MAPEAMENTO DOS CARACTERES

Exemplo:

CaractereASCIIEBCDIC
A41C1
B42C2
030F0
espaço2040

Ou seja:

o mesmo byte representa coisas diferentes.


☕ POR QUE ISSO IMPORTA?

Porque computadores não enxergam letras.

Eles enxergam:

bytes

Quando um sistema ASCII lê EBCDIC sem conversão:

vira lixo.

Exemplo clássico:

Você envia um dataset mainframe para Linux sem conversão.

Resultado:

  • caracteres quebrados

  • colunas desalinhadas

  • SQL inválido

  • JSON destruído

  • XML ilegível

O famoso:

“mojibake corporativo”


☕ POR QUE A IBM CRIOU O EBCDIC?

Aqui entra a parte histórica fascinante.

A IBM NÃO queria depender do ASCII.

Na época:

  • fabricantes brigavam por padrões

  • havia guerra comercial

  • ninguém queria perder controle tecnológico

A IBM já possuía:

  • sistemas baseados em cartões perfurados

  • BCD interno

  • hardware orientado ao seu ecossistema

Então ela fez:

o próprio padrão.

E como a IBM dominava o mercado corporativo…

o EBCDIC virou rei nos data centers.


☕ ENTÃO POR QUE O ASCII “VENCEU”?

Porque o mundo mudou.

ASCII tinha vantagens gigantes:

1 — Organização lógica dos caracteres

No ASCII:

Sequência
A B C D
41 42 43 44

Tudo sequencial.

Já no EBCDIC:
os caracteres ficam espalhados.

Isso dificulta:

  • sorting

  • comparações

  • parsing

  • algoritmos simples


☕ 2 — ASCII ERA MAIS SIMPLES

Universidades adotaram ASCII.

Minicomputadores adotaram ASCII.

Unix adotou ASCII.

E quando Unix dominou:

  • redes

  • internet

  • TCP/IP

  • e-mail

  • web

o ASCII virou padrão global.


☕ 3 — INTERNET

A internet praticamente nasceu ASCII.

Protocolos antigos:

  • SMTP

  • HTTP

  • FTP

  • TELNET

foram pensados em ASCII.

Mainframe precisou se adaptar.

Não o contrário.


☕ 4 — UNIX E C

A linguagem C e o Unix foram desenhados pensando em ASCII.

Muita lógica assume:

'A' + 1 == 'B'

No ASCII:
funciona perfeitamente.

No EBCDIC:
isso quebra.


☕ UMA CURIOSIDADE ABSURDA

No EBCDIC:

as letras NÃO são contínuas.

Exemplo:

Intervalo
A-I
J-R
S-Z

ficam em blocos separados.

Isso acontece por herança dos cartões perfurados IBM.

Até hoje isso surpreende desenvolvedores.


☕ OUTRA CURIOSIDADE HISTÓRICA

Muitos bugs antigos de software aconteceram porque programadores assumiam ASCII.

Quando rodavam no Mainframe:
💥 caos.

Especialmente em:

  • compiladores

  • bibliotecas C

  • middleware Unix-to-z/OS


☕ O “TRAUMA” DOS PROGRAMADORES DISTRIBUÍDOS

Um clássico do mundo enterprise:

FTP ASCII vs FTP BINARY

Se você transfere:

  • fonte COBOL

  • JCL

  • datasets texto

usa:

ASCII mode

O FTP converte EBCDIC ↔ ASCII.

Mas se você transfere:

  • load modules

  • arquivos binários

  • DBRM

  • executáveis

e usa ASCII…

você destrói o arquivo.

Literalmente.

Veteranos de mainframe têm PTSD disso até hoje.


☕ POR QUE O EBCDIC SOBREVIVEU?

Porque Mainframe:

nunca foi sobre moda.

Foi sobre:

  • estabilidade

  • compatibilidade

  • legado

  • investimento bilionário

Trocar encoding em sistemas bancários gigantescos seria um pesadelo histórico.

Imagine converter:

  • COBOL

  • CICS

  • DB2

  • VSAM

  • datasets históricos

  • aplicações financeiras

  • décadas de batch

Tudo isso sem quebrar:

  • centavos

  • juros

  • impostos

  • contratos

  • auditoria

Resultado:

EBCDIC ficou.


☕ MAS O z/OS USA SÓ EBCDIC?

Hoje:

não.

O IBM Z moderno fala praticamente tudo:

  • ASCII

  • Unicode

  • UTF-8

  • JSON

  • XML

  • REST

  • APIs

  • Linux

Inclusive:
Linux on Z usa UTF-8 normalmente.

O mundo IBM atual é híbrido.


☕ O VERDADEIRO “SUCESSOR”

Hoje o padrão dominante não é ASCII.

É:

Unicode / UTF-8

Porque ASCII não suporta:

  • japonês

  • árabe

  • emojis

  • acentos complexos

  • símbolos globais

UTF-8 virou o idioma universal.

Inclusive:
UTF-8 preserva compatibilidade ASCII nos primeiros 128 caracteres.

Genialidade pura.


☕ EASTER EGGS E CURIOSIDADES NERDS

🔥 1 — O “HELLO WORLD” QUEBRADO

Muitos programas antigos imprimiam lixo no Mainframe porque assumiam ASCII.


🔥 2 — A LETRA “{” ERA UM INFERNO

Em alguns terminais EBCDIC:
caracteres especiais mudavam dependendo da code page.

Programadores COBOL antigos sofreram MUITO com isso.


🔥 3 — CODE PAGES

Existe:

  • EBCDIC US

  • EBCDIC BRASIL

  • EBCDIC EUROPA

  • CP037

  • CP1047

  • CP500

Ou seja:
nem “o EBCDIC” é único.


🔥 4 — O ASCII TEM CONTROLE DE TELETIPO

Caracteres como:

  • CR

  • LF

  • BEL

  • ESC

vieram de teletipos mecânicos.

O famoso:

BEL

era literalmente:

tocar um sino físico.

Sim.

Um sino REAL.


🔥 5 — O MAINFRAME “TRADUZ” O MUNDO O TEMPO TODO

Hoje grande parte do middleware IBM faz:

  • conversão automática

  • transcoding

  • CCSID mapping

Sem você perceber.

CICS, MQ, DB2, Connect:Direct, FTP…
todos vivem traduzindo bytes.


☕ VANTAGENS E DESVANTAGENS

ASCIIEBCDIC
SimplesForte integração IBM
Dominou internetCompatibilidade histórica
Organização lógicaExcelente legado corporativo
Melhor interoperabilidadeIntegração perfeita com workloads antigos
Fácil para linguagens modernasDécadas de estabilidade

☕ DESVANTAGENS

ASCIIEBCDIC
Originalmente limitadoPouca interoperabilidade
Não nasceu globalMapeamento estranho
Dependia de extensõesConversões constantes
Evoluiu para UTF-8Complexidade de code pages

☕ O GRANDE PONTO FILOSÓFICO

ASCII venceu o mundo aberto.

EBCDIC venceu o mundo corporativo crítico.

ASCII construiu:

  • internet

  • Unix

  • open systems

EBCDIC sustentou:

  • bancos

  • seguradoras

  • governos

  • bolsas de valores

  • cartões de crédito

Enquanto muita gente fazia:
“Hello World”…

o Mainframe estava liquidando bilhões de dólares por segundo.


☕ FRASE FINAL ESTILO BELLACOSA MAINFRAME

“ASCII ajudou a conectar computadores.

EBCDIC ajudou a sustentar o sistema financeiro do planeta.”