Tecnologia

Informatica, la grande bellezza di questa scienza

Tutta la scienza è basata su astrazioni: spiegare fenomeni mediante modelli che li descrivono. Quando un fisico scrive l’equazione che rappresenta il moto di un corpo, o un chimico la reazione che spiega la formazione di una sostanza, o un biologo descrive il processo di sviluppo di un organismo, stanno tutti costruendo un modello, cioè una rappresentazione della realtà. Stanno quindi usando l’astrazione: il concentrarsi su ciò che è essenziale per il punto di vista assunto ed è comune a tutti gli specifici esempi descritti dal modello stesso.

Così, sotto certe condizioni che vanno specificate (si tenga presente che le astrazioni non sempre sono valide), per il fisico non conta la materia di cui sono fatti i corpi che si muovono, o per il chimico il colore delle sostanze che reagiscono o per il biologo la nazione in cui si trova l’organismo che si sviluppa. Generalmente l’astrazione viene formulata in un linguaggio matematico, dal momento che tale disciplina è necessaria ovunque servano precisione e rigore. Un ragionamento scientifico deve necessariamente rientrare nei canoni logici di coerenza e consequenzialità, pena la sua uscita da questo paradigma della conoscenza.

Anche l’informatica usa l’astrazione, ma lo fa in un modo ben preciso, che è la ragione della sua “grande bellezza”: le astrazioni dell’informatica sono eseguibili in modo meccanico. Vuol dire che possono essere animate, cioè si può “dar loro vita e vedere cosa accade” senza dover ogni volta costruire una nuova rappresentazione fisica dell’astrazione stessa. Anche nelle altre discipline si può dar vita alle astrazioni mediante oggetti materiali che esprimono i fenomeni modellati, sostanziandone così l’espressione logico-matematica. Ma per ogni modello va realizzato ad hoc un insieme di oggetti.

Nell’informatica, grazie alla sua astrazione fondamentale, il cui termine tecnico è “Macchina universale di Turing” (Mut), abbiamo un unico meccanismo unico mediante il quale qualunque modello può essere “meccanicamente” (cioè in modo del tutto automatico) “eseguito” (cioè reso vivo), senza necessità di ulteriore intervento umano. I pc, gli smartphone e i tablet di cui siamo circondati non sono nient’altro che realizzazioni tecnologicamente molto sofisticate della Mut.

Descrivendo questa sua unicità, non intendo ovviamente sostenere che l’informatica sia più importante o possa sostituire altre discipline scientifiche. Chi si avventura su questa strada apre polemiche infantili e sterili. Voglio solo ribadire la necessità che l’informatica sia insegnata a scuola (come in altri paesi stanno facendo), perché offre un nuovo, complementare e utile punto di vista per la descrizione dei fenomeni naturali e artificiali.

In Italia usiamo a questo scopo il termine “pensiero computazionale”, suscitando a volte reazioni più emotive che razionali. Ma l’espressione, come ho spesso discusso, è solo un modo di far capire che stiamo parlando dell’informatica come scienza, delle sue idee, principi, concetti, metodi ed approcci e non di sistemi, tecnologie e strumenti. In altri paesi questa necessità non c’è, perché si può parlare di computer science e di information technology. In Italia entrambe sono informatica.

Il pensiero computazionale è la capacità, acquisita da chi ha studiato e praticato l’informatica, di riconoscere gli aspetti computazionali dei fenomeni naturali ed artificiali. Vuol dire descrivere alcuni aspetti di questi fenomeni “come se” fossero delle computazioni. Non è detto che lo siano effettivamente, ma in ogni caso offrono nuovi e utili modi per analizzare e spiegare la realtà. Un esempio lampante è la descrizione dei processi biologici a livello molecolare: il meccanismo di replicazione del Dna può anche essere visto “come se” fosse una computazione, e questo ha offerto enormi vantaggi per la sua comprensione. Anche in economia e in sociologia si trovano esempi dell’utilità di questo approccio.

La realtà, dunque, può essere descritta in diversi modi e l’approccio informatico, grazie alla sua capacità di coglierne la sfaccettatura computazionale, certamente è uno di questi.