Ayer, hablando con los ingenieros de Astropay, me sorprendió ver que la mitad de ellos no habían oído hablar de bug del año 2000. Para los que no lo conocen, se trata de lo siguiente. Muchos sistemas almacenaban el año como dos dígitos. Por ejemplo, en el año 1985, la fecha de expiración de una tarjeta de crédito podía decir 10/87. Para ver si una tarjeta expiró, verificábamos que 87 es mayor que 85. El problema empezó a aparecer cuando se acercó el año 2000. A mí personalmente me sucedió que en el 1998 me renovaron la tarjeta por una que vencía en el año 2001. cuando fui a pagar con ella, me la rechazaban, porque el vencimiento era en el año 01, 97 años atrás.
Cuando el año 2000 se comenzó a acercar, las empresas tuvieron que revisar todos los sistemas. Algunos sistemas eran muy viejos, y hubo que salir a revisar viejos programas, buscar programadores COBOL, etc. Lo que costó ajustar los sistemas se estima en 300 mill millones de dólares. El 1 de enero del 2000 finalmente llegó sin mayores inconvenientes, y aprendimos que debemos almacenar los años con 4 dígitos. Por suerte, estamos cubiertos hasta diciembre del año 9999.
O no?
La verdad es que no. Resulta que los sistemas operativos basados en Unix almacenan las fechas como segundos transcurridos desde el 1 de enero del 1970. Por ejemplo, al momento de escribir este post, la hora Unix es 1,436,625,303. Ese número es almacenado en 4 bytes, lo que significa que tiene un máximo de 2,147,483,647. Un segundo después de ese momento, los relojes de Unix mostrarán que la hora es -2,147,483,648, equivalente al 13 de diciembre del 1901.
Cuando sucederá eso? El 19 de enero del 2038. Falta mucho, pero no tanto.
El lector podrá pensar que no es su problema. Que se preocupen las empresas; al fin y al cabo, quien tiene un sistema basado en Unix en su casa? La respuesta es que casi todo el mundo. Android está basado en Unix, y el iOS del iPhone también. Casi seguro que el router con el que se conecta a Internet está basado en Unix, y me atrevo a decir que probablemente el televisor, y el lavarropas también. Los sistemas modernos de alarmas y los de domótica estan basados en Unix.
Al ser open source y compacto, Unix se usa para todo tipo de dispositivos. Los controladores de los semáforos, las computadoras de los autos y aviones, las cajas registradoras, los satélites, todo es susceptibe de fallar.
Si ajustar los sistemas para el bug del año 2000 fue una pesadilla, el año 2038 promete ser peor. Nuestra dependencia de los sistemas es mucho mayor, y la cantidad de líneas de código a revisar es enorme.
Habrá sistemas que nadie sabe quién los compró,ni quien los desarrolló, ni en qué librerías se basó, ni por quien fueron desarrolladas.
Pero todo tiene un lado bueno: al igual que en el 1999, será un buen negocio para consultores, programadores envejecidos, proveedores de nuevos sistemas y profetas del apocalipsis.
Deja una respuesta