sexta-feira, 6 de dezembro de 2019

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


DAI-ME SERENIDADE PARA ACEITAR O QUE NÃO POSSO MUDAR; TENACIDADE PARA MUDAR O QUE POSSO E SORTE PARA EU NÃO FAZER MUITA MERDA.

Como dito na postagem anterior, faltam 19 anos para 2038, e isso é tempo mais que suficiente para adequar os dispositivos e evitar a versão revista e atualizada do bug do milênio. Demais disso, diferentemente das correções necessárias em 2000, a coisa é bem mais simples de resolver. No caso de sistemas bem escritos, basta programá-lo para uma nova versão, que utilize valores de 8 bytes para armazenar datas.

Transformar o tipo de datação de 32-bit para 64-bit é uma alternativa funcional, uma vez que se utiliza de datas mais elásticas — no caso, 292 bilhões de anos no futuro —, mas pode prejudicar a compatibilidade binária de softwares. Todavia, trocar sistemas para os que suportam a arquitetura de 64-bit (ou seja, descartar os de 32-bit) é algo que vem acontecendo há tempos, já que as versões de 64-bit são cada vez mais comuns, tanto em computadores pessoais quanto em servidores. É certo que muitos sistemas embarcados podem não ser substituídos até a data-limite, e alguns alguns arquivos codificados no formato 32-bit (como o ZIP) continuam sendo largamente utilizados, deixando o problema ali mesmo depois da vida útil dos computadores em si.

Existem outras maneiras de resolver a falha, entre elas a inclusão de armazenamento de datas em milissegundos ou microssegundos. Essa opção resulta em pelo menos 300.000 anos antes que os números inteiros cheguem a uma contagem negativa. A data limite de 2038 varia de acordo com o valor zero utilizado para iniciar a contagem de tempo. No Windows NT, que se utiliza de número inteiro de 64-bit, com nanossegundos como contagem e data inicial de 1 de janeiro de 1601, o problema deve aparecer apenas no ano de 2184. Já em computadores que iniciam seu ponto de partida zero em 1 de janeiro de 1980, os números inteiros devem se esgotar apenas em 2116, mesmo que usem inteiros de 32-bit. A Apple, entretanto, diz que só terá problemas semelhantes no ano de 29.940 — ou seja, tempo mais que suficiente para novas tecnologias darem conta do recado.

Para saber mais sobre o assunto, acesse a página do Project 2038 ou do The Year 2038 Bug (ambas em inglês), que contêm informações detalhadas, incluindo códigos que podem ser usados por desenvolvedores para resolver o problema. Mas é importante salientar que esse problema não é motivo para pânico, como aconteceu em 2000. Além de ser uma situação mais simples, o espaço de tempo para se implementar uma solução é ainda maior, suficiente, inclusive, para que surjam novas tecnologias que não tragam problemas para armazenamento e contagem de data.