quinta-feira, 14 de agosto de 2014

“Bug do milênio”: a maior farsa da história?! Nem tanto assim...

O “bug do milênio”, ou “Bug Y2K1”, foi o termo muito usado para se referir ao problema previsto para ocorrer em todos os sistemas informatizados na passagem de 31 de dezembro de 1999 para 1º de janeiro de 2000. “Bug” é um jargão internacional usado por profissionais e conhecedores de programação, que significa um erro de lógica na programação de um determinado software. Com certeza, através deste post, muitas pessoas vão se recordar deste tempo em que, à época, a mídia fez enorme sensacionalismo sobre o fato, que em muitos casos nem chegou a acontecer.


Contexto histórico do “bug do milênio”...
Na década de 1960, com a solidificação de vários sistemas computacionais e a ampliação de sua abrangência, foi necessária a adoção de diversos padrões para garantir a compatibilidade entre os diversos tipos de hardware e os softwares escritos para eles. Numa época em que cada byte de memória economizado representava economia de dinheiro muitos destes padrões adotavam formas resumidas para armazenar dados. Ainda hoje centenas destes padrões ainda estão em vigor, embora muitos tenham sido substituídos para se atualizar com a flexibilidade dos novos hardwares disponíveis.

Nos sistemas mais antigos, como aqueles na linguagem COBOL e semelhantes, as datas eram armazenadas com apenas dois dígitos para o ano, ficando os restantes implicitamente entendidos como sendo “19”. Desta forma, cada data armazenada deixava de ocupar oito bytes (dois para o dia, dois para o mês e quatro para o ano), e passava a ocupar somente seis bytes (somente dois no ano). A opção por representar as datas desta forma vinha da necessidade real de economia de memória e espaço de armazenamento. Hoje isso parece insignificante, mas na época isso foi o suficiente para justificar a adoção do padrão, tamanho o custo das memórias e dispositivos de armazenamento.

Para ter uma ideia imagine um banco de dados com vários campos, entre eles data de nascimento, data de casamento e data de cadastro. Para cada registro a economia nas três datas totaliza seis bytes. Se o banco de dados tiver dez mil registros são 60kB a menos, o que era significativo numa época em que os discos tinham o tamanho de 180kB.


Entendendo um pouco do “bug do milênio”...
Como todas as datas eram representadas por somente dois dígitos, os programas assumiam o “19” na frente para formar o ano completo, sendo este valor fixo. Assim, quando o calendário mudasse de 1999 para 2000 o computador iria entender que estava no ano de “19” + “00”, ou seja, 1900. Os softwares mais modernos, que já utilizavam padrões mais atuais, não teriam problemas em lidar com isso e passariam corretamente para o ano 2000, mas constatou-se que uma infinidade de empresas e instituições de grande porte ainda mantinha em funcionamento programas antigos, em função da confiança adquirida por anos de uso e na sua estabilidade. Para, além disso, temiam-se os efeitos que poderiam ser provocados no hardware pelo sistema BIOS, caso este reconhecesse apenas datas de dois dígitos.

Caso as datas realmente “voltassem” para 1900, clientes de bancos veriam suas aplicações dando juros negativos, credores passariam a ser devedores, e boletos de cobrança para o próximo mês seriam emitidos com cem anos de atraso. Nos computadores da Apple era utilizado um sistema de contagem de segundos desde 1º de Janeiro de 1904, sendo que o sistema operativo se encarregava de converter os segundos em data. Ou seja, não havendo o problema do “bug do milênio”.

Consequências...
Surpreendentemente, houve poucas falhas decorrentes do “bug do milênio”, que se revelou quase inofensivo apesar de ter gerado uma onda de pânico coletivo, especialmente nos países nos quais os computadores estavam mais popularizados. O assunto gerou muita polêmica devido aos grandes lucros gerados para as empresas de informática, foi alvo de matérias copiosas na imprensa e deu até origem a vários filmes. Hoje é considerado como um dos casos registrados pela história de pânico coletivo vazio de fundamentos, uma versão moderna do “temor do fim do mundo” que acometeu os povos da Europa Medieval na virada do ano de 999 para 1000.