Los bugs son más antiguos de lo que crees

Si estás familiarizado con la computación y la informática, ya debes saber qué significa la palabra bug. ¿Pero sabes cómo fue el origen de este curioso término? Hoy te lo contamos detalladamente, pero primero definamos qué son y por qué ocurren.

Los bugs son errores o fallas en un programa de computadora que producen un resultado inesperado o hacen que el programa se comporte de manera no deseada. Estos pueden surgir de diversas fuentes, incluidos errores al interpretar los requisitos del usuario, diseñar el programa, escribir su código fuente, interacciones con el hardware, sistemas operativos u otros programas. 

Identificar y corregir errores es una parte fundamental del desarrollo y mantenimiento del software. A menudo requiere procesos exhaustivos de prueba y depuración.

El término bug se ha utilizado en el contexto de la ingeniería y la tecnología durante muchos años. Sus orígenes se remontan a los primeros días de la informática.

La historia de estos errores informáticos se remonta al año 1947, cuando Grace Hopper -una científica informática estadounidense- encontró una polilla atrapada en un relé de la computadora Harvard Mark II, lo que provocó un mal funcionamiento de la máquina. Posteriormente ella y su equipo depuraron el sistema, retirando a la polilla; al ser un insecto, en términos coloquiales, son llamados bichos o bugs, en inglés.  

Esta situación anómala fue documentada por Hopper y su equipo. Y después de extraer la polilla alguien la pegó con cinta adhesiva en el libro de registro con la leyenda «primer caso real de bug encontrado». 

Ese libro de registro con la polilla intacta se encuentra hoy en la colección del Museo Nacional de Historia Estadounidense del Instituto Smithsonian.

Esta historia ha sido casi canonizada por algunos autores, dado que Hopper fue una científica informática pionera que se retiró con el rango de Contralmirante de la Marina de los Estados Unidos. Algunos le han atribuido el nombre del primer bug informático de la historia de la computación. 

Es importante mencionarlo: otros autores indican que en realidad este término se remonta a finales del siglo XIX, cuando era utilizado para indicar una falla mecánica de origen desconocido. 

Una publicación del Pall Mall Gazette -del 11 de marzo de 1889- habla sobre una situación curiosa del famoso inventor Thomas Alba Edison, donde refería que «había estado despierto las dos noches anteriores descubriendo un bug en su fonógrafo», una expresión para resolver una dificultad, implicando que algunos insectos imaginarios se han escondido dentro y estaban causando todos los problemas. 

También existe una carta escrita por Edison, en 1878, en la que se refiere a los bugs como pequeñas fallas y dificultades. 

Además de su significado biológico, como sinónimo de insecto, en el Webster New International Dictionary en 1934 la tercera definición del sustantivo decía: «un defecto en un aparato o en su funcionamiento». Es así como los informáticos adoptaron este término de manera tardía, puesto que se utilizaba desde hace más de medio siglo antes en la mecánica y lo llevaron al mundo digital. 

La redacción del libro de registro de Harvard -«primer caso real en el que se encontró un bug»- sugiere que los programadores e ingenieros informáticos estaban ya bastante familiarizados con el uso tradicional del término y comentaban la novedad de encontrar un insecto real interrumpiendo el sistema.

El incidente de la polilla en la computadora en 1947 terminó por fin de acuñar el término en el mundo de la informática, en un principio para indicar cualquier problema técnico en un sistema. Posteriormente se amplió su uso para indicar errores de software.

Los bugs informáticos pueden tener implicaciones importantes, desde inconvenientes menores hasta vulnerabilidades de seguridad graves, lo que hace que la detección y resolución de errores sea un aspecto crítico para garantizar la confiabilidad y la funcionalidad de los sistemas informáticos.

Además, se pueden clasificar en diferentes tipos: errores de sintaxis, de ejecución, lógicos, aritméticos y de interfaz. Algunos son difíciles de reproducir y se conocen como Heisenbug, llamados así por el principio de incertidumbre de Heisenberg.

El proceso de encontrar y corregir errores se llama depuración o debugging -eliminar los «bichos»- y a menudo utiliza técnicas o herramientas formales para identificar dichos errores. 

Desde la década de 1990 hasta la actualidad ha aumentado el interés por las ayudas automatizadas para la depuración, como el análisis de código estático mediante interpretación abstracta.

Si te interesa la tecnología, especialmente el campo de la programación, comparte esta nota y conecta con más datos geek en nuestras redes como @movilnet_e.