El joven programador sentía como la camisa se le iba pegando a la espalda. Dos gotas de sudor frio aparecieron en su sien, pero él no se atrevía a mover la mano para quitarlas, mientras el Manager de Proyecto hojeaba el informe sobre uno de los desarrollos de software más infames de todos los tiempos. Sintió que sus días en aquella empresa estaban contados.
“Vamos a ver”, dijo el ejecutivo, hojeando con cierto nerviosismo, “Esto tiene que ser una broma… ¿Quién le ha mandado venir a mi despacho?”
El joven programador tímidamente respondió que no se trataba de una broma ni de un error. Aquello era su proyecto: un sistema operativo incrustado para controlar una máquina expendedora de preservativos. La gran innovacion consistía en que este dispositivo, a diferencia de todos los diseñados hasta la fecha, podía dar cambio.
“¿Seis millones de líneas de código?” inquirió el Manager, “En 1980 me mandaron escribir un programa para controlar una máquina de Coca Cola en el aeropuerto de Barajas. Dentro de una EPROM implementé funciones para 20 clases distintas de bebidas, detección de monedas falsas, rutinas de rearranque activadas por temporizador, aviso por módem al encargado de mantenimiento en caso de avería y una reserva para diez inputs adicionales que jamás hicieron falta. Todo ello sobre un núcleo básico de CPM. En total: 5 kilobytes, bien empaquetados en una EPROM. Y a pesar de todo mi jefe todavía me echó una bronca por despilfarrar memoria. ¿Qué cree que debería hacer yo con usted?”
El programador se sentía desmayar. Ante su silencio el ejecutivo prosiguió: “Escrito todo en C++. Programación orientada a eventos… Cada acción en el dispositivo activa su correspondiente objeto en memoria a través de un sistema de sockets en tres niveles; controladores cargados dinámicamente en espacio de usuario a medida que los dispositivos E/S los requieren. Una interfaz adicional para tapar el interfaz de programación que oculta la tabla de llamadas al sistema. Pero, ¿qué es esto? ¿se ha vuelto loco? Solamente el driver del interruptor general (mains) tiene más de 100 megas de código compilado. ¿No bastaba con poner un disyuntor?”
Los requerimientos hardware no ayudaban a hacer viable el sistema: AMD-K7, con un giga de memoria y disco duro con espacio suficiente para el código de seis millones de líneas, partición swap y espacio de reserva por si acaso. El Manager de Proyecto buscó instintivamente una tarjeta aceleradora de gráficos, pero por fortuna la locura humana no llega a tales extremos. Iba ya a pronunciar su sentencia de muerte cuando algo le hizo reflexionar. Tal vel el chico, a pesar de todo, no fuera un mal programador.
“Dígame, joven: ¿por casualidad no habrá estado haciendo prácticas en Microsoft?”
“Pues sí, ¿cómo lo sabe?”