Storia del BUG, ovvero come una falena può provocare un uragano

Categoria:News

Il termine bug, per chiunque si occupi di programmazione informatica, è sinonimo di guai. Chi lavora o gravita nel mondo dello sviluppo software, sa bene quanto questa piccola e apparentemente innocua parola possa incutere timore anche nel più affiatato team di sviluppatori informatici.

Cos’è un bug?

Forse ne avrai già sentito parlare e ti sarai fatto un’idea generale su questo termine, ma probabilmente non conosci la curiosa storia che lo ha portato ad assumere il significato con cui si utilizza oggi in ambito informatico.

Un bug, a volte tradotto in italiano come baco ma molto più spesso utilizzato nella versione originale inglese, identifica un errore nella scrittura di un programma software. Un software con bug porterà, in alcune condizioni particolari, a degli errori inattesi o imprevisti; nei casi più gravi un baco può rendere vulnerabile ad attacchi informatici anche il computer che ospita il software stesso. La ricerca e risoluzione di questi problemi inattesi comporta un lavoro lungo e complesso da parte degli sviluppatori che dovranno ricontrollare, correggere, vagliare e testare nuovamente tutto il codice scritto in precedenza alla ricerca del “baco”. Non stupisce dunque che i team di sviluppo di tutto il mondo levino gli occhi al cielo sospirando, quando viene accertata la presenza di un bug.

Storia del bug

La parola bug, deriva dall’inglese (si pronuncia /bʌg/ ) e sta ad indicare genericamente un qualunque insetto. Utilizzato invece come verbo, “to bug” è sinonimo di disturbare, scocciare, irritare;

presumibilmente questo utilizzo deriva dalla sensazione di fastidio spesso legata alla presenza di insetti come mosche, zanzare o formiche.
Il primo uso del termine bug con l’accezione che oggi gli attribuiamo in campo informatico è da sempre legato ad un curioso aneddoto. Era il 9 settembre 1947, siamo agli albori dell’informatica. Il tenente Grace Hopper ed il suo gruppo di colleghi stanno lavorando ad uno dei primi modelli di computer della storia, alla ricerca della causa di un malfunzionamento. Si accorgono che, molto banalmente, la macchina non funziona a dovere perché una falena si è incastrata tra i circuiti. Rimosso l’insetto, il tenente Hopper incolla la falena o quel che ne rimane, sul registro di manutenzione del computer, annotando a mano: «1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found»1 .

Per moltissimo tempo si è ritenuto che questo fosse il primo caso documentato di utilizzo del termine bug per indicare un problema tecnico in ambito informatico. La realtà però è che la parola BUG era già stata utilizzata molto prima che il tenente Hopper ritrovasse la falena nel computer Mark II. Il termine viene citato addirittura nel lontano 1878, in una lettera di Edison:

« It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise — this thing gives out and [it is] then that “Bugs” — as such little faults and difficulties are called — show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached 2

A ben vedere infatti la nota a mano di Grace Hopper recita: “Primo caso reale di ritrovamento di un bug“; una frase scherzosa che gioca sul doppio senso della parola in inglese (insetto/problema tecnico) e che lascia intendere piuttosto chiaramente come anche prima di quel giorno il termine fosse in uso fra gli addetti ai lavori.

Errare humanum est

Può apparire paradossale il fatto che una macchina possa sbagliare o avere comportamenti inattesi. Ma non dimentichiamoci che i software che danno vita alle macchine sono pensati e scritti da persone umane. Non a caso la maggior parte dei bug è dovuto a errori di tipo logico, e non sintattico. Nonostante sia quindi molto difficile eliminare del tutto la comparsa dei bug, anche in questo campo l’innovazione garantisce continui miglioramenti. Grazie alle nuove metodologie di sviluppo (ad esempio lo sviluppo Agile in uso in Esendex) è possibile oggi minimizzare il rischio di incidenza dei bug e dunque i disservizi da essi causati.

Il volo di una falena può scatenare un uragano?

Moltissimi bug rimangono sconosciuti per lungo tempo perché incidono in maniera molto marginale sulla funzionalità di un programma e vengono innescati solamente in occasioni molto particolari. In altri casi però i bachi possono provocare conseguenze molto più gravi: dal semplice crash (blocco) del programma, ad effetti assolutamente nefasti: negli anni ottanta ad esempio, un bug presente nel codice di controllo in un apparecchio per radioterapia (il Therac-25), somministrò una quantità errata di radiazioni e fu direttamente responsabile del decesso di alcuni pazienti 3.

A parte l’inestimabile costo in termini di vite umane, i bug provocano ogni anno anche ingenti danni economici.  Nel 2002 il National Institute of Standards and Technology ha calcolato che i bug e gli errori software solo negli USA causano annualmente una perdita di 59 miliardi di dollari4: questa cifra è pari a quasi un quarto del danno economico provocato nel 2005 dal terribile uragano Katrina 5.

Sì, il volo di molte “falene” può provocare un piccolo uragano economico.

Fonti e approfondimenti:

Wikipedia: definizione di bug 

[1] Il registro è conservato presso lo Smithsonian National Museum of American History.

[2] Lettera di Edison a Puskas. Traduzione: « È stato così per tutte le mie invenzioni. Il primo passo è un’intuizione, e viene come una fiammata, poi le difficoltà crescono – questa cosa passa ed è allora che quei “bachi” – così sono chiamati i piccoli sbagli e le difficoltà – si manifestano e sono richiesti mesi di intensa osservazione, studio e lavoro prima del successo commerciale oppure il fallimento è sicuramente raggiunto. »

[3] History’s Worst Software Bugs

[4] Software Bugs Cost U.S. Economy $59.6 Billion Annually

[5] UNT

Author Avatar
Team Esendex