Cuando los ‘bugs’ informáticos eran insectos

El 9 de septiembre de 1947 la computadora Mark II, en la Universidad de Harvard (EE. UU.), sufrió una avería. Tras la inspección, los ingenieros diagnosticaron la causa: una polilla se había acercado a la máquina, tal vez atraída por la luz y el calor, y había cortocircuitado el relé número 70 del Panel F. Los técnicos dieron cuenta del incidente en su cuaderno con una entrada a las 15:45 en la que fijaron el insecto a la página con cinta adhesiva y anotaron: “Primer caso real de un bug [bicho] encontrado”. Hoy la hoja se conserva en el Museo Nacional de Historia Americana de la Institución Smithsonian, en Washington.

BBVA-OpenMind-ventana-primer-bug-ppal

Hoja del diario técnico del ordenador Mark II / Crédito: U.S. Naval Historical Center

La anécdota es tan popular que, como toda historia muchas veces contada, a lo largo de los años se ha ido deformando. En contra de una versión que circula, no fue aquel episodio el que acuñó el término bug para los errores informáticos, ni el verbo debugging para su eliminación. Lo cierto es que antes de aquello ya solían utilizarse estas palabras para referirse a los defectos de funcionamiento de las máquinas, como demuestran las anotaciones del inventor Thomas Edison en la década de 1870. De hecho, fuentes del Instituto de Ingenieros Eléctricos y Electrónicos de EE. UU. (IEEE) atribuyen al propio Edison la acuñación de estos términos, y en tiempos de la Mark II los ingenieros de computación de Harvard los empleaban asiduamente.

Algo sí puede afirmarse: el incidente sirvió para popularizar el bug aplicado a la informática, que es hoy el uso mayoritario del término. Y tampoco cabe duda de quién fue responsable de ello: Grace Hopper (de soltera Murray), matemática nacida en Nueva York en 1906, militar de la Armada estadounidense (llegaría al grado de contralmirante) y pionera de la informática.

Grace Hopper and UNIVAC

Grace Hopper controla el UNIVAC, primer ordenador electrónico comercial / Crédito: Smithsonian Institution

Hopper fue programadora de la Mark II y dirigía el equipo que encontró la polilla. Aunque ella no estuvo presente durante el episodio, solía dibujar caricaturas de sus bugs, y su divulgación de la anécdota del insecto cuajó de tal modo que el término ha quedado asociado a ella. Según resume a OpenMind Kurt Beyer, profesor de la Escuela de Negocios Haas de la Universidad de California en Berkeley y autor del libro Grace Hopper and the Invention of the Information Age, “Hopper definió el lenguaje y los términos en la profesión de computación”.

Un intérprete para comunicarse con los ordenadores

Una de las mayores contribuciones de esta pionera fue un aspecto esencial que diferencia a las primeras computadoras de los ordenadores actuales. Por entonces se necesitaba un matemático para manejar una computadora, ya que las máquinas solo comprendían códigos numéricos. Grace Hopper creó el primer compilador, un programa que traduce el lenguaje de programación al código que entiende la máquina. Su objetivo era, según decía, “que más personas pudieran utilizar la computadora y que le pudieran hablar en inglés normal”. El trabajo de Hopper fue clave en el desarrollo del lenguaje informático COBOL, que comenzó a emplearse en 1959 y hoy continúa siendo el estándar en el ámbito empresarial.

Hopper inició su carrera trabajando con la antecesora de la Mark II. Ideada en 1937 por Howard Aiken y construida por IBM, la Mark I sustituía el sistema decimal de las primitivas calculadoras por el binario. Sus 17 metros de largo y 2,5 de alto contenían 3.300 engranajes, 1.400 interruptores y 800 kilómetros de cable eléctrico, todo ello para calcular cinco veces más rápido que un ser humano. Su sucesora, la Mark II, reemplazó los engranajes por 17.000 relés eléctricos. Según Michael R. Williams, profesor emérito de la Universidad de Calgary (Canadá) y autor del libro A History of Computing Technology (IEEE Computer Society Press, 1997), “los relés eléctricos son todavía lentos, pero allanaron el camino para otros avances”. La Mark II era capaz de multiplicar en 0,75 segundos, ocho veces más deprisa que su predecesora, pero tardaba varios segundos en resolver operaciones más complejas, como raíces cuadradas.

De las computadoras mecánicas a las electrónicas

Pese a las innovaciones que introdujeron, las Mark I y II aún eran computadoras electromecánicas que no definieron el camino a seguir: “Era más una vía muerta que un avance real”, señala Williams a OpenMind. De forma simultánea aparecían las primeras máquinas electrónicas, ENIAC en EE. UU. y Colossus en Gran Bretaña. “Colossus era una computadora electrónica para un propósito especial, diseñada específicamente para desencriptar los mensajes nazis de télex durante la Segunda Guerra Mundial”, precisa a OpenMind el historiador de la computación David Greelish, autor del libro Classic Computing: The Complete Historically Brewed.

BBVA-OpenMind-ventana-primer-bug-4jpg

Los ordenadores Mark se programaban mediante cables e interruptores / Crédito: Computer History Museum

Al mismo tiempo, en la Escuela Moore de la Universidad de Pensilvania, J. Presper Eckert y John Mauchly construían la ENIAC para el ejército de EE. UU. Esta fue la primera computadora sin partes mecánicas, compuesta por 18.000 tubos de vacío en una superficie total de 1.500 metros cuadrados y con capacidad para realizar 5.000 sumas por segundo. Pero según Greelish, tanto la ENIAC como la Colossus aún “estaban mucho más próximas a lo que hoy entenderíamos como una calculadora”.

Nace el ordenador moderno

La verdadera revolución que prendió la ENIAC fue la programación almacenada en memoria. Para programar aquella máquina era necesario cambiar cables e interruptores. Al término de la Segunda Guerra Mundial, cuando esta computadora dejó de ser un secreto militar, sus creadores celebraron un curso al que invitaron a ingenieros y científicos de alto nivel. Durante el evento, Mauchly y Eckert “decidieron que la ENIAC era demasiado engorrosa para cambiar fácilmente el cableado para un problema diferente, así que propusieron que el control de la máquina se almacenara en una memoria”, apunta Williams. Este avance fue el “punto de inflexión” que “rápidamente extendió la idea del ordenador moderno”, concluye el experto.

A pesar de la espectacular evolución de la informática en los últimos tres cuartos de siglo, hay algo que no ha cambiado: en los ordenadores actuales no hay espacio para una polilla, pero los bugs no han dejado de atormentar a los ingenieros desde los tiempos de Edison. Aunque tal vez no sea para siempre; hoy ya se diseñan sistemas inteligentes que identifican sus propios bugs y aprenden cómo corregirlos.

Descubre los 5 bugs informáticos más importantes de la historia aquí.

Javier Yanes para Ventana al Conocimiento
@yanes68