1. L’ascesa delle macchine culturali.
In qualche momento del primo decennio del XXI secolo il nostro rapporto con i computer è cambiato. Abbiamo cominciato a portarceli ovunque in tasca, a sbirciarli a tavola, a mormorarci dentro in un angolo. Abbiamo smesso di pensare all’hardware e abbiamo iniziato a pensare ad app e servizi. Abbiamo cominciato non solo a usare ma anche a fidarci di sistemi computazionali che ci dicono dove andare, con chi uscire e che cosa pensare (per fare solo qualche esempio). A ogni clic, a ogni accettazione di termini di servizio, facciamo sempre piú nostra l’idea che i big data, i sensori onnipresenti e le varie forme di apprendimento automatico possano modellare e regolare per il meglio sistemi complessi di ogni tipo, dalla scelta delle canzoni alla previsione del crimine. Strada facendo è ridiventata nuova una vecchia parola: algoritmo. Ignorato o sopravvalutato, l’algoritmo viene raramente preso sul serio come termine chiave del lavoro culturale che i computer fanno per noi. Questo libro smonta la parola e la rimette insieme, mostrando il modo in cui gli algoritmi agiscono come macchine culturali che dobbiamo imparare a leggere e comprendere.
Gli algoritmi sono ovunque. Già adesso dominano il mercato azionario, compongono musica, guidano autoveicoli, redigono articoli e scrivono lunghe dimostrazioni matematiche, e le loro potenzialità creative stanno appena cominciando a prendere forma. Le grandi aziende custodiscono gelosamente le scatole nere che eseguono questi insiemi di dati e di processi, e persino i tecnici responsabili di alcuni dei sistemi algoritmici piú riusciti e diffusi del mondo – come per esempio i dirigenti di Google e di Netflix – ammettono di comprendere solo in parte i comportamenti manifestati dai loro sistemi. Ma la loro retorica è ancora trascendente ed emancipatoria, e risuona di molte delle stesse note tecno-utopiche dei miti della programmazione come magia, quando equiparano l’elaborazione con la giustizia e la libertà trasformazionali. La teologia della computazione identificata da Ian Bogost è una fede militante, che porta il vangelo dei big data e scompiglio in vaste fasce della società.
È questo il contesto in cui oggi usiamo gli algoritmi: come elementi di magia tecnica quotidiana a cui ci affidiamo per prenotare le vacanze, per farci suggerire possibili compagni, per valutare testi d’esame standardizzati e per svolgere molti altri tipi di lavoro culturale. Gli operatori di Wall Street danno ai loro algos finanziari nomi come Ambush (agguato) e Raider (razziatore), ma spesso non hanno idea di come funzionino le loro scatole nere per fare soldi2. Come parola chiave, nello spirito del critico culturale Raymond Williams3, il termine «algoritmo» spesso comprende un’ampia gamma di processi computazionali, fra cui: la stretta sorveglianza del comportamento degli utenti, l’aggregazione in forma di big data delle informazioni risultanti, motori analitici che mettono insieme diverse forme di calcolo statistico per analizzare questi dati e, infine, un corpus di azioni, raccomandazioni e interfacce rivolte agli esseri umani che in genere riflettono solo una piccola parte dell’elaborazione culturale in corso dietro le quinte. L’elaborazione ha ormai una sorta di presenza nel mondo, diventando una «cosa» che oscura e mette in evidenza al contempo alcune forme di ciò che Wendy Chun chiama «programmabilità», un concetto su cui ritorneremo piú avanti sotto l’aspetto del computazionalismo4.
È proprio questa natura proteiforme dell’elaborazione che ci affligge e ci attrae al contempo. A volte i sistemi computazionali sembrano conformarsi a quello standard di «cosa» discreta, come il me del mito sumero o un lucido pulsante di un’app sullo schermo di uno smartphone. In altri momenti sono molto piú difficili da distinguere dall’ambiente culturale nel suo complesso: in che misura i programmi di controllo ortografico modificano le formulazioni e le scelte grammaticali attraverso i loro miliardi di sottili correzioni, e come facciamo a sbrogliare l’insieme di codice, vocabolari e grammatiche che hanno alla base? Mentre gli effetti e gli affetti culturali del calcolo sono complessi, questi sistemi funzionano nel mondo attraverso strumenti progettati e implementati dagli esseri umani. Per stabilire un quadro critico che permetta di leggere gli aspetti culturali della computazione, dobbiamo cominciare con questi strumenti, tenuti insieme nell’umile contenitore dell’algoritmo.
Il nostro accenno a Snow Crash ha mostrato gli strati di magia, sourcery e convinzioni strutturate che sostengono la facciata dell’algoritmo nella cultura di oggi. Adesso rivolgiamo l’attenzione agli ingegneri e agli informatici che implementano i sistemi computazionali. Radicata nell’informatica, questa versione dell’algoritmo ha le sue radici nella storia della matematica. Un algoritmo è una ricetta, un insieme di istruzioni, una sequenza di attività per svolgere un particolare calcolo o ottenere un risultato, come i passi necessari per calcolare una radice quadrata o per elencare i termini della successione di Fibonacci. La parola stessa deriva da Abū ‘Abdallāh Muḥammad ibn Mūsā al-Khwārizmī, famoso matematico del IX secolo (dal titolo di una cui opera deriva anche la parola «algebra»). Algorismus indicava in origine il processo per svolgere calcoli con i numeri indoarabici. Attraverso al-Khwārizmī l’algoritmo è stato associato ai concetti rivoluzionari della notazione posizionale, della virgola decimale e dello zero.
Via via che, nei secoli successivi, la parola andò diffondendosi, «algoritmo» è venuto a descrivere qualsiasi insieme di istruzioni matematiche per manipolare dati o per risolvere un problema. I babilonesi usarono alcuni dei primi algoritmi matematici per estrarre radici quadrate e fattorizzare i numeri5. Euclide ideò un algoritmo per prendere due numeri e trovare il piú grande fra i loro divisori comuni. Nel corso di questa evoluzione l’algoritmo ha mantenuto una caratteristica essenziale che diventerà presto centrale per la storia: funziona. In altre parole, un algoritmo fornisce in modo affidabile il risultato atteso entro una quantità finita di tempo (ad eccezione, forse, di quei casi limite che affascinano i matematici e seccano gli ingegneri).
Lo storico Nathan Ensmenger racconta che l’informatica come disciplina accademica si formò solo dopo che i suoi sostenitori abbracciarono il concetto di algoritmo: uno dei fondatori del campo, Donald Knuth, nel suo fondamentale The Art of Computer Programming, fa risalire ad al-Khwārizmī le origini della disciplina6. L’algoritmo era un oggetto di studio ideale, al contempo facilmente afferrabile e infinitamente enigmatico:
Asserendo che l’algoritmo sia fondamentale per l’attività tecnica dell’informatica come i principî della dinamica di Sir Isaac Newton lo sono per la fisica, Knuth e i suoi colleghi informatici potrebbero rivendicare la piena comunione con la piú ampia comunità degli scienziati7.
Eppure, come fa notare il matematico Yiannis Moschovakis, le argomentazioni di Knuth su cosa siano veramente gli algoritmi sono un caso estremamente raro in cui la questione viene messa in primo piano8. Per gli informatici il termine rimane piú una nozione intuitiva e non esaminata che un concetto logico ben preciso basato su una teoria matematica della computazione.
Grazie in gran parte a Knuth, l’algoritmo oggi è un concetto fondamentale dell’informatica, una chiave di volta intellettuale che in genere gli studenti universitari affrontano in un primo corso di introduzione agli algoritmi e alle strutture di dati. Gli algoritmi rappresentano soluzioni concrete e ripetibili a problemi come la fattorizzazione di un intero in numeri primi o la ricerca del percorso piú efficiente attraverso una rete. L’obiettivo principale della ricerca algoritmica contemporanea non è se funzionino ma quanto siano efficienti e con quali investimenti in termini di cicli di CPU, memoria e precisione.
Possiamo condensare questo approccio pragmatico agli algoritmi in una singola schermata di una presentazione PowerPoint. Robert Sedgewick, uno dei principali ricercatori sugli algoritmi computazionali, fu anche il docente del corso di Algoritmi e Strutture Dati che ho seguito all’università; nel suo materiale per il corso, ampiamente diffuso, definisce l’algoritmo «metodo per risolvere un problema»9. È quella che chiamo definizione del pragmatico: una nozione da ingegneri degli algoritmi, orientata a circoscrivere i problemi e le soluzioni. Se della definizione del pragmatico si può dire che sia vera, lo è in termini di utilità: gli algoritmi sono adatti a uno scopo, illuminano i percorsi tra problemi e soluzioni. È il contesto critico che prevale nelle sale relax e nelle postazioni di lavoro dei programmatori di Google, Apple, Amazon e altri giganti del settore. Come li descrive Google: «Gli algoritmi sono i processi e le formule informatiche che prendono le vostre domande e le trasformano in risposte»10. Per molti ingegneri e tecnici, gli algoritmi sono semplicemente il loro impiego, il mezzo su cui lavorano.
La definizione pragmatica mette a nudo gli aspetti politici essenziali dell’algoritmo, la sua trasparente complicità nell’ideologia della ragione strumentale su cui lo studioso della cultura digitale David Golumbia richiama l’attenzione nella sua critica dell’elaborazione11. Naturalmente è proprio questo che fanno gli algoritmi: sono metodi, che ereditano la tradizione induttiva del metodo scientifico e dell’ingegneria da Archimede a Vannevar Bush. Risolvono problemi che sono stati identificati come tali dai programmatori e dagli imprenditori che sviluppano e ottimizzano il codice. Ma queste implementazioni non sono mai solo codice: un metodo per risolvere un problema inevitabilmente coinvolge ogni sorta di inferenze, interventi e filtri tecnici e intellettuali.
Per esempio, si consideri il classico problema informatico del commesso viaggiatore: come si fa a calcolare un percorso efficiente attraverso una geografia di destinazioni a diverse distanze l’una dall’altra? La questione ha molti analoghi del mondo reale, come i percorsi a cui assegnare gli autisti UPS, tanto che questa società ha investito centinaia di milioni di dollari in un algoritmo di mille pagine chiamato ORION, che basa le sue decisioni in parte su un approccio euristico al commesso viaggiatore12. Nel problema del commesso viaggiatore, però, si assume che ogni destinazione sia un punto identico su un grafo, mentre il tempo necessario per le consegne UPS varia notevolmente dall’una all’altra (ci può essere da portare un collo pesante con un carrello, o da evitare il terrier del destinatario). Il modello algoritmico che ORION ha dell’universo deve trovare un equilibrio tra le sue astrazioni computazionali (tutte le fermate sono punti intercambiabili e privi di caratteristiche), l’esperienza concreta e i riscontri dei guidatori umani e i dati raccolti dall’azienda sullo stato dei segnali di stop, degli svincoli e cosí via. Il problema informatico dell’ottimizzazione dei percorsi attraverso una rete deve condividere la scena computazionale con l’autonomia dei conducenti, l’imposizione di un monit...