Y2K. Efecto 2000

El Efecto 2000 o Y2K o 'Millennium Bug' es uno de los sucesos mundiales más curiosos y excitantes que he vivido como programador, y me inspiran 20 años después a dejar algunas explicaciones y anécdotas, que definitivamente colocaron el oficio del Informático en el lugar y reconocimiento justo, a pesar de que éramos los culpables de este “apocalipsis”.
Se puede decir que a finales del siglo XX el oficio de Informatico fue “trending topics” por esta causa.


Origen del Problema

El Efecto 2000 es la predicción de un error que podía ocurrir en los programas informáticos que trabajaban con campos de Fecha (casi todos), que considerarían el año 2000 como 1900.
Básicamente es un defecto de diseño del campo tipo Fecha que se generalizó en programas y compiladores del siglo pasado, debido fundamentalmente a la obsesión de los programadores por ahorrar espacio de memoria, que en las computadoras de aquella época era muy reducido, de forma tal que usaron solamente 6 caracteres (6 bytes) para definir la fecha, en vez de 8 que hubiera sido lo correcto.
Los 6 caracteres estaban definidos por dos para el día(dd), dos para el mes(mm) y solamente dos para el año(aa) en vez de los 4 reales "ddmmaa" (o en ingles mmddyy). De esa forma se podía definir la fecha de mi nacimiento, por ejemplo, como 260962 que representaba el 26 de septiembre de 1962. En una base de datos de millones de records, cada campo de fecha “estaba ahorrando” dos bytes que multiplicados eran cifras considerables.

Con el cambio de siglo, las nuevas fechas del 2000 eran confundidas y representadas de igual forma que las del 1900 (por no decir las de 1800, 1700 y asi sucesivamente), entonces una reserva de avión prevista para el 1 de enero (01/01/00) podía considerarse caducada por la aplicación.

El famoso error de diseño debió haber surgido a mediados de siglo con el surgimiento de la computación y los primeros compiladores Fortran, Cobol, Basic etc. Este formato corto de fecha se fue generalizando, y usado para almacenar millones y millones records de bases de datos a lo largo de muchos años. No fue hasta los últimos años del siglo pasado que la prensa se entero del problema que los informáticos manteníamos con disimulo y hasta vergüenza.


Se creó una campaña mundial sobre el asunto que fue el acontecimiento más difundido a finales de siglo y que supuso una presión enorme en los equipos de ingenieros, un esfuerzo gigante en revisión de todos los programas informáticos, muchos de los cuales se reescribieron completamente y tambien un salto cualitativo en la importancia de “Control de Calidad” de las aplicaciones.

¿Qué sucedió realmente? 

Fue tanta la advertencia que se iba a acabar el mundo, que de avergonzados, los programadores salimos victoriosos, porque solo se detectaron algunos incidentes aislados en programas de menor importancia. Algunos parquímetros no dejaban salir a los carros porque la diferencia entre el año 2000 y los últimos minutos del año 99 era un número negativo. Algunas bibliotecas en cobraron a sus clientes lo equivalente a cien años y otras anecdotas por el estilo.

Sin embargo, de no haber estado preparados, las peores predicciones se hubieran cumplido. Hubiera sido imposible retirar dinero de los cajeros del banco, los aviones con sistemas de navegación podrían haber perdido el rumbo, los contadores eléctricos podrían haber enviado facturas millonarias, los sistemas de reservas habrían fallado totalmente con el cambio de año.

Mi experiencia personal 

Por entonces, yo era el Director Técnico de Isla Soft, una compañía que había vendido 150000 copias de su programa de contabilidad ContaWin en España. En 1999 habíamos reescrito totalmente el código de las versiones originales del programa y por tanto, en conocimiento de causa, había quedado resuelto el Efecto Y2k, así que pasamos la despedida del año 1999 placenteramente.


Nuestros problemas se centraban en que cambiar de la noche a la mañana todo el código de un programa que usan miles de usuario, genera muchísimos otros problemas que tardamos meses en estabilizar. Esta situación fue la tónica general de las compañías como la nuestra, que invirtieron mucho dinero y que decidieron “cortar por lo sano” y dejar atrás los viejos códigos de programas contaminados con las cicaterías de ahorro de memoria heredada de diseñadores de mediados de siglo que en su mayoría habían muerto para entonces y no vivieron las consecuencias de sus errores de diseño.

Comentarios

Entradas populares de este blog

PASconcept, la aplicación que cambió mi vida

El Programador, un ser incomprendido. La metáfora del bohío.

Facultad de Electrónica “Jesus Olivera Reyes (Popy)"