Traducendo letteralmente dall’inglese sarebbe (piccolo) insetto. Un’inezia, una piccolezza insomma. Anche se gli effetti di questa minuzia in ambito informatico possono essere, come vedremo, catastrofici. Il bug informatico sta a identificare un errore in fase di programmazione che, solitamente, compromette il corretto funzionamento del programma stesso. Ad esempio, i creatori di virus sono soliti sfruttare dei bug del sistema operativo o di altri programmi per riuscire a infettare il computer. A seconda della gravità dell’errore commesso dal programmatore (e quindi della consistenza del bug), le problematiche possono essere lievi e temporanee, oppure gravi e persistenti. A volte può anche crearsi un mix micidiale e il bug può essere temporaneo, ma grave.
Come accade nel caso della schermata blu della morte, che si presenta raramente, ma quando lo fa è piuttosto catastrofica. Tutti sappiamo, anche solo per esperienza diretta, sappiamo cosa sia un bug, in pochi sanno quale sia l’origine del bug e in pochissimi che, effettivamente, fu una falena a far nascere questa locuzione.
Era il 1947 e Grace Hopper, un giovane ufficiale della Marina statunitense, si era unita al team di sviluppo del Computation Laboratory di Harvard. La Hopper stava lavorando con il Mark II, uno dei primi computer elettromeccanici della storia, quando un operatore iniziò a segnalare un problema interno alla macchina. Il team guidato da Grace Hopper smontò pezzo dopo pezzo la sezione interessata dal problema e scoprì, con grande sorpresa, che una falena era finita tra due relay elettrici, creando problemi di trasmissione dati tra le due parti. Dato che gli operatori che materialmente fecero la scoperta del piccolo insetto tra gli “ingranaggi” del grande computer erano a conoscenza della storia ingegneristica del termine, decisero di utilizzare la parola bug anche per problemi di natura informatica. Sul loro diario di lavoro, alla data del 9 settembre 1947, scrissero questo appunto: “Primo caso reale di ritrovamento di un bug”. E accanto incollarono la falena colpevole del malfunzionamento.
Non che esistessero programmi informatici esenti da bug precedentemente a questa scoperta. Ad esempio, già nel 1844 (quindi un secolo prima) Ada Lovelace notava come fosse difficile realizzare programmi privi di errori per la macchina analitica. E nel 1878, Thomas Alva Edison scriveva a un proprio amico di come dei piccolo bugs (nella lettera utilizza esattamente questo termine) rallentassero lo sviluppo delle sue invenzioni.
Assume dunque grandissima importanza, in fase di sviluppo del software, la fase di debugging. Ovvero quella fase nella realizzazione di un programma che porta alla scoperta e alla risoluzione dei problemi insiti nel codice del programma stesso. Ma più un software cresce in complessità, più sarà semplice che sia affetto da una molteplicità di bug difficili da scoprire. Per questo, gli ingegneri del software utilizzano particolari tecniche di scrittura del codice che minimizzano i rischi di incappare in errore. Così da evitare che tragedie come l’esplosione del gasdotto transiberiano (la più grande esplosione terrestre non nucleare) possano ripetersi.
21 dicembre 2012