Riflessioni
Cerca
Magicamente
storie e poesie

C’è ancora qualcuno al mondo che giudica l’informatica come la più esatta fra tutte le discipline scientifiche fin qui scoperte dall’uomo nel corso della sua infinita lotta contro la Verità.  Un tempo questo primato apparteneva senza alcuna ombra di dubbio alla Matematica ma, dopo la scoperta di alcune piccole falle nel sistema teorico complessivo connesse al famoso Teorema di Gödel, sembrava scoccata l’ora della disgrazia per questa antica e gloriosa branca dello scibile umano, che doveva abbandonare la palma di scienza esatta per eccellenza alla neonata disciplina chiamata Scienza dell’informazione. Cioè, non è che io sappia molto di questo Teorema di Gödel, però me ne parlava proprio ieri un collega mentre si prendeva il caffè al bar, e mi è sembrato simpatico inserire la citazione così, en-passant, con indifferenza. Ormai tutti, ad eccezione dei meno smaliziati, stanno però iniziando finalmente a scoprire cosa realmente si celi dietro quei circuiti elettronici all’apparenza così precisi e scevri da errore. Chi fra voi non è mai incorso in un errore di sistema mentre si trovava nel punto di maggior fervore creativo durante l’elaborazione di un testo elettronico? Chi non ha perduto valanghe di dati e informazioni faticosamente rielaborate e assemblate per un improvviso black-out proprio nel momento in cui nella mente si formava il primo accenno di una vaga idea di salvataggio del lavoro appena svolto? Chi non si è ritrovato a imprecare e maledire l’uomo più ricco del mondo, padrone e produttore di quegli infernali programmi che impongono a tutti il loro modo di interpretare la natura e il dipanarsi dei processi razionali? Chi, soprattutto, sarebbe interessato ad una motherboard grigio metallizzata quasi nuova, con processore Intel da 33 Mhz revisionato di recente, mai incidentata, monoproprietaria, usata quasi esclusivamente da una vecchietta (mia nonna) per fare i conti della spesa? Tanti fra voi lettori hanno sicuramente avuto modo di scontrarsi con questi nuovi despoti della quotidianità, ma certamente pochi conoscono esattamente i meandri che si nascondono dietro quei microcircuiti dall’apparenza così innocua, e le caratteristiche di quell’attività di programmazione alla base di tanti prodotti di indubbio successo. Questa breve testimonianza è volta a colmare una lacuna che, allo stato attuale delle cose, non è più possibile trascurare. Iniziai a programmare circa quindici anni or sono, quando si andava esaurendo la mandata di quei primi programmatori pionieri che avevano aperto la breccia e indicato la Via con metodi efficaci ma poco ortodossi: si trattava dei famosi "Veri Uomini", opposti ai giovani "mangiatori di Ciocorì" che iniziavano a venire su in quegli anni e di cui mi trovavo a far parte mio malgrado. I "Veri Uomini" erano mitiche figure circondate da un’alone di leggenda per la capacità di addentrarsi senza timore nei recessi più nascosti dei computer per intervenire e modificare, sprezzanti di ogni regola, le elaborazioni proprio là dove avvengono, usi a padroneggiare linguaggi di programmazione strani e misteriosi tramandati dagli albori della cibernetica, quali l’assembler, e i vari linguaggi macchina. Personaggi notturni che si nutrivano quasi esclusivamente di caffè, gente dura che non aveva paura di usare i GOTO o di scrivere un loop innestato a dieci livelli di cinque pagine, che non sprecava il suo tempo in inutili commenti del codice, che poteva dimenticare il nome della moglie (quando ne aveva una) ma non l’intera tabella di codifica ASCII. Il loro successo più eclatante, tuttora riconosciuto apice inarrivabile della scienza informatica, è la enorme quantità di lavoro che sono riusciti a procacciare alle moderne aziende di software per il recupero e la riprogettazione di vecchie applicazioni in vista dell’avvento del nuovo millennio poiché, con lungimiranza e spirito di ottimismo, nessuno aveva previsto che la tecnologia informatica sarebbe giunta al 2000. In seguito a ciò, gran parte delle applicazioni realizzate in quell’epoca, trattando gli anni con l’indicazione delle sole due ultime cifre, non contempla l’eventualità che, ad esempio, 01 sia un anno posteriore a 99, con tutte le conseguenze immaginabili. Ma a loro discolpa bisogna dire che si vivevano anni bui, la Guerra Fredda era ancora una realtà, il Terzo Mistero di Fatima incombeva sull’umanità, e presumibilmente nessuno pensava che si potesse arrivare al 2000 senza che si avverasse la Quarta Profezia di Einstein: "Non so con quale armi combatteremo la Terza Guerra Mondiale, ma so come combatteremo la Quarta: con le clave e le pietre". 

 

Giovane ed entusiasta neofita dell’informatica, fui educato al Nuovo Credo che cercava di affermare un maggior rigore nella produzione del Software, con un tentativo di Ingegnerizzazione dei processi di produzione che prendeva il nome di "Programmazione strutturata". Un corso di nove mesi coi migliori docenti italiani preparò me ed un piccolo ma agguerrito gruppo di giovani a fungere da elemento trainante per un’autentica rivoluzione nella produzione di programmi al computer di una delle maggiori società italiane del settore. All’atto di immetterci nel meccanismo produttivo, ci definirono "dei virus che venivano inoculati per propagare le nuove idee del futuro dell’informatica". Il giorno dopo mi venne l’influenza e restai a letto per due settimane. Tuttavia, ben presto, un nuovo e inquietante indottrinamento fu attuato sotto forma di una serie di documenti più o meno clandestini che continuavano a circolare fra gli addetti ai lavori e dai quali il nostro pur incorruttibile entusiasmo non riuscì a proteggerci. Al principio cercai di non dar credito a quelle che mi parevano essere delle sciocche divagazioni diffuse da qualche disfattista dell’informatica. Ci volle perciò un po’ di tempo prima che mi rendessi conto che invece quella era proprio la Verità. Chi conosce le Leggi di Murphy sa già di cosa stia parlando. L’informatica si comporta quasi come la vita: è solo un po‘ peggio. Il nucleo delle leggi di Murphy si può riassumere, per chi non le conoscesse, con l’affermazione che tutto quello che può andare male lo farà nel momento e nella maniera peggiore e nel modo più subdolo possibile. L’informatica è riuscita ad esaltare e condurre a perfezione l’applicazione di questo principio, finendo per costituirne il paradigma pratico più significativo.

Uno dei primi principi che si apprendono a proprie spese quando si inizia a programmare del codice è espresso dalla seguente:

LEGGE FONDAMENTALE DELLA PROGRAMMAZIONE

1.1) Qualunque cosa possa, in qualunque modo, andare male, prima o poi lo farà.

Omettiamo la banale dimostrazione, limitandoci ad osservare che, sulla base di un insieme di studi statistici sulla frequenza di accadimento del suddetto effetto, il momento in cui tale legge si verifica con la massima intensità è:

1.2) Quando meno te lo aspetti.

Devo un pubblico ringraziamento all’ignoto autore di questa e di altre enunciazioni che rappresentano la vera guida per chi abbia la sventura di avventurarsi nei meandri della programmazione.

È proprio vero: quando si programma, l’errore è sempre in agguato. Può essere un problema di battitura oppure una ben più grave mancanza concettuale, ma il "baco", come si suole chiamare in gergo, è assolutamente inevitabile, forse l’unica cosa certa della vita insieme alla nascita e alla morte. Questa verità si impone assai presto ai giovani e ingenui programmatori, soprattutto quando si è appena composta la prima applicazione eseguibile, implementata con tutto l’entusiasmo e l’energia che caratterizzano il primo amore. E, proprio come accade spesso con il primo amore, la delusione è grande e cocente. Sullo schermo iniziano ad apparire messaggi inquietanti e minacciosi, parole terribili come "arithmetic trap", "access violation", "overflow", "division by zero", ed è bravo chi riesce a non farsi prendere istantaneamente dallo sconforto.

È in questi momenti che riesce difficile non ricadere in quell’animismo da cui i nostri antenati si sono affrancati con tanta fatica. Perché il computer dimostra quasi di avere un’anima propria. Sembra quasi una persona, spesso dispettosa e talvolta anche malvagia, con cui i programmatori dialogano nella speranza, forse, di indurlo a più miti consigli. Osservare un programmatore in fase di debug è talvolta uno spettacolo, ed è in queste situazioni topiche che, come sostengono gli etnometodologi, emergono le peculiarità più riposte dell’indole di ciascuno: c’è chi cerca di blandire il computer con le lusinghe, chi minaccia, chi piange e si dispera, chi argomenta in maniera razionale. Perché il computer trae così in inganno? Perché non è visto per ciò che è, ovvero una macchina come tutte le altre? Forse perché non è grasso e unto, perché ci guarda con quel grosso occhio luminoso. Forse la sociologia del nuovo millennio riuscirà a dare una risposta a questo grande mistero.

C’è però di peggio rispetto al trap immediato e palese: il baco nascosto. Un enunciato che assume valenza nomologica tale da affiancarlo per importanza alla legge fondamentale sopra enunciata afferma infatti che

1.3) Se funziona subito e bene è chiaro che c’è un errore.

Purtroppo, un corollario alle leggi menzionate stabilisce che:

1.4) Gli errori non si trovano perché la gente li cerca dove non sono invece che dove sono, il che rende il compito di correggere un errore tra le imprese più ardue a cui un singolo essere umano possa essere indotto a cimentarsi. Se Ercole fosse vissuto al giorno d’oggi, credo di intuire a quale genere di prove sarebbe stato sottoposto nel corso delle sue dodici fatiche.

Qualora le cose, dopo opportune correzioni, abbiano preso a funzionare, in apparenza come ci si aspetta (il che significa sostanzialmente che l’errore ha solo temporaneamente assunto una frequenza di occorrenza prossima allo zero), è bene attenersi alla legge:

1.5) Non mettere le mani in qualcosa che funziona

anche perché si deve tenere conto in parallelo del seguente principio:

1.6) È più facile fare casini che correggerli

 col risultato che per tutto il software prodotto finora dall’umanità, e in particolare per quei programmi particolarmente importanti che costituiscono il Sistema Operativo del computer, vale un assioma inconfutabile:

1.7) Meno ne sai su come si fanno le salsicce e i sistemi operativi e meglio dormi la notte

Il tutto porta alla scoperta di una legge empirica che, pur non avendo un sostegno evidenziale tale da renderla nomologicamente inconfutabile, presenta tuttavia notevoli vantaggi dal punto di vista della pratica operativa:

1.8 ) Non mollare quello che hai finché non hai messo le mani su qualcosa di meglio

Naturalmente, il momento privilegiato per la manifestazione del baco è la Demo. La Demo, o dimostrazione, è quella cerimonia rituale moderna nella quale un nuovo prodotto software viene presentato ai possibili acquirenti dopo che per mesi e mesi intere legioni di programmatori si sono affannati a correggere ed eliminare gli errori fino a giungere all’illusoria convinzione di averli totalmente debellati. Recenti studi hanno verificato l’esistenza di una fortissima correlazione tra la probabilità di occorrenza di un errore distruttivo e dagli effetti evidentissimi e la concentrazione di alti dirigenti presenti in sala durante la Demo. Sembra anche che la presenza di un’eventuale telecamera che irradia l’evento in mondovisione possa influire nell’indurre la ricorrenza di errori multipli autoamplificantesi. Naturalmente, gli errori che si manifestano durante la Demo riguardano le parti del programma che erano state meglio testate e quindi considerate più sicure, e si verificano sempre in seguito ad una sequenza di operazioni che era stata verificata sin dalle prime fasi del test. Ma naturalmente, mentre si lavora sul prodotto, nell’ufficio non sono presenti né alti dirigenti, né telecamere.

La risoluzione dei problemi deve comunque sempre essere effettuata tenendo presente l’importantissimo PRINCIPIO DELL’ICEBERG, in base al quale si afferma che

1.9) I sette ottavi di tutte le cose sono invisibili

che dovrebbe darci indicazioni sull’effettiva entità del problema a partire dalle informazioni superficiali apparenti fornite dall’errore. Forse a causa di questo e analoghi principi accade che:

1.10) Il lavoro si dilata fino ad occupare tutto il tempo necessario a compierlo.

Quando si risolve il problema, non si dovrebbe mai dimenticare inoltre che:

1.11) La soluzione del problema, cambia il problema. Ogni soluzione comporta sempre nuovi problemi.

per cui diventa evidente che la correzione degli errori non ha mai fine. Questo punto era ben chiaro ad uno dei più grandi pensatori del secolo, Sir Karl Popper, che ha intitolato uno dei suoi testi più importanti "La ricerca non ha fine", dove purtroppo, per un trascurabile problema nel programma di videoscrittura, è saltato il sintagma "degli errori" tra le parole "ricerca" e "non".

È facile rendersi conto che, adusi a far fronte a simili difficoltà, i programmatori moderni non possono che sorridere di fronte all’irruzione di quel nuovo fenomeno rappresentato dai virus informatici. Il virus, in fondo, non è altro che l’istituzionalizzazione di qualcosa che è sempre accaduto in maniera spontanea, solo che adesso le energie negative della macchina sono state coordinate e dirette verso uno scopo distruttivo ben preciso. La fantasia dei programmatori di virus si è sbizzarrita con tutta una serie di simpatici appellativi, che evocano alla mente l’immagine del tipo di effetto provocato dal virus: Attila, Barbaro, Chaos, Demon, Epidemic, Fog, Malaria, Nuclear, Vampire, sono solo alcuni esempi delle potenzialità offerte dall’inventiva umana.

Sarà forse per tutti questi motivi che le tipiche fasi di un progetto informatico assumono la seguente, bizzarra sequenza:

1) Accettazione acritica

2) Entusiasmo selvaggio

3) Delusione controllata

4) Confusione totale

5) Ricerca del colpevole

6) Punizione dell’innocente

7) Promozione di chi non ha partecipato

In questo momento sono in ufficio e, anziché lavorare, sto scrivendo questo racconto. Se tutto va bene, spero di raggiungere l’obiettivo del punto 7) entro la fine di questo mese.

Nota in calce: questo racconto è stato scritto al computer. Se lo leggete, vuol dire che sono riuscito a portarlo a compimento senza che:

il programma di scrittura andasse in errore prima di riuscire a salvare il file mancasse la corrente elettrica proprio mentre stavo salvando il file si rompesse l’hard disk, prima di aver fatto una copia del file su un dischetto di backup un ladro mi rubasse il computer e l’unico dischetto di backup venisse formattato per errore da mia moglie un macro-virus si insinuasse nel file, riducendolo ad una larva computerizzata nel giro di pochi istanti

Se, navigando nel flusso procelloso delle informazioni digitali, sarò stato in grado di passare indenne attraverso tutti questi eventi sarà il segnale di una nuova rivoluzione nella scienza: la scoperta di una falla nelle leggi di Murphy. O, più probabilmente, sarà solo un indizio che, per un breve istante, il Buon Dio si era momentaneamente distratto.  

 

Gavino Zucca  

Anch'io faccio questo lavoro e vi assicuro che è proprio così...

Letto volte.

I più letti del mese

Poesie a tema - Il cibo in poesia e prosa Il tema appare meno romantico del solito, ma senza dubbio...

Quando le tue mani...

Poesie a tema - Mani sulla fronte per trattenere ricordi Mani sulla bocca per reprimere emozioni Mani sulla...

non solo poesie...

Poesie - Dal cielo tutti gli Angeli videro i campi brulli senza fronde né fiori e lessero nel...

^ Top