quarta-feira, 4 de dezembro de 2019

BUG DO MILÊNIO — A HISTÓRIA SE REPETE


NINGUÉM É VELHO DEMAIS PARA APRENDER NEM NOVO DEMAIS PARA ENSINAR.

Há exatos 20 anos, o mundo roía as unhas na expectativa da "virada do milênio", que supostamente enlouqueceria todos os computadores quando os relógios saltassem as 23h59 para 00h00 e os calendários, de 31/12/99 para 01/01/00, data que as máquinas interpretariam como 1º de janeiro de 1900.

Todo computador dispõe de um relógio interno e depende dele executar corretamente um sem-número de tarefas — como verificar se sua conta de telefone venceu, por exemplo, ou se está na hora de ligar a iluminação pública. Devido ao assim chamado "bug do milênio", os servidores das empresas de telefonia poderiam entender que os clientes estariam devendo 100 anos de serviço, o que provavelmente resultaria na suspensão da linha e na cobrança de multas e juros que eles não conseguiriam pagar nem que vivessem outros 100 anos. No caso das luzes, a cidade poderia ficar às escuras se o programa interpretasse que o dia seguinte ainda não havia chegado — e jamais chegaria, a menos que alguém lhe explicasse que 00 é maior que 99.

Lá pelos idos de 1950, quando os primeiros computadores foram criados, a quantidade de dados que os monstruosos mainframes eram capazes de adicionar caberia num prosaico disquete de 1,44 MB (tipo de mídia que só seria criada décadas depois), e escrever o ano com dois dígitos em vez de quatro representava uma economia colossal. Além disso, achava-se que até o ano 2000 os programas de então teriam sido aposentados, o que, de fato, aconteceu, mas pouca gente se deu conta de que os novos continuaram a registrar o ano com dois dígitos para manter compatibilidade com os antigos.

Noves fora algumas intercorrências pontuais, o bug do milênio foi muito peido e pouca bosta. Houve falhas em terminais de ônibus na Austrália, em equipamentos de medição de radiação no Japão e em alguns testes médicos na Inglaterra. Alguns sites da Web mostraram a data 1/1/19100. Mas isso não evitou que o pânico se espalhasse mundo afora nem que fossem gastos cerca de US$ 300 bilhões em medidas preventivas.

Em Brasília, montou-se uma “sala de situação” do setor elétrico para eventuais distúrbios no fornecimento de energia; o governo paulista criou um site para acompanhar os efeitos da “catástrofe” (havia preocupação em áreas-chave, como saúde, segurança pública, transportes, recursos hídricos e administração penitenciária) e a prefeitura da capital colocou 2700 funcionários da CET em standby no Réveillon, diante da possibilidade de panes em semáforos ou congestionamentos anormais. Quando os relógios deram meia-noite e nada de incomum aconteceu, os servidores foram desmobilizados e puderam curtir a virada do século, ainda que com algum atraso.

Como não há mal que sempre dure nem bem que nunca termine, em 2038 os processadores de 32-bit perderão a capacidade de contar o tempo. O busílis da questão (como eu havia adiantado nesta postagem de 2017) é a limitação da arquitetura de 32-bit, que atingirá seu ápice às 3 horas, 14 minutos e 5 segundos de 19 de março de 2038. Mais ou menos da mesma forma que se previa que acontecesse na virada do século, as máquinas não conseguirão diferenciar 2038 e 1970, o primeiro ano no qual todos os sistemas atuais passaram a medir o tempo.

Continua na postagem de amanhã.