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 3h14min7 de 19 de janeiro 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ã.