Patch, bug e hotfix

Ci sono alcuni termini che ricorrono nell’informatica moderna. Tra queste parole oggi ho scelto “patch”, “bug” e “hotfix”. Ecco il loro significato e la loro simpatica origine.

Patch

Una patch (in inglese pezza, toppa) è una porzione di software progettata per aggiornare o migliorare un programma.

Il termine nasce da come queste correzioni al software venivano fatte agli albori dell’informatica. All’inizio i programmi erano scritti su nastri di carta; un sottile nastro di carta flessibile era utilizzato per memorizzare informazioni codificate attraverso file di fori praticati longitudinalmente in posizioni predeterminate (piste) ad intervalli regolari.

Come si faceva una correzione? Si tagliava in corrispondenza del punto da modificare e a quel punto veniva inserita la pezza (patch in inglese) con la modifica.

Bug

Il termine bug o baco, in informatica, identifica un errore nella scrittura del codice di un programma software. Meno comunemente, il termine bug può indicare un difetto di progettazione in un componente hardware, che ne causa un comportamento imprevisto o comunque diverso da quello specificato dal produttore.

L’uso del termine bug, che in inglese indica genericamente un piccolo insetto, è legato ad un curioso aneddoto risalente ai tempi pionieristici dell’informatica: il 9 settembre 1947 il tenente Grace Hopper ed il suo gruppo stavano cercando la causa del malfunzionamento di un computer Mark II quando, con stupore, si accorsero che una falena si era incastrata tra i circuiti. Dopo aver rimosso l’insetto (alle ore 15.45), il tenente incollò la falena rimossa sul registro del computer e annotò: «1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found». Ecco la foto della pagina del registro ora conservato presso lo Smithsonian National Museum of American History.

Hotfix

Un “hotfix” è un singolo aggiornamento usato per risolvere (in inglese: to fix) un problema in un software. Generalmente si tratta di un singolo file che risolve un singolo bug.

Il termine è nato per indicare quegli aggiornamento che venivano applicati senza spegnere l’elaboratore, cioè “a caldo” (in inglese: hot), mentre il sistema era in funzione. Tali aggiornamenti era fuori dal normale ciclo di vita del software.