L’universale nel computer

458pxsanzio_01_plato_aristotle

Il computer che sto usando in questo momento esiste. Esistono anche anche la parola "computer" e la nozione di computer, che si sostanzia in un certo numero di definizioni. Ma cosa dire dell’esistenza di quella proprietà che è "l’essere computer" la quale, posseduta da un oggetto, lo fa essere un computer (e non, che so, un calzino)? Questa è esattamente la "questione degli universali", sempiterna diatriba filosofica, che un nuovo e bel libretto di Guido Bonino ripercorre nella sua storia millenaria (G. Bonino, Universali / Particolari, Il Mulino 2008, €13).

Sappiamo che coloro i quali sostengono che le proprietà abbiano qualche esistenza si chiamano realisti, coloro i quali invece ritengono che si tratti solo di parole si chiamano nominalisti, e infine chi pensa che esse siano eventi mentali si chiamano concettualisti. Ma sappiamo anche che la discussione sul problema degli universali non è mai approdata ad una conclusione, e nessuna delle tre posizioni ha mai trionfato sulle altre.

Il libro del Mulino sarebbe stato più sfizioso se avesse avuto un’appendice dedicata agli universali e l’informatica. Infatti, l’informatica getta sul problema degli universali una nuova luce e ne ripropone l’attualità. Prendete ad esempio i moderni linguaggi di programmazione.  Il C\C++ è stato a lungo un linguaggio nominalista. Le proprietà universali (classi, attributi) esistevano solo nel momento della scrittura del programma: quando poi questo diveniva realtà nella mente della macchina, gli oggetti definiti linguisticamente non ne avevano più traccia, ed programmatore che avesse voluto sapere le proprietà di un oggetto avrebbe dovuto inventare dei trucchi linguistici ad-hoc al momento della scrittura (questi trucchi erano però "error prone", cioè forieri di funeste conseguenze se non usati con estrema attenzione). Poi fu introdotto il "run-time type checking", meccanismo con cui il compilatore stesso provvedeva a inserire negli oggetti una traccia tangibile del proprio lignaggio universale, con ciò realizzando qualcosa che i programmatori platonisti andavano da tempo invocando.

Il linguaggio oggi più usato, cioè Java, fa del realismo uno dei suoi maggiori punti di forza. Esiste la classe "Class", e ogni oggetto può accedere all’istanza di "Class" corrispondente alla classe più specifica a cui appartiene. Questa reificazione permette al programmatore di compiere profonde indagini sulla natura di ciauscun oggetto, dette suggestivamente "introspezioni". Si aprono così spazi di creatività informatica che il C++, anche nella sua versione realistica, frustrava.

Tutte le infrastrutture telematiche in cui si voglia realizzare l’interoperabilità dei dati non possono fare a meno di reificare le classi. E tali reificazioni vengono oggi dette, non a caso, ontologie. Se le reti di computer che parlano tra loro fossero assimilate a società umane, per queste non vi sarebbe alcun dubbio: gli universali esisterebbero davvero e si saprebbe benissimo come e dove trovarli. Nell’informatica, dunque, il realismo ha trionfato. Questo vorrà dire qualcosa?

  • Guido |

    Sicuramente l’esistenza di universali reificati non può sostituirsi all’interpretazione della singola macchina \ soggetto, che è un fatto concettuale. Il realismo che striscia oggi in giro per i convegni di informatica insinua però che l’esistenza di ontologie darebbe alle intepretazioni una base oggettiva, come se, platonisticamente, ciascuna macchina (o se vuoi team di programmatori) avesse rispetto a queste una sorta reminiscenza. Cavolate, dirai, eppure è il mainstrem …

  • Andrea (l'altro) |

    Il presupposto dell’interoperabilità dei dati nelle infrastrutture telematiche è indubbiamente una condivisione sul significato delle classi. Non mi sembra però che questo accada in una modalità sostanzialmente diversa dalla condivisione linguistica alla base della interoperabilità tra esseri umani.
    Poiché la reificazione delle classi avviene per lo più all’interno della singola macchina o del singolo programma, con sarebbe piùgiusto dire che il modello degli universali informatici è semmai concettualista?

  Post Precedente
Post Successivo