La Verdad
de la Milanesa
Benito J. Cámelas (también conocido
como Bondiolero Boss) es el webmaster de una de las páginas más
provocativas de Internet. Y cada mes, en primicia, nos adelanta en esta
columna el contenido de su editorial. Pasen y vean.
La venganza de los nerds
Otra vuelta de tuerca sobre el año 2000, un tema que nos
tiene las bolas llenas
Se sabe que los nerds 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 nerds 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 nerds 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 nerds 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 nerds 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 nerds no son tan inocentes
como mucha gente piensa, y que por lo menos, han pecado de inútiles
y negligentes.
La coartada de los nerds 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.
De hecho, una variación de este último método
se usa en los sistemas UNIX, cuyos programadores deben haberse llevado
muy mal con los nerds de su momento, y tal vez por ello no se plegaron
al plan.
Para calcular fechas con detalle, digamos que algún nerd 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 podríamos contar
segundo a segundo durante 136 años, traten de imaginar lo que
se podría hacer con 12. Tal vez les ayude saber que 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 nerd dirá: 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 nerds
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. Aprender un nuevo lenguaje
de programación lleva a un programador cerca de un mes, y más
de un amante de las cosas bien hechas acepta ese mes "ocioso"
si eso se traduce en un mejor resultado.
Conclusión
Si bien suena ridículo que el problema del año 2000 sea
un plan de los nerds 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.
El problema del año 2000 habla de una forma de pensar en donde
lo importante es que algo ande hoy, y mañana se verá.
Insisto: no se trata de un error aislado, sino de una forma de pensar.
Precisamente, los productos más susceptibles al problema del
año 2000 son los peor diseñados en términos generales,
debido a la "filosofía de diseño" de sus creadores.
Y necesariamente, esta forma de ver las cosas es compartida por quien
adquiere y usa esos productos.
Lamentablemente, el problema del año 2000 no logró que
programadores y usuarios aprendan la lección: en la inmensa mayoría
de los casos, se habla de "actualizar" (emparchar) el sistema,
en lugar de reemplazarlo por algo bien hecho desde el principio y en
su conjunto.
La Bondiola Software
www.labondiola.com.ar
Permitida y promovida su reproducción total o parcial, citando
la fuente.