Si sente spesso questa strana parola: “bug”. Letteralmente, in inglese vuol dire “insetto”. È in realtà anche un verbo: “to bug” vuol dire “scocciare”, “seccare”, “infastidire”. Ma cosa diavolo c’entra questa parola con l’informatica? Per capirlo, bisogna sapere sommariamente come vengono sviluppati i programmi per computer e conoscere un curioso aneddoto. Ma andiamo con ordine.
Un computer è un dispositivo elettronico che puoi programmare. Puoi farci girare sopra dei programmi (detti anche “software” in inglese). Il computer non capisce il linguaggio naturale degli esseri umani: capisce solo la matematica. Per creare i programmi vengono usati dei linguaggi che stanno a metà tra la matematica e la lingua inglese (perché il computer è stato inventato in America). Questi linguaggi si chiamano “linguaggi di programmazione”.
Tutti i programmi del mondo contengono dei difetti, dei casi non previsti o delle sviste che possono portarli a non funzionare correttamente o a fallire del tutto. Si tratta di errori umani, che però possono avere conseguenze molto gravi. Nel 1996, il razzo Ariane 5 si autodistrusse dopo 40 secondi dal lancio per via di un numero memorizzato in modo sbagliato, provocando un danno di diversi milioni di dollari.
Questi difetti vengono chiamati “bug”, ed il termine deriva da una storia molto curiosa. Il 9 settembre del 1947, il tenente Grace Hopper stava costruendo uno dei primi computer della storia, un mostro enorme che occupava un’intera stanza. Questo macchinario smise di funzionare e, dopo diverse ore passate a cercare di capire cosa non andasse, il tenente si accorse che una falena si era incastrata nei circuiti, causando il difetto.
L’incidente venne appuntato sul registro cartaceo di quel computer. La povera falena, ormai defunta, venne incollata sulla pagina. Accanto ad essa venne scritto “1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found”: “primo caso in assoluto di ritrovamento di un insetto”. Ecco cosa sono i bug: difetti di programmazione dovuti ad errori umani, chiamati così per un banale incidente.
I bug si possono risolvere solo in un modo: un programmatore deve esaminare il programma e cercare di capire cosa c’è che non va. Esistono però dei programmi specializzati (i “debugger”) che possono aiutare moltissimo in questo lavoro.