martedì 14 marzo 2017

Computare o Supputare. Due vie per l'informatica e la Computer Science

Ci sono seri motivi per sostenere che non dovremmo parlare di computer, ma di supputer. Non dovremmo parlare di computazione (computation) ma di supputazione (supputation). Non dovremmo parlare di pensiero computazionale (computational thinking), ma di pensiero supputazionale (supputational thinking).
Se così facessimo, descriveremmo con più precisione ciò che oggi comunemente definiamo con le parole computer, computazione, pensiero computazionale.
Così, liberandole dal loro attuale uso, potremo più convenientemente usare le espressioni computer, computazione, pensiero computazionale per definire quel tipo di macchina e di pensiero che tengono conto della presenza sulla scena dell'essere umano.
Per argomentare a questo proposito, torno su una pagina che ho pubblicato sei anni fa.
Nel 2011 è uscito il mio libro Nuove parole del manager. 113 voci per capire l’azienda (Guerini e Associati. Il secondo di una serie: fa seguito a Le parole del manger. 108 voci per capire l'impresa, Guerini e Associati, 2006 ). Il senso di parole che usiamo senza più pensare è portato alla luce attraverso percorsi etimologici. In entrambi i libri ragiono su diverse parole del lessico informatico. In Nuove parole del manager una voce è dedicata alla parola computer.

Putare sub e putare con
Scrivevo lì che "il verbo latino putare -pensare, giudicare, credere, stimare, supporre, immaginare- risale ad una originaria idea di 'tagliare'". Potrei ora aggiungere una connessione che sei anni fa non avevo esplicitato: il senso originario del putare è ben espresso da un verbo italiano che ne deriva: potare. Potare la pianta, togliendo l'inutile, investendo nel futuro, perseguendo un progetto di sviluppo e di miglioramento. E ancora, per manter vivo il senso originario del putare, possiamo ricordare il ricco senso dell'espressione "puta caso che".
Continuavo nelle Nuove parole del manager: dall'idea del 'tagliare "si passa, cercando la precisione, al 'calcolare', 'conteggiare', 'determinare un valore numerico'". Ma il punto chiave che toccavo sei anni fa, sul quale ora vorrei soffermarmi, sta nelle frasi successive.
Il passaggio dal 'tagliare' al 'calcolare', scrivevo, avviene "attraverso due verbi: computare e supputare. Il cum, 'con', rimanda all'idea di insieme, di classe. Supputare (sub putare) allude con più precisione al campo della matematica: sub, 'sotto', descrive tempo e ambito, territorio logico all'interno del quale il calcolo può essere ritenuto valido.
Il calcolo di una posizione astrale, il calcolo di un arco temporale all'interno di un calendario, la stima del valore di un bene: tecnicamente si tratta di supputatio. Ma i due verbi, e i sostantivi supputatio e computatio, e supputator e computator, si sovrappongono. Computatio, forse proprio perché espressione meno tecnica, più vicina al senso comune, finisce per prevalere. Così in latino, così in italiano, in spagnolo, in francese e -attraverso il francese- in inglese".

Il computer come uomo e come macchina
Ancora in quella voce, sei anni fa, ho cercato di ricostruire l'le vicende del sostantivo computer."L'Oxford Dictionary data al 1610 computator, e -con pressoché identico significato- data al 1646 computer: “one who computes, a calculator, reckoner, a person employed to make calculations in an observatory, in surveying, etc.”. Charles Babbage, nella prima metà del 1880, chiama la sue macchine engines. Verso la fine del secolo si intendeva ormai per computer non solo la persona, ma anche la macchina. La nuova accezione del termine, però, sfugge ai pur occhiuti redattori dell'Oxford English Dictionary. Non appare nell'edizione del 1928: e questo potevamo aspettarcelo, perché il fascicolo della lettera C era stato chiuso nel 1893. Non appare nemmeno, però, nel Supplement del 1933 – eppure in quegli anni, al MIT e altrove, le macchine per computare esistevano, e si chiamavano con quel nome. La lacuna è colmata nel Supplement del 1987. Lì troviamo computer nel senso di “A calculating machine; especially an automatic electronic device for performing mathematical or logical operations”.
Per datare la parola si deve tornare a sfogliare vecchie riviste. Su Engineering, rivista datata 22 gennaio 1897, si può leggere: “This was (...) a computer made by Mr. W. Cox. He described it as of the nature of a circular slide rule”.
Macchine calcolatrici. supporti tecnici a sostegno del lavoro del computista esistevano da che l'uomo imparò a calcolare: calculus è il sasso o gettone usato pre rappresentare quantità o numeri. Già i romani usavano una 'tavola specializzata' per il lavoro del computista: l'abacum. Di seguito, gli strumenti si evolvono. Possiamo limitarci a citare la machine d’arithmétique costruita nel 1642 dal diciannovenne Pascal. Ma in ogni caso nessuno si sarebbe mai sognato di confondere l'uomo con il suo strumento. Dunque, posso riassumere ora, il computer è esclusivamente, fino alla fine del 1800, un essere umano che svolge il lavoro di contabile o computista.

Nelle parole di Seneca
Possiamo datare con precisione la sopravvivenza del supputare nelle lingue moderne. Il Dizionario di Oxford dichiara in uso supputate fino al 1691, suppute fino al 1727, supputation fino al 1825.
In italiano supputatore, 'esecutore di calcoli', scompare con il 1300. Ma supputare, nel senso di 'calcolare', 'computare attentamente', e supputazione, 'calcolo', 'computo', sono espressioni considerate dai dizionari (Zingarelli, Garzanti, Devoto-Oli).
Non c'è mutamento di senso dal latino. Perciò, per dire dell'uso dei verbi supputare e computare, vale rifarsi a testi classici. Citiamo quindi dalle Lettere a Lucilio di Seneca la lettera 88, dove si parla sia di supputatio, sia di computatio.
La lettera ha per argomenti le 'arti liberali', potremmo dire le professioni tecniche specializzate. Seneca contrappone la competenza applicativa del geometres -agrimensore, matematico- e del tabularius -ragioniere, contabile, amministratore, computista-, tecnici esperti in calcoli, alla visione d'insieme del sapiens, il filosofo.

10. Metiri me geometres docet latifundia potius quam doceat quomodo metiar quantum homini satis sit; numerare docet me et avaritiae commodat digitos potius quam doceat nihil ad rem pertinere istas conputationes, non esse feliciorem cuius patrimonium tabularios lassat, immo quam supervacua possideat qui infelicissimus futurus est si quantum habeat per se conputare cogetur.

10 Il geometra mi insegna a misurare i latifondi, invece che insegnarmi quanto basta a un uomo. Mi insegna a fare i conti prestando le dita alla mia avidità: mi insegni piuttosto che questi calcoli non hanno nessuna importanza, che non è più felice chi possiede un patrimonio tale da affaticare i ragionieri; anzi possiede beni superflui e sarà infelicissimo se è costretto a contare da sé i suoi averi.

26. Praeterea utraque fines suos habet. Sapiens enim causas naturalium et quaerit et novit, quorum numeros mensurasque geometres persequitur et subputat. Qua ratione constent caelestia, quae illis sit vis quaeve natura, sapiens scit; cursus et recursus et quasdam observationes, per quas descendunt et adlevantur ac speciem interdum standum praebent, cum caelestibus stare non liceat, colligit mathematicus.

26 Entrambe [la filosofia e la geometria], inoltre, hanno fini propri; il saggio ricerca e conosce le cause dei fenomeni naturali, mentre il geometra ne determina e ne calcola la quantità e la grandezza. Il saggio sa su quali leggi si basino i corpi celesti, qual è la loro forza e la loro natura: il matematico calcola i loro corsi e ricorsi e certe orbite lungo le quali essi sorgono e tramontano e sembrano talvolta stare immobili, fenomeno impossibile per i corpi celesti.

Il geometres "persequitur et subputat", "determina e calcola". "Numerare docet me", "mi insegna a far di conto", "potius quam doceat nihil ad rem pertinere istas conputationes", "invece di insegnarmi che questi calcoli non hanno nessuna importanza". Lo scetticismo di Seneca è evidente. Ma anche a prescindere dalla sua posizione, possiamo osservare come usa, con un senso che appare a prima vista lo stesso, una volta subputare e una volta conputare.

Biforcazione
La divaricazione di senso che separa i due verbi, computare e supputare mi appare oggi -mentre sto scrivendo il seguito di Macchine per pensare, secondo volume del mio Trattato di Informatica Umanistica- più significativa di quanto mi apparisse sei anni fa. Mi appare come strumento efficace per distinguere i due percorsi nei quali si divarica, nella propria evoluzione, l'informatica.

Sub
Il significato fondamentale della radice indeuropea da cui sub deriva, spiega Giacomo Devoto, è "la stasi su una superficie e il movimento verticale dal basso verso l'alto".
Sub ci parla con evidenza a un procedimento cartesiano: la catena deduttiva che discende dall'assioma. Ci parla del calcolo proposizionale e del calcolo delle classi di Russell: la classe superiore che spiega in senso della classe inferiore. Ci parla dell'informatica strutturata, costruita per strati sovrapposti. Ci parla del file system: la struttura e alle regole logiche usate per gestire i gruppi di informazioni e i loro nomi. Ci parla della ricorsività: un algoritmo innesca un algoritmo che a sua volta innesca un algoritmo. Potrei proseguire con gli esempi. Ma posso arrivare subito alla conclusione che penso di poter trarre: ciò che chiamiamo pensiero computazionale, potrebbe essere detto, in modo più rigoroso e preciso, pensiero supputazionale.

Cum
Passiamo ora ad osservare il senso del cum. Cum -mi rifaccio ancora a Giacomo Devoto- ci parla di due possibili valori. Il primo è il senso di 'compiutezza': latino complere (da cui completus): cum plenus, 'riempire', e quindi 'condurre a termine'; latino conficere: con facere: 'ultimare', 'rifinire', 'confezionare'. Il secondo è il senso di 'compagnia': latino medievale companio, cum pani-, colui che ha il pane in comune'.

Brevissima storia delle origini di ciò che Turing ha chiamato computazione
Possiamo ben accettare l'ampiezza del cum, il suo abbracciare sia la 'compiutezza' che la 'compagnia'.
Ma avendo accettato l'ampiezza del cum, dobbiamo tornare a guardarae a quel tipo di putatio, modo di ragionare, che chiamiamo comunemente oggi 'pensiero com-putazionale'.
Il pensiero computazionale cerca, in effetti, la  'compiutezza', l'esattezza, la perfezione. Esattezza: ex agere, 'condurre a termine', quindi exactus, 'condotto a termine'. Perfezione: per ficere: 'condurre a compimento', quindi perfectus, 'compiuto'.
E' d'uopo anche ricordare come questa tensione all'esattezza e alla perfezione, questa tensione al 'compiere', 'finalizzare', 'ultimare', 'terminare' stia veramente nel cuore del pensiero computazionale. Ricordiamo l'interrogarsi di Turing (e di Alonzo Church) nel 1936 a proposito dell'Halting problem, il problema dell'arresto, o della terminazione: il chiedersi se sia sempre possibile, descritto un algoritmo e un determinato input finito, stabilire se l'algoritmo in questione termini o continui la sua esecuzione all'infinito.
Ricordiamo che lo stesso considerare l'Halting problem è frutto di un percorso logico perseguito per la via del sub. Guardare all'Halting problem è già di per sé scegliere una via sub-ordinata. Un modo riduttivo di guardare all'Entscheidungsproblem, il problema della decisione, posto da Hilbert nel 1928: trovare una procedura, eseguibile meccanicamente, in grado di stabilire se un enunciato è o non è deducibile all'interno di un sistema formale. Meccanicamente, deducibile, sistema formale: tutto qui ci parla di sub. Si guarda a formule espresse nel linguaggio formale della 'logica del primo ordine': ci si riferisce a un insieme; i quantificatori riguardano questo insieme, e non i sottoinsiemi: siamo ancora nel dominio del sub.
Turing sceglie di ridurre -ancora sub- la questione dell'esistenza di un 'algoritmo' o 'metodo generale' in grado di risolvere l'Entscheidungsproblem all'Halting problem, ovvero alla questione dell'esistenza di un 'metodo generale' che decide se una data macchina di Turing si ferma o no.

Nel regno del sub
Possiamo dunque ben sostenere che il sub definisce efficacemente la scelta logica per cui il tentativo di risolvere il problema è subordinato alla definizione formale dei termini tramitei i quali il problema è espresso.
Il sub, anche, ci parla dunque efficacemente della scelta -la scelta di Turing- che consiste nel considerare calcolabile per l'uomo una funzione se questa è calcolabile per una macchina, la macchina descritta da Turing e che da Turing prende il nome.
Il pensiero che  ci siamo abituati a chiamare computazionale, insomma, risolve i problemi aperti dall'ampiezza del cum per via riduttiva: riducendo il cum a sub, intendendo il cum come sub.
Possiamo quindi sostenere che, avendo a disposizione, in latino come nelle lingue moderne, due verbi -computare e supputare- ognuno dei quali indica con precisione una declinazione del putare, in senso lato 'pensare', supputare è il verbo più adeguato per definire la via della logica formale, del calcolo ricorsivo, del considerare calcolabile per l'uomo ciò che è calcolabile per la macchina.

Nel regno del cum
Si libera così l'altro verbo, il cum-putare. Si libera il cum inteso come compiutezza dalla gabbia cartesiana. Se quel tipo di compiutezza che è cercato per via cartesiana, sub-ordinata, meccanica, riduttiva, ricorsiva, logico formale, è definita dal sub, il cum si apre a parlarci di un altra via di ricerca della compiutezza: la compiutezza del cum plexus, complesso e del cum nexus, connesso. Plexum è participio passato di plectere, 'intrecciare'; così come nexus è participio passato di nectere, 'collegare'. Dunque due radici indoeuropee. Plek, da cui piegare, implicito, semplice, perplesso, il tedesco flechten, 'intrecciare'. Negh , da cui il sanscrito nayhati, 'congiunge', da cui nesso, nodo, da cui l'inglese net. Due radici indeuropee che ci guidano nel riportare il senso del cum nei pressi dell'idea di 'compagnia'.
Possiamo ben intendere la 'compagnia' come 'orientamento a stare insieme', 'in reciproca unione'. Ci aiutano a intendere questo senso espressioni come contingenza, contiguità: espressioni che non a caso associamo al pensiero complesso, quel pensiero che sceglie di non ridursi a deduzione, a logica formale, insomma: a supputazione. In latino contingere è cum tangere, 'toccare con', 'toccarsi con'. Potremmo dire, nel lessico di Maturana e Varela,  accoppiamento strutturale.
Relazione che per esperienza sappiamo possibile tra essere umano ed essere umano, ma che possiamo considerare possibile anche tra uomo e macchina. Ralazione: re è 'movimento in senso inverso', latus è forma irregolare del verbo fero, 'portare'. Refero è 'portare indietro'. Ma è lo stesso sistema del verbo fero a ricordarci la sempre presente posizione complementare: il necessario e sempre presente complemento della relazione è l'offerta. Ob fero, 'portare verso'. Possiamo sostenere che l'accoppiamento strutturale -il regno del cum- contempla sempre -siano gli attori uomini, siano gli attori uomini e macchine- sia l'ob, 'andare verso', sia il re 'movimento in senso inverso'.

Provvisoria sintesi
Si può così tentare, a partire dalla divaricazione tra supputatio e computatio, una lettura sintetica della divaricazione che percorre l'intera storia dell'informatica - o, guardando il nosto oggetto con un'ottica parzialmente differente, della Computer Science.
Un primo effetto della distinzione tra supputatio e computatio ci porta a vedere da un lato, dal lato della supputatio, una macchina che funziona, descritta nel suo movimenti e nelle sue articolazioni interne. Movimenti essenzialmente verticali, dal basso in alto, dall'alto in basso. Pensiamo agli strati sottostanti di cablatura e di hardware. Pensiamo alla sovrapposizione di strati di software. Possiamo richiamarci al verbo latino supponere: sub ponere, mettere, collocare, porre sotto. Possiamo ricordare anche il verbo struo: 'collocare a strati sovrapposti'. Da struo, costruzione, distruzione, e struttura,
Dal lato della computatio, osserviamo invece enti che guardano oltre i propri confini, stando in relazione ed offrendosi reciprocamente servizio. Possiamo richiamaci al verbo latino componere: mettere insieme, riunire, comporre.
Stimolati dalla distinzione tra supputatio e computatio possiamo anche tornare ad osservare, in luce più precisa, le varie letture dicotomiche che tentano di leggere la divaricazione interna all'informatica, o Comptuer Science. Cito qui al volo qualche distinzione esemplare.
L'informatica strutturata e l'informatica semistrutturata o destrutturata. Il mondo del Mainframe e il mondo del Personal Computer. La cattedrale e il bazar. Il castello e la rete.
Distinguere, come propongo qui, il supputare dal computare ci garantisce una maggiore precisione. Basta un solo esempio: il Web esiste se è dato il Persona Computer, è destrutturato, è un bazar, una rete. Ma se osserviamo il Web attraverso l'opposizione supputare/computare, avremo modo di osservare come, pur in presenza della rete e del Personal Computer, pur in un quadro destrutturato, Google, macchina autonoma che succhia il lavoro dell'uomo, vive in realtà a prescindere dall'uomo, come macchina supputante.
Una provvisoria sintesi ci porta a dire che nel regno della supputazione l'uomo è irrilevante, e quindi alla fine non presente. Il regno della computazione può darsi invece se, e solo se esiste, ed è attivamente presente, l'essere umano.