santiago bustelo

detrás de las pantallas

Coordinador IxDA BA, IxDA LATAM, director de diseño y desarrollo en Icograma.
Acá escribo de todo lo demás. Principalmente gansadas chisporroteantes.

La venganza de los tragas

February 19th, 1999
Otra vuelta de tuerca sobre el bug del año 2000

Se sabe que los tragas son muy afectos a las computadoras, no sólo por la matemática que las anima sino, además, por tener poca vida social. Cansados de que las chicas prefieran a los jugadores del equipo de fútbol americano de la universidad, de sentirse extraños entre la gente, de ser menospreciados y de muchas otras cosas, habrían planeado su venganza: determinado día, todas las computadoras del mundo dejarían de funcionar.

El crimen perfecto

Entonces, los tragas impondrían al mundo sus condiciones, y si éste no las aceptara, sarcásticamente dirían: “Bueno, que las computadoras las arreglen los chicos del equipo de fútbol americano”.

Era probable que el plan fuera descubierto antes de la fecha señalada. Gente prevenida, los tragas ya habían preparado su coartada: la culpa no sería de ellos, sino de que las computadoras podían usar tan sólo dos dígitos para calcular el año. Así, los tragas lograrían no sólo evitar que la culpa caiga sobre sus espaldas, sino además asegurarse los honorarios por el trabajo necesario para que las computadoras sigan funcionando.

Como ya todos sabemos, el plan funcionó brillantemente. Todo el mundo se enteró de que el 1 de enero del año 2000 llegaría el fin del mundo, al menos para muchas computadoras y todo lo que dependiera de ellas: bancos, entidades financieras, organizaciones gubernamentales, plantas de energía, equipos de defensa y hasta videocasseteras. Y el mundo se puso de rodillas ante los tragas y pagó el tributo: más de 600 mil millones de dólares sólo por el arreglo del software.

Elemental, querido Watson

Hasta aquí, el problema tal como todos lo conocemos (si bien desde un punto de vista poco ortodoxo). Pero si la cámara me acompaña, les demostraré que los tragas no son tan inocentes como mucha gente creyó, y que por lo menos, han pecado de inútiles y negligentes.

La coartada de los tragas acerca de los dos dígitos le parece a todo el mundo lógica y razonable. A mí no.

Verán: según dicha coartada, los programadores se habrían visto obligados a usar dos dígitos en lugar de cuatro, porque la memoria era en ese entonces cara y escasa. El problema es que las computadoras no manejan dígitos (como los seres humanos), sino bytes. Y mientras que un dígito representa un número entre 0 y 9, un byte representa un número entre 0 y 255.

Como el byte es la unidad de información que manejan las computadoras, un dígito debe ser representado, forzosamente, con un byte. O sea que usando un solo byte en lugar de dos, y contando a partir del año 1900, se podría haber llegado a contar hasta el año 2155, en lugar del 2000. Dos bytes (que ocupan la misma memoria que dos dígitos) permiten contar de 0 a 65.535.

Y cuatro bytes (los mismos cuatro dígitos necesarios para procesar correctamente el año 2000) permiten contar de 0 hasta 4.294.967.295 – un número tan grande que permitiría contar ya no los años, sino los segundos transcurridos a lo largo de 136 años.

Para calcular fechas con detalle, digamos que algún traga habría usado dos dígitos para definir cada uno de los siguientes datos: año, mes, día, hora, minutos y segundos. Ello da un total de 12 dígitos o bytes. Si con 4 bytes, empleados eficientemente, podríamos contar segundo a segundo durante 136 años, con 12 podría manejarse un número tan grande de años (al detalle del segundo), que a las calculadoras no les alcanzan las cifras en la pantalla a la hora de hacer la cuenta.

La última coartada

Pero algún traga esgrimirá: sí, es cierto, las computadoras usan bytes – pero el lenguaje de programación que yo usaba trabajaba con dígitos. A lo que habría que contestar que, si realmente era tan importante el ahorro de memoria, no se debería haber usado un lenguaje de programación tan ineficiente.

Desde luego, queda la sospecha de que ese lenguaje de programación podría haber sido desarrollado a propósito por los tragas para dominar el mundo. Pero más allá de eso, es importante saber que para un (buen) programador, un lenguaje de programación no es un credo que se abraza hasta la muerte.

Conclusión

Si bien suena ridículo que el problema del año 2000 sea un plan de los tragas para dominar al mundo, es mucho menos triste que aceptar que se trata de otra muestra de la estupidez humana. Los recursos para evitar el problema estuvieron dados desde un principio – sólo que los programadores fueron demasiado inútiles como para aprovecharlos.

Santiago Bustelo
http://www.bustelo.com.ar

Compartir: facebook Share/Save/Bookmark Otros

Dejar un comentario :: Trackback URL

XHTML: Pueden usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Los comentarios son moderados, lo que puede demorar su publicación una vez enviados. ¡Mandarlos más de una vez es inútil! La casa se reserva el derecho de admisión y todo eso.

Blog

Artículos

1998-2012, Santiago Bustelo // Licencia Creative Commons Atribución-No Comercial 2.5 Argentina
Permitida y promovida la reproducción total o parcial sin fines de lucro, mencionando URL ("www.bustelo.com.ar").

Feeds: RSS de artículos | RSS de comentarios | Basado en WordPress