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.