Digi Tales

Apprendimento digitale e ditorni

La Babele delle API

Dic
13

No, non faccio il filosofo di mestiere. Però ho studiato filosofia a tre riprese.
La prima a scuola, per tre anni, in maniera sistematica e lineare. Purtroppo di quello studio non mi è rimasto molto, forse perché l’unico tentativo del professore (avvocato di mestiere) di coinvolgere la nostra classe è stato il primo giorno del primo anno ed è fallito miseramente (“Un uomo vale per me diecimila se è il migliore”: noi, classe autarchica e extraparlamentare, immediatamente bocciammo Eraclito).
Da quel momento si limitò a fare lezione in maniera tradizionale, ovvero recitando un discorso che sembrava lui stesso aver imparato a memoria e chiedendoci di fare lo stesso alle interrogazioni, senza leggere altro che i suoi appunti, senza approfondire, senza discutere.

La seconda all’università, per quattro anni, in maniera randomica. Ma non era colpa mia: non mi orientavo facilmente tra le “storie della filosofia X” e le “filosofia Y”. Anche perché mentre X era tutto sommato una categoria omogenea, temporale, Y invece poteva essere un settore, un ambito culturale, una facoltà cognitiva. Dopo un po’ ho capito che mi interessava di più una terza categoria: la “filosofia di Z”, cioè le filosofie applicate, per così dire: la filosofia del linguaggio (ho studiato alla Sapienza di Roma in un periodo dove “filosofia del linguaggio” significava De Mauro) e soprattutto la filosofia della scienza. C’era una scienza, con un suo percorso storico, e si poteva analizzare in termini di concetti impliciti, di pretese, di fallacie nascoste.
Il periodo più fruttuoso è però il terzo, che è durato trent’anni, ed è quello in cui ho cercato di applicare quello che avevo studiato al mio campo professionale, cioè l’informatica. Ho cercato di ripensare concetti come interfaccia, oggetto, dialogo, apprendimento sulla base delle esperienze che man mano facevo. Ho preso appunti, ho scritto qualcosa qua e là, senza pretese e più per me che per gli altri.


Mi pare che oggi – con una maggiore attenzione mediatica, positiva e negativa, sulla filosofia, e una sempre maggior inconsapevolezza nell’uso degli strumenti informatici – sarebbe utile provare a raccogliere questi tentativi in una forma più strutturata. Non per chiudere il discorso, ma per iniziare una conversazione a più voci con chi ne avrà voglia.

La forma che dovrebbero avere questi saggi di filosofia del digitale non può essere, per quanto mi riguarda, quella apodittica: il digitale è qui, il digitale è là. Non solo perché “digitale” non è un concetto monolitico, e anzi parlarne in termini di oggetto unico è parte del problema. Non è un soggetto metafisico dotato di identità e di volontà proprie, come sembra a volte di capire. Non più di quanto non siano soggetti metafisici gli “algoritmi“: i quali, incolpevoli capri espiatori, sono pensati da persone e realizzati in programmi scritti per uno scopo preciso.
Il digitale non è e non fa: ci sono strumenti e oggetti digitali, progettati e realizzati da persone, che però condividono alcune caratteristiche fondamentali, talmente fondamentali che se non si parte da lì non si capisce come funzionano. Solo che il discorso su questi oggetti non può essere esclusivamente tecnico, perché va a toccare la maniera con cui pensiamo le cose con cui abbiamo a che fare tutti i giorni.
Ma nemmeno, credo io, si può parlare del digitale solo in una prospettiva di “teoria dei media digitali”, partendo solo dagli usi che se ne fanno, come se fossimo etnologi alle prese con popolazioni selvagge (i “nativi” digitali) o esobiologi davanti alla fauna di un pianeta lontano (la “rete”). Non che non sia importante studiare anche questi aspetti, che ci riguardano da vicino, ma non si può partire da lì e ignorare quello che c’è sotto, le caratteristiche intrinseche che facilitano certe relazioni e ne impediscono altre. Queste caratteristiche non determinano le relazioni più di quanto la macchina a vapore abbia determinato la relazione tra operaio e proprietario della fabbrica; ma ignorarle significa fare un atto di fede sulla naturalità delle “digisfera” (non esiste? beh, l’ho inventata proprio ora).

Perché fare questi ragionamenti ad alta voce, insomma pubblicarli? E’ una forma di terapia. Certe difficoltà che incontriamo, certe ansie, certe paure dipendono in fondo dal fatto che di questi oggetti digitali sappiamo poco, capiamo poco, e anche se siamo costretti ad usarli lo facciamo come se fossero i vecchi, rassicuranti oggetti analogici. Ma non lo sono. Per rassicurarci, tendiamo a immaginare il futuro davanti a noi estendendo il presente, stirandolo, prolungandolo, con un’operazione analogica, appunto. Invece ci sono già delle cesure enormi tra come era e come è e sarà. Ci sono dei salti nei modelli economici, delle trasformazioni radicali nelle relazioni tra persone.
Una analisi filosofica degli artefatti digitali ci potrebbe aiutare a capire queste trasformazioni, potrebbe insegnarci a trattare con quelle paure, se non proprio a superarle.

E’ anche possibile che questi ragionamenti possano portare qualche novità proprio nel cuore della filosofia. In fondo la filosofia ha costruito i suoi concetti a partire dagli oggetti analogici, costruiti attraverso i nostri cinque sensi, e utilizzando il linguaggio naturale come unico collante. Il fatto che esista una nuova “specie” di oggetti che sono costituiti solo da informazione e che esistano linguaggi artificiali con cui questi oggetti possono essere creati e manipolati potrebbe insegnare qualcosa anche ai filosofi.

Filosofico non deve significare difficile, contorto, pieno di rimandi ad autori classici e meno classici in nota. Non deve nemmeno significare astratto, generale, che si arresta alle grandi domande: è un modo dell’indagine e del discorso, quello che sale e riscende, come indicano i pupazzetti di Platone e Aristotele nella Scuola di Atene di Raffaello.
E’ anche il modo che mi si addice di più: quella artigianale. Una filosofia che nasce dalla prassi, diventa teoria e poi cerca una validazione di nuovo nell’esperienza.

La forma potrebbe essere quella di una serie di racconti che partono ogni volta da un’esperienza pratica e su questa provano a esercitare un’analisi, a estrarre dei concetti generali, fino a vederne altri effetti, anche e soprattutto attraversando i confini disciplinari.
Quello che segue è un esempio.


In questi ultimi sei mesi sto lavorando nel tempo libero (rileggete: sto lavorando nel tempo libero) ad un’applicazione web che permette di consultare dei contenuti strutturati in capitoli e pagine (per la precisione: stanze e pannelli, visto che si tratta di una Mostra online). Ho scritto i codici sorgenti dell’applicazione web, ma anche i testi, per via del fatto che per dimostrare la validità di un’idea ho capito che occorre mostrarne almeno una prima realizzazione. Siccome penso che le cose che ho scritto potrebbero interessare anche persone che non parlano italiano, ho pensato di tradurre 135 pagine HTML dall’italiano al francese, all’inglese e allo spagnolo. Le pagine HTML non hanno una grande formattazione (grassetti, corsivi, dimensioni dei titolo) ma hanno delle tag interne (come <wikipedia> o <data-time>) che servono a fare in modo che l’applicazione possa estrarre informazioni per indicizzare le pagine, oppure a permettere l’espansione automatica di una parola in un link ad una pagina di Wikipedia o ad un video su Yotube.

Le pagine in media sono piccole, tra le 500 e le 1000 parole. Non possedendo io le competenze linguistiche necessarie, né potendo sfruttare quelle familiari, mi sono rivolto alle agenzie di traduttori. Un costo standard per una traduzione non tecnica di una pagina di queste dimensioni dall’italiano alle principali lingue europee mi pare essere tra 10 € e i 40 €. Sale anche a 150-200 € se si richiede una revisione di qualità. Non è tanto, anzi a me pare molto poco. Significa che il traduttore è pagato una miseria, e avendo assistito mia moglie nella traduzione di uno scenario di film posso dire che è un lavoro bellissimo ma ingrato e infinito.

135 pagine x 20 € x 3 lingue però fa oltre 8000 €, che sono molto, molto al di là di quello che mi posso permettere, perché il progetto non è finanziato da nessuno. Rinuncio? Faccio tradurre solo un piccolo sottoinsieme delle pagine? Chiedo aiuto a volontari con un crowdtranslating? .

C’è una alternativa che senz’altro conoscete tutti: i traduttori automatici su web. Ho una precedente esperienza sia con Bing che con Google, che ho provato per tradurre delle etichette e dei messaggi di un’altra applicazione web. Siccome in quel caso evidentemente il contesto linguistico di ogni elemento era limitato (un grosso file in cui ogni riga si poteva riferire ad argomenti diversi), il sistema di traduzione di entrambi prendeva cantonate notevoli. Qui forse le cose andrebbero meglio perché ogni pagina parla di un determinato argomento, e poi è passato del tempo.

Mi consiglia un amico di lasciar perdere Google e Bing provare DeepL, che è un servizio di una società tedesca. DeepL è basato su reti neurali convolutive, che naturalmente tutti noi conosciamo e mangiamo a colazione. Il nome fa riferimento al deep learning, che è un tipo di machine learning, quella parte dell’intelligenza artificiale in cui si cerca di riconoscere strutture non sulla base di definizioni formali, ma sulla base di somiglianze. In sostanza, grandi moli di testi vengono raccolte e utilizzate per costruire e addestrare modelli di traduzione. La storia di DeepL è abbastanza tipica per il settore: inizia nel 2007 come Linguee, una società tedesca fondata da un ex-dipendente di Google che raccoglie milioni di testi in giro per il web (anche quelli del Parlamento Europeo, che sono multilingue e ben tradotti) e offre un servizio di concordanze online. Dieci anni dopo, sulla base dell’enorme materiale raccolto e di una rete neurale, la società cambia nome e lancia il primo servizio free di traduzione con sette lingue, per un totale di 42 coppie.

Esporto quindi tutte le mie pagine in un unico file PDF e lo carico. E’ troppo grosso, la traduzione automatica non arriva in porto. Ma anche se avesse funzionato, avrei avuto due problemi : dividere di nuovo il file in 135 file HTML e salvarli nel posto giusto col nome giusto; soprattutto avrei dovuto ripristinare a mano tutte le tag eliminate nella conversione in PDF. Non praticabile.

A questo punto mi viene in mente – perché sono un po’ tardo e lento come i passi di Petrarca – che sto trattando il problema in maniera “analogica”. Sto pensando il testo in termini di libro. Per tradurre un libro si prende il testo, lo si manda ad un traduttore; poi comincia un ciclo di revisioni; poi si prende la traduzione finale e la si impagina. Alla fine si distribuisce il libro tradotto nei mercati esteri. E’ un processo sequenziale con un “loop”, un ciclo di ripetizioni interno, per la parte di revisione. Ma è lineare e ogni parte presuppone quella precedente: non si può distribuire il libro se non è stato tradotto, e non si può tradurre se non è stato scritto.

Ma la mia è un’applicazione web, che non ha un momento finale: sarà sempre in pubblicazione. Non deve essere fissata in un certo momento per poi essere inviata ai distributori e poi alle librerie. Non serve a niente tradurre tutto: basta tradurre quello che le persone vogliono visualizzare. E non serve a niente tradurlo prima: basta tradurlo un attimo prima di quando qualcuno vuole visualizzare una pagina. E infine: potrebbe essere necessario tradurre nuove pagine man mano che si aggiungono, o ritradurre alcune pagine che sono state modificate.

Quindi cerco meglio e scopro che DeepL (come probabilmente ogni altro servizio del genere) offre delle API, cioè degli indirizzi HTTP a cui si possono inviare testi da tradurre e che restituiscono la traduzione immediatamente, senza bisogno di intervento umano. Inoltre si può specificare che non si desidera tradurre un romanzo, ma una pagina HTML, escludendo dalla traduzione certe particolari tag (che è proprio quello che mi serve).

Inserisco perciò nel codice sorgente dell’applicazione un test: se l’utente ha scelto l’inglese (o il francese, o lo spagnolo), e il file HTML corrispondente non esiste, viene inviata la pagina italiana e ne viene chiesta la traduzione alle API di DeepL. Tempo due secondi, arriva la pagina tradotta, viene mostrata al visitatore e salvata. L’utente non si accorge quasi di nulla. Al prossimo accesso, quella pagina esiste e il risultato è immediato. Insomma, non sono io che mi occupo della traduzione, ma l’applicazione stessa che risponde alle esigenze dell’utente in maniera automatica, esattamente come gli restituisce i risultati di una ricerca. Contemporaneamente, l’applicazione confronta la data della versione originale (in italiano) e quella della versione tradotta: se la prima è più recente della seconda, richiede una nuova traduzione.

Adesso provo a dire in termini più generali perché un documento digitale non è un libro.

L’uso del servizio online ha trasformato un processo sequenziale in un processo “just in time”, spezzandolo non in funzione della struttura o dell’organizzazione della produzione, ma in funzione del suo utilizzo. Non mi devo procurare una bicicletta in previsione di quando smetterà di piovere e avrò voglia di fare una passeggiata, ma mi trovo una sella sotto il sedere quel giorno lì, appena uscito di casa, e mentre comincio a pedalare appaiono le ruote. Magie digitali? No, è solo che i servizi che chiamiamo “immateriali” (ma che non lo sono, visto che richiedono sempre hardware per essere fruiti) non hanno bisogno di mimare completamente quelli analogici. Se lo fanno, è solo in un momento iniziale, per non confonderci le idee. Bolter e Grusin parlavano di “remediation” per indicare questa capacità di un medium di citare e riassorbirne un altro: beh, di sicuro i servizi digitali rimediano quelli analogici e inizialmente passano inosservati, come ho scritto anche qui. Ma sotto sotto funzionano diversamente.

Il motivo generale per cui è possibile questo andamento dinamico è la caratteristica fluidità degli oggetti digitali. Mentre le pagine di un libro (meglio, di una certa edizione di un libro) sono fisse, hanno una dimensione, un numero di righe, di parole e di lettere, un colore, un carattere e una dimensione, le pagine di un e-book no. La pagina dell’ebook si crea quando viene visualizzata, in funzione di tre livelli di impostazioni: quella iniziale, voluta dall’editore (un certo carattere, per esempio Arial, una certa dimensione delle lettere); quella del dispositivo (una certa dimensione dello schermo, una certa risoluzione in termini di punti per centimetro quadrato); quella decisa dal lettore umano (un carattere diverso, una dimensioni più grande, un’interlinea maggiore). L’ultima vince sulla seconda che vince sulla prima. Da questa trattativa risulta una disposizione del flusso di lettere particolare, probabilmente unica, modificabile in ogni momento. E’ per questo che dire “pagina 3” di un ebook non significa niente, perché cosa viene mostrato dipende dalle impostazioni, dalle scelte, dalle possibilità previste. Uno dei miei primi tentativi di creare un software “educativo” è stato Scribo. Era un software per la videoscrittura semplificato che avevo scritto col linguaggio Pascal. La cosa su cui ho perso più tempo è stata proprio la continua ritrasformazione del flusso lineare del testo in una matrice righe x colonne. Lì ho capito che “pagina numero 3” non significa nulla, mentre “lettera numero 240” invece sì. Ho capito anche quanto la pagina (e lo schermo, che la mima) fosse un’unità completamente arbitraria. La stessa cosa vale ovviamente per le immagini e i suoni, ma per adesso lasciamo questo discorso.

C’è un altro senso per cui un testo digitale non è un libro: perché in fondo non ha un’esistenza propria, se non nel momento in cui qualcuno la vuole ritrovare, consultare, stampare. Non ha senso dire che un testo digitale “sta” da qualche parte, come un libro in una biblioteca o in un archivio che c’è anche quando la biblioteca è chiusa, quando nessuno lo cerca. Un testo digitale è “file” cioè una sequenza di bytes immersa in una sequenza più grande (una tamburo magnetico, un nastro, un disco: non è importante). Quel file però non esiste se non perché è indicizzato, inizia qui e finisce lì; altrimenti è solo una massa informe di bytes indistinguibili da quello che c’è prima e quello che c’è dopo. Questa è una delle caratteristiche primarie degli oggetti digitali: non sono oggetti, ma sono finestre, viste, inquadrature applicate su una sequenza di simboli. L’accesso ai file di un disco è realizzato tramite un indice, che in certi vecchi sistemi operativi si chiamava FAT (File Allocation Table: tabella di posizionamento dei file). Se la FAT si rovinava, era impossibile recuperare i file e il disco era praticamente inutile (per questo ce n’erano due). Certo le sequenze sono diverse, e hanno delle caratteristiche intrinseche che le individuano, cioè l’ordine in cui sono disposti i bytes. Questo ordine è ciò che permette ad un programma antivirus di andare a caccia della “firma” caratteristica di un virus anche senza sapere dov’è.

Una seconda caratteristica importante di un documento digitale, che lo differenzia da un libro, è che la forma con cui lo vediamo o lo pensiamo dipende sempre da qualche operazione che ci facciamo sopra: lo vogliamo tradurre in punti neri su uno schermo bianco o sulla carta, o lo vogliamo tradurre, o analizzare per contare le occorrenze di certe parole. Il documento non esiste in sé e per sé, ma in funzione di quello che ci si fa. Volendo si potrebbe forzare il discorso fino a dire che ogni documento digitale è un programma, nel senso che è una descrizione di azioni possibili, più che di proprietà. Come se ogni documento fosse una ricetta o uno spartito. Ma in realtà di solito ci limitiamo a pensare a certi file come composti da dati, inerti, passivi, e certi altri come programmi, solerti, attivi. E’ una scelta nostra, di convenienza, che però non ha un vero fondamento. Anche i programmi sono dati, e si possono leggere, scrivere, trasformare, tradurre, disegnare, suonare, oltre che eseguire.

E’ per questo che per il servizio di DeepL tradurre un testo in HTML non è un problema: quello che traduce non è il testo che leggiamo noi umani che traduce – un testo che ha un significato per noi perché fatto di parole e segni di interpunzione – ma il documento digitale corrispondente, che strutturato come un albero di tag. Su quest’albero vengono effettuate delle operazioni di ricerca, estrazione, messa fra parentesi. Lo fa DeepL per tradurlo, ma lo fa un browser qualsiasi come Firefox o Edge per mostrarmelo, lo fa un motore di ricerca per indicizzarlo. Per essere ancora più precisi, noi non vediamo mai la cosa digitale, nemmeno quando spiamo il codice sorgente di una pagina web, ma vediamo il risultato di qualche operazione su di essa.

Se ogni volta che abbiamo a che fare con un documento digitale in realtà interagiamo con un programma che lo trasforma, allora dovrebbe essere chiaro è sempre con agenti digitali che abbiamo a che fare. Quando parliamo del web come di una “Internet dei Documenti” tra cui saltabecchiamo in funzioni dei nostri interessi del momento, seguendo link o risultati di ricerca, dovremmo piuttosto parlare di una “Internet degli Agenti”: programmi che parlano tra loro, quando e se lo ritengono opportuno. Un dialogo invisibile agli umani, che continuano ad essere convinti di “navigare la rete”, come se fosse la superficie di un mare, magari sconosciuto, ma naturale. Non è un mare, è una conversazione, un bisbiglio continuo di cui non capiamo nulla ma ogni tanto percepiamo delle increspature e riconosciamo parole. Sono agenti che non hanno bisogno di essere tutti intelligenti, ma solo di essere stati programmati con un compito, lanciati e messi in comunicazione tramite qualche protocollo. Di protocolli ce ne sono tanti, antichi, nuovi, superati, contraddittori: eccola, la vera Babele.

Più ottimisticamente, quando Pierre Lévy (studioso della metafisica araba medievale) parlava di intelligenza connettiva utilizzava un concetto filosofico (l’intelletto agente di Averroè, che non è personale) per descrivere con una metafora questo dialogo che non è fra intelligenze, ma è una forma di intelligenza. Non: l’intelligenza artificiale è all’origine del dialogo, ma: l’intelligenza artificiale è la forma che assume per noi questo dialogo. Quando si parla di aspetti etici dell’intelligenza artificiale occorrerebbe pensare in questi termini: non entità superiori, ma agenti computazionali limitati. Come fa da tempo Salvatore Iaconesi.

Questo dialogo ci è utile, anzi non sapremmo più farne a meno (pur non accorgendocene). Ma ha anche degli effetti più sgradevoli per alcuni di noi: il servizio di traduzione just in time rende il traduttore umano un po’ meno utile se non addirittura inutile. Certo è ancora utile per chi ha bisogno di una vera traduzione letteraria, artistica, legale. Ma per le piccole aziende che vogliono provare a esplorare i mercati mondiali, per le associazioni no profit che si occupano di intercultura e migranti, per gli studenti di ogni disciplina, per chi come me ha bisogno di comunicare al di fuori del suo piccolo angolo di mondo: per tutti noi i traduttori umani diventano un’opzione perfettamente rinunciabile. Per noi la qualità della traduzione di DeepL è più che accettabile. Ma non lo dico io: qui potete leggere uno studio che confronta i risultati della traduzione dall’italiano al tedesco in ambito giuridico, tecnico e promozionale di DeepL con altri sistemi. E non può che migliorare: DeepL, come molti altri, mette i suoi servizi a disposizione non solo del pubblico generico, ma anche dei traduttori umani. Perché? perché più viene usato, più aumentano le dimensioni dei dati su cui viene fatto il training dei modelli di machine learning, più migliora la qualità. Non è lontano il giorno in cui la qualità di una traduzione automatica sarà indistinguibile da quella umana; o meglio, il giorno in cui la qualità sarà variabile a piacere, in funzione del prezzo che si è disposti a pagare. A quel punto, i traduttori umani potranno cambiare mestiere. Già prima, scompariranno gli istituti di formazione linguistica che già ora cominciano ad avere difficoltà a trovare studenti: a che serve studiare da traduttore se poi questo lavoro sta per scomparire? Ne parlo un po’ più a lungo qui.

Insomma la IoA (la Internet of Agents) non è un fatto naturale o un sottoprodotto che il meraviglioso progresso della scienza ci regala: è il risultato preciso di un modello di società fortemente voluto non solo dai Grandi Cattivi, ma un po’ da tutti: le competenze professionali tradizionali vengono acquisite da sistemi digitali e le persone vengono sostituite da servizi sempre più piccoli, specializzati, mirati al bisogno nel momento in cui viene espresso (o anche prima: dove vuoi andare oggi?).

Ecco che mi trovo in una bella contraddizione: rinuncio alle mie bellissime traduzioni, e mi chiudo in un eremitaggio a-tecnologico, da dove naturalmente la mia voce non esce, oppure chiudo gli occhi e partecipo alla fine di una professione su scala planetaria? E se non faccio nulla, ho qualche garanzia che le cose andranno diversamente?

Ecco anche perché capire come funziona il “digitale” è fondamentale per ri/progettare il futuro. Perché viviamo dentro una contraddizione e dobbiamo imparare ad farci i conti.

Sotto il vestito, il codice

Ott
28

Digitale ovunque. Nella scuola, nel lavoro, nel divertimento.

Digitale come servizio, come risorsa a disposizione di tutti, appena girato l’angolo di Google.

Tempo fa1 scrivevo che ci sono tre miti che circolano sulla rete:

  • 1) che sia un ambiente naturale,
  • 2) che le risorse che offre sono gratuite e
  • 3) che siano infinite.

Un supermercato infinito, con scaffali pieni di ogni ben di dio, senza nessuno alla cassa. Tanta formazione alla “didattica digitale” si poggia proprio su questi miti: ecco qui un sito per fare i cruciverba, ecco una app per i quiz, ecco una collezione di sfondi animati.

C’è ancora chi proprio non riesce ad adeguarsi al flusso mainstream e si domanda: cosa rende possibile tutto questo? Facile: i computer, prima di tutto, poi i cavi e i satelliti, senz’altro. Ma cos’altro c’è, sotto la superficie?

In un primo senso, sotto ci sono interessi, soldi, potere, che governano questo come altri campi, con buona pace di chi vede solo futuri rosei in cui intelligenze artificiali e persone andranno a braccetto. Non è grazie all’amore della condivisione della conoscenza che possiamo fare ricerche, scambiarci email, tradurre, condividere agende, parlarci a distanza senza spendere un euro. Ed è curioso che quasi nessuno – in un mondo così attento al profitto, alla conquista di ogni possibile mercato – metta in questione tutta quest’abbondanza di risorse gratuite; non solo quelle create e condivise da docenti-artigiani di buona volontà, ma anche quelle che richiedono enormi centri di calcolo solo per essere distribuite. Cosa ottengono le grandi imprese in cambio di questi servizi gratuiti? Da dove traggono le risorse economiche per restare in piedi? Per quanto tempo questi servizi resteranno gratuiti?

In un altro senso, sotto tutti questi servizi c’è il codice sorgente: un testo che fa funzionare i computer, raccoglie e trasforma dati, inventa mondi e connette persone. Anche oggi, nell’era delle interfacce ammiccanti, dei podcast, dei videotutorial, quello che c’è sotto è sempre un testo. Proprio così: solo lettere, numeri e segni di interpunzione, perché è di questo che sono fatti tutti i programmi che fanno girare il mondo, dagli smartphone ai satelliti. E questo non è tanto strano in una cultura in cui il paradigma dominante è ancora il libro scritto.

Oggi, molto più di ieri, siamo letteralmente (!) immersi in un mondo di testi. Solo che non lo sappiamo, o non vogliamo saperlo. La superficie è molto più rassicurante. Secoli di divisioni tra tecnica e umanesimo, tra estetica ed etica ci hanno abituato a disinteressarci di quello che c’è sotto il cofano della macchina. Il design dei dispositivi che ci rendono possibile lo stile di vita occidentale punta a nascondere sotto superfici lisce, morbide, dai colori tenui, tutto quello che potrebbe disturbarci perché ci ricorda che non lo capiamo.

Perché questi testi che governano il nostro mondo sono incomprensibili per il 99,6% della popolazione mondiale (oggi ci sono circa trenta milioni di programmatori nel mondo, che su 8 miliardi di abitanti del pianeta circa fa appunto lo 0,4 %). Questi trenta milioni sono gli unici esseri umani in grado di verificare (leggendolo) cosa fa un programma. Se, per ipotesi, venissero tutti sostituiti da software in grado di programmare al loro posto,2 avremmo un mondo perfetto di cui non saremmo più in grado di riprendere il controllo. Questo secondo senso si incastra perfettamente col primo: se otteniamo tutto quello che ci serve gratis, non c’è più bisogno di capire come funziona.

Ma sapere cosa davvero c’è sotto è importante anche per avere una conoscenza di una parte di attività umana che ci sfugge. Il codice sorgente non è fatto di 0 e di 1, come ancora si legge da qualche parte; magari sottintendendo che siccome usano un codice binario i computer possono scegliere solo tra due cose, bianco e nero, senza capire le sottigliezze, le sfumature: insomma sono stupidi. Sarebbe come dire che la lingua italiana è composta solo da una trentina di suoni e quindi non può esprimere più di trenta concetti. 0 e 1 sono le lettere di un alfabeto, con il quale si compongono parole, frasi, testi e intere biblioteche. Non è vero che computer capiscono solo 0 e 1: non li capiscono affatto. Invece capiscono istruzioni complesse, descrizioni di situazioni, condizioni, specifiche di azioni, purché appartenenti ad uno degli ottomila linguaggi di programmazione oggi esistenti e purché rappresentate con l’alfabeto più semplice possibile: quello appunto a due simboli. Sotto sotto il punto importante non è l’esistenza di due soli simboli, ma che i computer usino una logica a due valori per eseguire un algoritmo semplice come: “se questo valore è maggiore di 37 fai questo, altrimenti fai quest’altro” o uno più complesso, come quello che riconosce un viso. Qui però i computer digitali c’entrano poco: anche i primi computer, che erano analogici, si basavano sulla cosiddetta algebra di Boole (1847), che ha solo due valori. Dietro all’idea di effettuare un calcolo per decidere la verità di una proposizione c’è il neopositivismo, le tavole di verità del primo Wittgenstein, e poi indietro Leibniz, e poi Ramon Llull, e indietro “Sic et non” di Abelardo, e ancora prima le Confutazioni Sofistiche di Aristotele, fino alla dicotomia di Parmenide tra l’Essere e il non Essere. E il fatto che usino una logica a due valori non impedisce affatto ai software di produrre risultati con un grado di certezza limitato o valutazioni probabilistiche.

Quando oggi gli esseri umani scrivono il codice sorgente di un programma non usano 0 e 1, né quelle strane parolette incomprensibili (MOV, PTR, JMP) che sono solo delle etichette più facili da ricordare per ordinare al processore di spostare dati da un registro all’altro. I linguaggi che si usano oggi sono flessibili, complessi. Permettono di scrivere regole e fatti, di definire funzioni, di costruire classi di oggetti che ereditano conoscenze. Non sono nemmeno tutti ispirati all’inglese, come ancora qualcuno crede: ci sono linguaggi basati sul francese, sul finnico, sull’arabo, sul cinese.

I linguaggi di programmazione vengono inventati continuamente, a differenza delle lingue naturali. Spesso un linguaggio viene inventato per fornire ai programmatori uno strumento più veloce e pratico, o più flessibile e potente; a volte per fornirne uno più elegante e piacevole. Perché i linguaggi sono creati da esseri umani per altri esseri umani, non per i computer. Tant’è che ci sono linguaggi inventati per gioco, per divertimento, per mostrare quanto si è intelligenti e sfidare gli altri, ed hanno nomi come Malebolge, Shakespeare, LOLCAT, Chef o Cow. Questa classe di linguaggi, detti pomposamente “esoterici”, sono praticamente inutili, ma svolgono una funzione puramente estetica, alla faccia di chi sostiene che l’informatica è una tecnica senz’anima. L’esistenza di questi linguaggi dice anche molto sul fatto che gli esseri umani riescono a divertirsi anche facendo le cose più serie, e non resistono a prendersi in giro da soli.

Anche i codici sorgenti non sfuggono a questa legge: i testi dei programmi non sempre sono “algoritmi codificati in un linguaggio per risolvere un problema”, come vorrebbero i manuali. Ci sono programmi che non risolvono nulla, ma sono opere d’arte, scherzi, poesie. Sì, poesie: perché l’estetica si infila in ogni attività umana, in particolare quando si mette di mezzo un linguaggio.

Certo viene la curiosità, soprattutto per una scuola che ospita iniziative di Coding e che propone l’apprendimento del pensiero computazionale per preparare le generazioni future di programmatori (o almeno così pensa): ma chi sono allora questi programmatori? Sono sacerdoti della Macchina Divina che si aggirano in camice bianco? Sono hacker quindicenni e brufolosi che scatenano guerre nucleari spiattellando i segreti della CIA? Sono nerd bianchi etero che vivono solo per schiacciare tutti gli altri con la forza della loro conoscenza ultra-specialistica? Questi sono i luoghi comuni che costituiscono il nostro immaginario collettivo e che provengono dal cinema e dalla letteratura di fantascienza. Ma i programmatori sono anche altro: sono ragazzini e vecchietti, cinesi e russi, donne (poche, purtroppo) e altri generi, geni e principianti, creativi e precisini. Scrivono in maniera diversa, anche per ottenere lo stesso risultato, in base alla loro storia, alla loro lingua madre, alle preferenze stilistiche, alla fase della loro vita. Esattamente come ciascuno di noi scrive diversamente un messaggio d’amore e una velenosa lettera all’amministratore di condominio.

Il fatto è che ancora se ne sa poco: è un campo che non è studiato allo stesso modo, poniamo, di quello della letteratura tradizionale. Non esiste una “sociolinguistica” del codice sorgente.

Di tutti questi temi si è occupato CodeFest 2021, il festival online che si è svolto tra il 27 Settembre e l’8 ottobre 2021. Un Festival unico al mondo, organizzato insieme dall’Università di Torino e dall’associazione Codexpo.org. Riflessioni, concerti, spettacoli, laboratori in cui si affrontano l’estetica digitale, la conservazione del patrimonio, le sfide sociali, le infinite possibilità della scrittura. Tutto per cercare di sfatare il mito della programmazione come roba da macchine, per cercare di raccontare un’altra avventura dell’umanità alla ricerca della perfezione.

Altre informazioni, ma pure le registrazioni degli eventi, le potete trovare su https://codexpo2021.lynxlab.com .

1Le tre fallacie della rete, in “Una scuola per la cittadinanza. Volume 2: Gli orizzonti di senso”, a cura di Mario Ambel. PM Edizioni, 2020, pagg. 178-184.

2Come provo a raccontare in La fine della formazione, https://www.stefanopenge.it/wp/?p=912

Strumenti digitali usati analogicamente

Set
05

Mi sono reso conto improvvisamente (eh sì) che la mia maniera di pensare la “didattica digitale” è spesso lontana da quella di molti che in teoria dovrebbero essere dalla mia stessa parte, la parte di quelli che studiano, sperimentano e propongono agli altri attraverso corsi, libri, seminari e sogni vari. Ci troviamo vicini, ci salutiamo cortesemente, sembra che vogliamo camminare nella stessa direzione, poi improvvisamente c’è un’interruzione di questa comunità di intenti. Forse ho capito perché.

Gli strumenti digitali sono tanti, diversi, e si possono usare in tanti modi diversi. Già per questo parlare di “innovatività del digitale”, o di “didattica digitale” è un po’ generico e ingenuo. Certi strumenti digitali si possono usare per creare strutture nuove, o per replicare modelli esistenti. Si possono usare in maniera ingenua, come se fossero funzioni naturali, date ad Adamo una volta per tutte; oppure si possono esaminare, scegliere, usare magari lo stesso ma sapendo chi li ha costruite e perché.
Soprattutto, si possono usare strumenti digitali come se fossero analogici, all’interno di strutture di pensiero tradizionali; oppure capire come funzionano e sfruttarne le caratteristiche più proprie.
Detto in altro modo: ci sono tante dimensioni lungo le quali si può immaginare e valutare l’uso degli strumenti digitali:

  • consapevole/ingenuo
  • creativo/fedele al modello
  • individuale/collettivo
  • fruitivo/produttivo

    ma quella fondamentale per me resta:
  • digitale/analogico

Dimensione paradossale, in cui il termine che sembra lapalissiano (“uso digitale di uno strumento digitale”) è in realtà la descrizione di un uso del digitale consapevole delle differenze e delle opportunità che offre rispetto al corrispondente analogico; mentre il contrario, cioè “l’uso analogico del digitale” è la descrizione di un uso veloce, superficiale, attento agli obbiettivi immediati, quelli che si possono definire a priori, indipendentemente dalle tecnologie scelte e usate.

Anni fa avevo provato a descrivere alcune delle caratteristiche del digitale. Sbagliando, credevo di parlare del “digitale in sé”, mentre stavo parlando proprio di questa differenza.
Scrivevo che il digitale è inerentemente flessibile, plurale, virtuale, omogeneo. Ognuno di questi aggettivi era un modo di descrivere delle operazioni possibili sugli oggetti digitali e non sui corrispettivi analogici: modificare all’infinito, modificare a più mani, tradurre e reinterpretare da un campo mediale all’altro, eccetera. Queste possibilità derivavano sia dal fatto che alla base c’erano bit, cioè forma e non materia, sia dal fatto che i dispositivi digitali si possono programmare per fare cose non previste, non contenute nell’orizzonte presente.

(La parte seguente può essere saltata da chi si è già interessato alla storia dei media e ha già riflettuto recentemente su questi temi, cioè immagino tutti. In questo caso, può saltare direttamente a leggere la Conclusione ).


1. Gli strumenti digitali nascono per la quasi totalità come rimediazioni di quelli analogici, come scrivono Bolter e Grusin, in un processo che non è una sostituzione netta, e in cui non è subito ovvio se e quando il doppio digitale prenderà il posto di quello analogico.
La coppia pc-wordprocessor, ad esempio, è una versione digitale della macchina da scrivere. Serve a fare le stesse cose, ma inizialmente costa anche di più, è più difficile da usare, richiede un apprendimento specifico; però presenta dei vantaggi: carta infinita, cambio di font, dimensioni variabili eccetera eccetera. Talmente vantaggi che le macchine da scrivere oggi sono scomparse.

Gli orologi analogici invece no, almeno quelli di altissima gamma. Come le carrozze a cavalli sono quasi scomparse, tranne per i matrimoni e per fare il giro del Colosseo. La versione digitale costa poco ed è per tutti, quella analogica per pochi. Potrebbe essere il destino dell’educazione analoagica (umana o cartacea), quella di essere riservata ai ricchi; ma passiamo oltre.
A volte sono quasi indistinguibili, come nel caso delle macchine fotografiche reflex o delle videocamere. Una reflex digitale assomiglia fisicamente ad una analogica, anche se pesa un po’ meno, e fa esattamente la stessa cosa. Solo che non ha bisogno di pellicola, perché la luce viene tradotta in bit prima di essere registrata su una scheda a stato solido, ma questo è del tutto trasparente per l’utente, il quale francamente se ne infischia.
All’estremo opposto, alcuni strumenti digitali sono apparentemente molto diversi da quelli analogici che intendono sostituire; o meglio, fanno astrazione dalla materia e dal corpo (che poi è proprio quello che fa meglio il digitale: rende generico l’hardware). Hanno in comune con quelli analogici solo l’interfaccia, il modello d’uso e lo scopo: un software di editing video assomiglia ad una centralina video ma è un software che gira in un PC qualsiasi, non ha bisogno di un macchina specializzata, non occupa spazio e si può aggiornare facilmente. Costa quasi lo stesso, è vero, ma si può copiare o accontentarsi della versione “open”.

In tutti questi casi, chi ha utilizzato prima gli strumenti analogici e poi quelli digitali ha (o meglio potrebbe avere) la percezione delle differenze, dei minus (“Ah, la qualità degli amplificatori a valvole…”) e dei plus (“Uh che sbadato! Va beh, Ctrl-Z”) che derivano dal fatto che i dati vengono creati filtrando e numerizzando segnali, e che una volta costituiti in forma digitale possono essere trasformati, copiati, inviati all’infinito, senza nessuna perdita. I più anziani, fortunati, o ricchi, possono permettersi di scegliere tra la versione analogica e quella digitale. In ogni caso, per quel poco o tanto di tecnica che conoscono, sanno che dentro il corpo macchina ci sono cose molto diverse.

Chi ha usato solo gli strumenti digitali invece li considera semplicemente gli strumenti disponibili oggi per ottenere certi risultati. Non confronta con nulla, non conosce la storia, non riconosce nel nuovo il vecchio – non sa perché sulle tastiere dei PC esiste un tasto per bloccare il maiuscolo che però non funziona con i tasti che presentano numeri e simboli insieme. Niente di male, intendiamoci: non bisogna per forza aver scritto con una penna d’oca per apprezzare le qualità della Bic. Ma per loro la Bic è lo strumento della scrittura, e non ce ne sono né possono essere altri. Soprattutto, non fanno attenzione al processo sottostante, non sono interessati al funzionamento.

2. C’è una seconda classe di strumenti, che nascono come doppi digitali di uno strumento analogico ma poi si trasformano in altro. E’ il caso del telefono, per spiegare l’evoluzione del quale non c’è bisogno di tante parole. In questo caso, una volta raggiunto l’obiettivo di simulare il comportamento dello strumento target (il telefono analogico) ci si è trovati tra le mani un oggetto talmente potente da poter essere usato come di altre pratiche (fare fotografie, registrare audio) e come terminale di servizi internet (navigare nel web, comunicare). Questo doppio o triplo uso per un certo periodo lascia interdetti gli utenti più vecchi, che continuano a usare uno smartphone come un telefono, mentre è perfettamente compreso dai nuovi utenti, che a limite non lo usano mai per telefonare, ma che importa? Non è un caso: è che essendo l’hardware (e il sistema operativo) dei supporti generici, quello che ci si fa sopra è praticamente illimitato. Una volta fatto lo sforzo di convincere le persone ad avere tra le mani un coso digitale, il più e fatto e da lì si può far passare tutto.

3. Infine ci sono gli strumenti totalmente digitali, nati digitali, senza nessuna corrispondenza analogica. Sono rari perché per affermarsi devono poggiare su concetti completamente nuovi. Il foglio di calcolo è uno di questi: non assomiglia veramente a nulla, non potenzia un foglio di carta a quadretti ma fa cose diverse (sostituisce la mente nei calcoli, e lo fa continuamente). Questi strumenti si basano su una caratteristica unica che gli deriva dall’essere, tutti, al fondo, dei computer: la possibilità di essere programmati. Che non significa : programmati per fare una cosa. Gli strumenti analogici si possono configurare, se ne possono variare i parametri; ma non si possono programmare, nel senso di stabilire comportamenti diversi in base a situazioni differenti. Uno strumento digitale è capace di scegliere come comportarsi sulla base di uno schema di situazione che può essere molto complesso e che si chiama “programma”.


Conclusione

Arriviamo al punto: i doppi digitali si possono anche usare limitandosi alle funzioni che erano possibili coi i loro antesignani analogici. Ma i risultati più ricchi, soddisfacenti, soprattutto per quanto riguarda l’educazione, si hanno quando se ne sfruttano le caratteristiche intrinseche, quelle che poggiano sul loro trattare dati digitali (flessibili, molteplici, omogenei…) e di poter essere programmati. Quando oltre ad usarli in maniera critica, creativa, in gruppo, per produrre artefatti eccetera eccetera si sfrutta il fatto che in questo particolare universo le lettere si possono trasformare in suoni, e i numeri in disegni; che le storie si possono rendere vive e le mappe navigabili, allora li si usa in maniera davvero educativa.
Ecco perché usare strumenti (o servizi) digitali all’interno di un framework educativo analogico mi pare riduttivo.
Ed ecco quello che mi separa da tanti educatori digitali “innovativi”.

Una teoria per l’apprendimento di gruppo

Ago
17

C’è una visione dell’apprendimento che si potrebbe descrivere partendo da questo schema di sapore informatico:

conoscenze = dati

abilità = algoritmi

competenze = saper applicare il corretto algoritmo ai dati relativi alla situazione attuale

L’apprendimento consiste nell’acquisizione dei dati, nell’elaborazione degli algoritmi e nell’accumulo dell’esperienza che consente di scegliere gli algoritmi più adatti.

Immagine tratta da https://ilmicroscopio.blogspot.com/2013_09_01_archive.html, blog del gruppo “Amici del Microscopio.” La foto mostra dei gruppi di fagocitazione con i ponti plasmatici.

E’ un modello pedagogico che chiamerei “tradizionale”, senza andare troppo a distinguere tra teorie diverse, perché mi sembra che sia presupposto implicito di molti discorsi, anche di quelli che non fanno riferimento ad una teoria precisa. Anzi, direi che sta dietro – sempre in maniera implicita – alle teorie dell’insegnamento di chi parla della difficoltà di trasmettere le conoscenze, di promuovere lo sviluppo di abilità e di valutare la presenza di competenze.

La formulazione in termini informatici invece l’ho inserita io, ma non mi sembra di aver forzato molto. Pensare uno studente in termini di computer è quello che si fa quando si parla di pensiero computazionale, sia che si voglia mettere l’accento sugli aspetti concreti della computazione (la calcolabilità, le risorse finite) sia che si pensi ad un elaboratore del tutto astratto che applica algoritmi per risolvere problemi.

In ogni caso: questo schema pensa l’apprendimento a partire dai meccanismi cognitivi superiori (memoria, elaborazione, selezione e applicazione), come fase necessaria perché l’individuo arrivi ad essere competente. L’apprendimento è un requisito per la performance. Il valore è la performance e l’apprendimento è una condizione. Le agenzie educative come la scuola sono la garanzia che l’apprendimento produca il risultato voluto – la competenza. La valutazione è principalmente la certificazione del raggiungimento del risultato finale.

Questa impostazione ha diversi punti oscuri: l’acquisizione delle conoscenze è basata sulla semplice esposizione? Come avviene la creazione degli algoritmi? Come si sceglie quale algoritmo applicare? Sono domande che la pedagogia lascia alla psicologia, secondo una piramide delle discipline accettata abbastanza universalmente.

E’ un modello che è costruito sulla cognizione, sulla memoria, sulla logica. Evidentemente presuppone un individuo normale, cioè che disponga di tutte queste funzioni superiori in maniera standard.

Non trovano posto, in questo modello, gli aspetti affettivi, la volontà, il bisogno. Se c’è un motore a muovere il tutto, è la società che definisce quali sono le competenze utili. E’ un vero “primum movens”, in cui esiste già in atto quello che negli studenti è solo in potenza.

E’ un modello che è costretto a procedere a ritroso nei casi in cui fallisce: se un individuo non è in grado di scegliere l’algoritmo giusto, o non si ricorda i passi, o i dati, significa, tornando indietro, che non ha appreso uno di questi elementi. Per questo occorre frammentare la formazione e inserire dei test che permettano subito di individuare l’elemento mancante.

Questo modello si sposa bene con una didattica basata su un sillabo e centrata sull’azione del docente. E’ il docente che sceglie i dati da registrare, gli algoritmi da costruire, e che mostra dei casi positivi di applicazione dell’algoritmo ai dati perché gli studenti siano in grado di riconoscere situazioni simili.

Naturalmente l’apprendimento riguarda solo l’individuo che apprende, nel senso che gli effetti sono misurabili da comportamenti esterni ma i meccanismi sono tutti interni alla mente dell’individuo. Se si potesse fare un apprendoencefalogramma si potrebbero vedere i dati e gli algoritmi ben allineati e pronti per il collegamento. La cosa più vicina che abbiamo immaginato a questo esame dell’interno dall’esterno sono appunto i test. Che sono, manco a dirlo, dei test individuali.

Questo modello riguarda infatti solo il singolo individuo. La didattica che ne risulta è prima di tutto una didattica individuale; tutte le tecniche rivolte al gruppo di individui sono fondate sull’esperienza, non sul modello che è stato descritto fin qui. Questo semplicemente perché sono gli individui che possono memorizzare dati, costruire algoritmi e applicarli, e non i gruppi. Si pensa l’apprendimento come fenomeno personale, individuale, al quale eventualmente si possono sovrapporre alcune tecniche di insegnamento relative al gruppo. Perché apprendere da soli è la regola.

Penso invece che sia vero il contrario: apprendere da soli non è la regola, è l’eccezione.

Apprendere in gruppo è normale. Norma nel senso della statistica: le modalità strutturate di insegnamento, per quel che ci racconta la storia della scuola, sono soprattutto di gruppo. Norma nel senso della scala: il gruppo fornisce dei riferimenti, delle possibilità di confronto: io sono qui, ma potrei essere lì insieme a quell’altro componente del gruppo. Quindi sto procedendo troppo piano, o troppo in fretta.

Il gruppo permette anche di apprendere per imitazione orizzontale, che è completamente diversa da quella verticale in cui il modello è lontano, competente per definizione. Il gruppo permette di elaborare algoritmi parziali e integrarli con frammenti costruiti da altri, alleggerendo il carico cognitivo. Il gruppo permette di confrontare la propria scelta di algoritmi con quella degli altri, e di fare così meta-apprendimento.

Insomma, apprendere in gruppo di solito funziona meglio. Le discipline sportive di squadra offrono tutte degli ottimi esempi di questa differenza: se l’allenatore punta solo alle eccellenze, e se gli stessi giocatori mirano solo al raggiungimento di obiettivi personali, la squadra ha un rendimento che dipende linearmente dalla somma delle competenze dei singoli. Se invece la squadra diventa il centro dei processi di insegnamento e apprendimento, e tutti investono del miglioramento della squadra, i risultati sono oggettivamente superiori.

Si tratta di considerazioni validissime, ma che partono appunto dalla pratica, non dalla teoria dell’apprendimento, e restano forse proprio per questo marginali nella prassi educativa scolastica. Inevitabilmente la parte relativa ai processi del gruppo è solo superficiale, incollata dall’alto. I processi di scambio di informazioni tra i partecipanti del gruppo sono forzati, scanditi da ritmi esteriori; sono considerati delle richieste a cui bisogna adeguarsi, non una necessità che viene dall’interno.

Facciamo resistenza a pensare in termini di analisi anziché di sintesi. Il gruppo lo costruiamo a partire dagli individui. Come se l’individuo fisico fosse più reale del gruppo.

Perché invece non si fonda la teoria dell’apprendimento sull’apprendimento di gruppo, per poi eventualmente ricadere su un caso particolare, in cui il gruppo è formato da un solo individuo, nei suoi diversi momenti? Perché non si progetta una didattica di gruppo, che ha davvero il gruppo come obiettivo, e non gli studenti? Perché non si immagina una valutazione di gruppo che non sia la media della valutazione dei singoli? Forse perché il modello di apprendimento che abbiamo in testa anche senza saperlo non è adatto.

Parecchi anni fa ho provato a disegnare un modello alternativo. Non tanto perché avessi le prove che questo che ho appena descritto non funzionasse, ma perché mi sembrava un modello debole, con troppi casi lasciati fuori come eccezioni. Non era centrato sull’apprendimento, ma sui risultati. Non rendeva possibile progettare del software educativo diverso da quello che circolava (eserciziari ripetitivi in cui si supponeva che le conoscenza dovessero essere apprese per semplice “esposizione” ripetuta). Anzi, questi esempi mi portavano a pormi la domanda: cosa rende un software davvero “educativo”? Il fatto di essere semplice, anzi banale? I colori sgargianti? La presenza di scoiattolini? I contenuti approvati da qualche centro di ricerca? Il test alla fine, con l’immancabile “Bravo!” ?

E difatti, sulla base di questo nuovo modello ho progettato e costruito, negli anni seguenti, un certo numero di software e ambienti “educativi”, ma in un senso diverso.

Il modello che ho immaginato, partendo certamente dalle letture di Dewey, Vygotskij e Bruner, ma senza cercare di derivarne formalmente una teoria, era molto semplice e in sostanza presentava l’interazione tra due elementi: il Soggetto e l’Ambiente. Il modello in questione descriveva l’apprendimento non come la condizione di qualcos’altro, ma a partire dal suo fine interno: il controllo di un ambiente. L’apprendimento è il processo nel quale il soggetto acquisisce il Controllo dell’ambiente. Di conseguenza, l’educazione consiste nell’assicurarsi che questa acquisizione si svolga in maniera efficace, attraverso la creazione di ambienti che sono progettati appositamente per cedere il controllo al soggetto. La valutazione è la parte del processo educativo che permette di rilasciare il controllo progressivamente, al momento giusto e nella misura giusta. Tutto qui. Ma da questi pochi concetti si possono trarre, a mio avviso, delle conclusioni interessanti soprattutto in termini di progetto didattico e di progetto valutativo, non solo legato ai software educativi.

Prima di tutto, si tratta di un modello che presuppone che l’apprendimento esista, che sia comune non solo ai cuccioli d’uomo, ma a tutte le persone, a qualsiasi età; e che non sia troppo diverso tra gli animali, scendendo via via alle specie meno complesso, e forse fino ai vegetali.

Non presuppone l’esistenza di facoltà cognitive superiori. Il che lo rende applicabile a molte più situazioni. Invece presuppone che ci sia un bisogno, una volontà, cieca quanto si vuole, che spinge il soggetto verso l’appropriazione dell’ambiente. Questa presupposizione è esterna al modello, ed è un modo diverso per descrivere un fatto dell’esperienza: c’è apprendimento quando esiste questa volontà. E difatti, ai cuccioli è quasi impossibile impedire di apprendere, e ai vecchietti quasi impossibile imporlo. L’educazione si svolge all’interno dei margini di questa disponibilità ad apprendere, altrimenti è destinata a fallire. Anche qui si tratta di un fenomeno evidente, ma che si spiega chiaramente: l’educazione è al servizio dell’apprendimento perché l’apprendimento è un processo naturale e l’educazione è solo il tentativo di rendere più efficace quel processo naturale all’interno di uno spazio artificiale.

Un aspetto importante del processo di apprendimento (come è descritto in questo modello) è che non solo il soggetto cambia, ma anche l’ambiente. Forse si tratta della differenza più grande rispetto al modello descritto sopra come tradizionale, ed è l’elemento che rende i due modelli incompatibili. Perché si possa dire che c’è apprendimento non basta andare a guardare nella testa del soggetto, ma occorre guardare gli effetti nell’ambiente. La modifica dell’ambiente è precisamente ciò che il soggetto si propone come fine nell’apprendimento. Non si tratta di una modifica necessariamente fisica (come non è necessariamente fisico l’ambiente): il passaggio del controllo dall’ambiente al soggetto significa che l’ambiente perde di libertà, di potere. Perciò non è pensabile, letteralmente, un apprendimento che non modifichi tanto il soggetto che l’ambiente.

È un modello filosofico, non psicologico. Non distingue tra dati e algoritmi, non si preoccupa di come vengono conservati gli uni e gli altri.

È un modello dinamico, non statico. Il controllo è il risultato della spinta reciproca di soggetto e ambiente; non è un terzo elemento ma solo il limite tra i due.

Resta anche qui da chiarire cosa significa controllo. Ma è un termine che ha un significato univoco: può valere, a seconda dei contesti, libertà, possibilità di agire, conoscenza, previsione, ….

Anche se non l’avevo specificato (o pensato) all’epoca in cui lo descrivevo, il soggetto non è necessariamente un individuo: può essere una parte di un individuo, oppure un gruppo di individui. È una descrizione di un processo partendo dai due elementi che si definiscono uno in relazione all’altro.

Questa possibilità di pensare il gruppo come soggetto di apprendimento a pieno titolo permette di studiare, progettare o verificare il processo anche al livello di gruppo e non solo di individuo. Si possono immaginare delle attività educative, cioè di supporto all’acquisizione del controllo del gruppo sull’ambiente. E, di conseguenza, si possono immaginare strumenti che mirano a fissare la posizione del limite tra soggetto e gruppo: una valutazione del gruppo come soggetto, e non (solo) dei singoli individualmente.

L’apprendimento del gruppo (non solo: in gruppo) non è la somma degli apprendimenti dei singoli. Il gruppo sa fare delle cose che i singoli non sanno fare, ma soprattutto il gruppo ha dei bisogni, degli obiettivi, una storia che sono diversi da quelli dei singoli.

Così l’ambiente di apprendimento del gruppo non è l’ambiente del singolo. E’ un ambiente collettivo dove si intrecciano le operazioni di tutti quelli che fanno parte del gruppo. E’ un ambiente che viene modificato dal gruppo, che si adatta ad esso (e non al singolo studente). E’ facile immaginare cosa significa pensare una piattaforma per l’e-learning in questi termini. In realtà, come si sarà capito, ADA è precisamente un ambiente di apprendimento di gruppo, è stata pensata in questo modo e funziona così. Senza questo modello non si capisce il senso di tante funzionalità, come quella che permette di modificare il contenuto di un corso da parte dei partecipanti del gruppo.

Ma quello che mi interessa soprattutto è che partire dal modello citato sopra permette di derivare una didattica coerente per il gruppo, senza dover aggiungere tecniche, suggerimenti, semplicemente perché l’esperienza ne ha confermato l’utilità. E’ la differenza tra una profilassi basata su una teoria biologica dei microorganismi e una profilassi basata sull’esperienza: fino ad un certo punto funzionano entrambe, ma la seconda finisce per dare origine ad una serie di pratiche magiche tramandate sulla base dell’autorità, alla nascita delle scuole e all’apparizione dei guru.

Basta coi dati, ancora più dati

Ago
15

Dati come algoritmi: ne parlano tutti, a qualsiasi proposito, a volte anche confondendoli. E si capisce, perché gli algoritmi senza dati girano a vuoto. Si legge e si ascolta sempre più spesso “I dati ci dicono che”, “Andiamo a vedere i dati”, “Ci vogliono nascondere i veri dati”. Ma a forza di citarli come risposta finale a tutte le domande, anche la pubblica amministrazione ha capito che si possono usare a fini di comunicazione.

Dalla sindaca di Roma che traccia le biciclette sulle piste ciclabili al software della sottosegretaria Floridia che “calcola il flusso dei tragitti che gli studenti fanno per venire a scuola”, sembra che la nuova tendenza non sia quella di aumentare l’apertura dei dati esistenti, ma di aumentare i dati raccolti da parte della PA.

Tracciare i movimenti e gli accessi, registrare i dati prodotti da azioni umane, è il nuovo dispositivo che da solo certifica l’approach modern e anche smart di una governance near ai citizens. Prima ancora di dire qual è il progetto generale e come quei dati verranno utilizzati, si annuncia la loro raccolta. Come se questa da sola fosse sufficiente; come se ogni raccolta non contemplasse un filtro e una trasformazione; come se i dati si potessero usare senza archiviarli, con il rischio che qualcuno se ne impadronisca (come è successo più volte).

Sul versante opposto, dopo aver richiesto a gran voce la pubblicazione dei dati del COVID, adesso le voci si alzano contro la registrazione dei dati (per esempio, contro il Green Pass) a volte anche senza sapere esattamente quali dati vengono raccolti, da chi vengono trattati, dove vengono archiviati e per quanto tempo. Cosa dice, esattamente, il QR Code? Anzi: cosa ci nasconde?

L’impressione è che da entrambe le parti ci sia superficialità e che tutto si svolga intorno alla parola “dati” più che intorno al concetto di raccolta di dati. Raccogliere i dati è segno di attenzione al territorio oppure è un furto di identità da parte di un sistema sempre più Grande Fratello?

Dal lato della PA, i proclami sono sempre molto opachi sul come quei dati potranno essere utili a tutti i cittadini, su come verranno protetti ora e i futuro, su quali flussi seguiranno. E’ facile pensare che ogni passo nella direzione del monitoraggio dei cittadini (o degli studenti) possa essere un precedente per altri passi più invasivi. Se un Comune può monitorare i passaggi delle biciclette (che per il momento non hanno una targa, e quindi non possono essere ricondotte ad un proprietario), cosa impedirà domani di costruire un Bicivelox che permetta di aggiungere entrate nella casse del Comune stesso? Se vengono tracciati i percorsi casa-scuola degli studenti, cosa impedisce di farlo anche per i docenti? Eccetera. Sono domande che sorgono spontanee nel momento in cui non c’è la necessaria trasparenza sull’uso di quei dati, sulla base legale, sui limiti non solo tecnici.


L’effetto di questo aumento della presenza dei dati come salvatori o come diabolici si mostrerà presto, a mio parere, in un movimento intellettual/popolare di ribellione all’acquisizione di dati. Un movimento che si presenterà come unito per poi spaccarsi in due ali francamente mosse da interessi diversi.

La parte intellettuale sosterrà che l’acquisizione dei dati (o la trasformazione in dati di azioni) è la nuova forma di creazione di valore a partire dalla vita delle persone. Che sia una processo gestito da grandi soggetti privati o da soggetti pubblici, e indipendentemente dalla finalità, si chiederà che nessun modello di machine learning possa essere addestrato sulla base di comportamenti ad alto valore professionale.

Un caso particolare di questa critica riguarderà i professionisti che vedranno scomparire il loro valore e sul mercato man mano che i dati del loro comportamento professionale saranno accumulati e utilizzati per il training di modelli di Machine Learning. Traduttori, programmatori, giornalisti per primi, poi in futuro docenti, medici, avvocati, architetti si renderanno conto che vanno incontro alla scomparsa come i panda. Anche l’università, e la formazione professionale in generale, si accorgeranno finalmente che rischiano un radicale ridimensionamento.

La parte popolare si limiterà a invocare il diritto all’opacità di ogni cittadino di fronte allo Stato, a difendere una generica libertà individuale. In un’unica rivendicazione verranno inclusi i dati fiscali, quelli produttivi, quelli formativi. Sarà facile per i movimenti politici che già fanno leva su questo tipo di istanze libertarie (nel senso della libertà del singolo individuo) cavalcare anche questa rivendicazione all’interno di un progetto politico liberista che punta a ridurre la presenza dello stato nella società.


Penso che questi movimenti vadano distinti, e le loro motivazioni analizzate con chiarezza. Se è vero che i dati sono il nuovo petrolio, nel senso che l’estrazione dei dati dalle azioni delle persone è la fonte principale di valore, questo valore va rivendicato sempre, soprattutto quando su quella base si costruiscono servizi che vanno a sostituire professioni avviando un percorso senza ritorno di rinuncia alla conoscenza teorica. Ma si tratta di un modo di raccogliere e usare i dati che è proprio primariamente di un numero ristretto di grandissime aziende, e che sta funzionando da modello e attrattore anche per le altre. Questo non ci esime dal cercare di ottenere da queste aziende una forma di autocontrollo; ma possiamo anche cominciare a pensare di usare meno servizi “gratuiti”, cioè pagati con i nostri dati, e usarne di nuovi a pagamento che però diano maggiori garanzie di trasparenza. Piccoli passi che ci aiuterebbero anche ad uscire dal sostanziale monopolio di servizi digitali in cui ci troviamo ora.

Per questo è necessario che la PA sia trasparente per quanto riguarda i percorsi di questi dati: perché anche se i suoi scopi sono diversi, la maniera di raggiungerli potrebbe implicare un passaggio (a costi limitati o addirittura senza costi) proprio per uno o più di questi fornitori di servizi.

Non si tratta tanto di proteggere il diritto del cittadino a nascondere alla PA i propri comportamenti, magari sul bordo dell’illegalità, ma di sancire il diritto di ogni cittadino, nei confronti della propria PA, di sapere cosa viene registrato, a chi viene consegnato e per quali usi, ed eventualmente limitare questi usi, così come si è fatto nel caso dei dati personali dal GDPR. Ma se il GDPR era nato per proteggere le economie dei Paesi europei contro la concorrenza di altri Paesi un po’ più leggeri nella gestione dei dati personali, stavolta si tratta di proteggere i diritti prodotti dai cittadini stessi, che non sono dati personali ma appartengono comunque alla sfera del valore e non solo a quella della tecnica.

Come per quanto riguarda i dati personali, la via più facile sarebbe quella di anonimizzare i dati, in modo che non sia possibile risalire al cittadino da cui sono stati prodotti. Purtroppo è una strada scivolosa e difficile. Facciamo un esempio: l’anonimizzazione può essere applicata per default oppure solo su richiesta del cittadino.

Nel primo caso, siccome i dati hanno senso soprattutto quando vengono incrociati, bisogna costruire un cittadino-doppio, un avatar anonimo su cui convergano tutti i dati raccolti. Questo doppio, identificato da un codice univoco all’interno della PA, non potrebbe davvero perdere il legame con il cittadino reale, altrimenti non sarebbe più possibile collegare i nuovi dati raccolti a quelli precedenti. Quindi il problema si sposta semplicemente dai dati al codice, dal tesoro alla chiave.

Nel secondo caso, quello di un’anonimizzazione su richiesta esplicita da parte dei cittadino, sorge il problema della propagazione a catena dell’anonimizzazione su tutte le repliche dei dati. Senza un protocollo che impone di tenere traccia di ogni replica, di ogni accesso in copia, sarebbe evidentemente impossibile assicurare il cittadino che tutte le copie sono state anonimizzate.

Insomma, in pratica i dati prodotti da un cittadino e quelli identificativi del cittadino restano connessi. E di qui il problema.


Spesso si dice che siccome le persone hanno già ceduto la maggior parte dei propri dati ad aziende private (l’uso della carta di credito, l’uso del telefono, gli spostamenti fisici, la navigazione web e in generale l’uso di servizi via Internet, i propri interessi e preferenze, la propria rubrica) non ha senso preoccuparsi dei dati forniti alla PA. E’ il tipo di critica che si riceve quando si parla di protezione dei dati all’interno di un social network. Fa venire in mente lo scrutatore non votante che “si fa la doccia dieci volte ma ha le formiche sulla tavola”.

Credo invece che i discorsi vadano tenuti separati. Da una parte è possibile, anche se difficile, condurre una vita senza cedere i propri dati ad aziende private, nel momento in cui si riesce a rinunciare ai servizi, a pagamento o gratuiti che siano, che queste offrono in cambio dei dati stessi. Si può vivere senza usare Google Maps, senza Gmail, senza Android, senza Windows e naturalmente senza social network centralizzati. Si possono cercare alternative, gratuite o a pagamento. Si possono fornire dati imprecisi, contraddittori o parziali.

Ma non si può vivere senza carta di identità, senza pagare le tasse, senza un fascicolo sanitario. In un caso c’è un contratto esplicito, accettato, che prevede uno scambio più o meno trasparente di dati contro servizi. Nell’altro caso, il contratto tra la persona e lo stato inizialmente non viene nemmeno firmato dalla persona, ma dai genitori al momento dell’iscrizione all’anagrafe. Quel contratto non specifica cosa lo stato possa fare in seguito con i dati del cittadino, ma fa riferimento alla Costituzione, alle Leggi statali e regionali. Da quel contratto si può uscire veramente solo rifiutando del tutto ogni nazionalità, o scegliendone una diversa.

Per questo è importante che la PA sia in grado di esporre un protocollo di raccolta dei dati che sia chiaro, inattaccabile, funzionale.


Una delle situazioni in cui questo problema potrebbe presentarsi improvvisamente (anche se le premesse sono presenti da anni) è quello della raccolta dei dati nella piattaforme di DaD, o di e-learning. Il tracciamento del comportamento degli studenti (non solo i voti o gli accessi, ma la navigazione fine, la consultazione dei link e degli allegati, la scrittura di testi, la comunicazione orizzontale) può essere più o meno spinto, e può essere più o meno usato a vantaggio degli studenti stessi, per esempio per arricchire la valutazione con dati che descrivono il comportamento degli studenti (o di un gruppo di studenti) in tempo reale, senza bisogno di aspettare il momento del test. Dati che permettono di confrontare quello che sta succedendo con quello che, in situazioni simili, ci si attende che succeda. Lo stesso potrebbe succedere, a breve, relativamente alla registrazione dei dati dei docenti: accessi, comunicazione con gli studenti, creazione di contenuti aggiuntivi, valutazione.

Da un lato è evidente che questi dati potrebbero essere usati per aiutare i docenti e i corsisti, o anche gli autori di contenuti, o i progettisti delle piattaforme; dall’altro, questi dati potrebbero essere usati per selezionare gli studenti ancora prima del termine del loro corso di formazione (come nel caso di alcuni MOOC), oppure per controllare il lavoro dei docenti e sanzionarne comportamenti inadeguati. O infine, e qui torniamo a quanto detto sopra, per costruire un modello di docente che sia in grado di fare lezione, correggere gli esercizi, assegnare voti.

Anche in questo caso occorrerebbe sbrigarsi a regolamentare cosa può essere raccolto, con che finalità, per quanto tempo.

Alcune ipotesi di lavoro.

1. Si può chiedere ad una PA di fornire un bilancio tra i servizi forniti grazie all’acquisizione di dati dei cittadini e la necessaria sottrazione di privacy dei cittadini stessi. Ci saranno casi in cui i vantaggi superano gli svantaggi, ed altri in cui l’acquisizione di dati non è giustificabile. Un bilancio che dovrebbe essere pubblico, facilmente leggibile dal maggior numero di cittadini, aggiornato frequentemente.

2. Si può chiedere ai poteri legislativi di stabilire, una volta per tutte, che i dati prodotti dalle azioni dei cittadini (come quelli che ne definiscono l’identità) vengano riconosciuti come di proprietà dei cittadini stessi. Non è un passo semplice, perché i dati non sono oggetti fisici che una volta ceduti non sono più di proprietà del precedente proprietario. I dati di cui parliamo non hanno nemmeno le caratteristiche dei prodotti dell’ingegno, che devono essere originali. Un’altra difficoltà deriva dal fatto che questa richiesta potrebbe andare in direzione opposta, almeno apparentemente, a quella dell’apertura dei dati pubblici. Andrebbe applicata una licenza permissiva ma con caratteristiche speciali: per esempio, dovrebbe essere possibile tracciare l’uso dei dati e rendere possibile la propagazione del blocco del loro utilizzo.

3. Questa legge dovrebbe anche stabilire che il trattamento di quei dati deve avere come finalità primaria il vantaggio dei cittadini e non del sistema organizzativo. I cittadini, attraverso i loro dati, dovrebbero sempre essere considerati un fine e mai un mezzo, come reciterebbe la versione moderna del principio regolativo kantiano.

Quali cittadini? Solo quelli a cui appartengono i dati, o tutti? E’ evidente che scienze come l’epidemiologia hanno bisogno dei dati di tutta la popolazione per provare a fare ipotesi significative.
Insomma, i principi non bastano, ci vuole ancora tanto lavoro. Ma sarebbe ora di iniziare a farlo.

Hello, world!

Giu
15

“Hello, world!” è uno dei luoghi comuni dell’universo della programmazione, nel senso di uno dei topic fondamentali, conosciuti magari solo superficialmente, ma su cui si ritorna in continuazione. Raccontare dell’origine di “Hello, world!”, e poi andare a cercarne le presenze nella cultura contemporanea, è un buon modo per fare un tuffo in questo mondo e rendersi conto di quanto sia ricco, complesso, e non così arido come immagina chi ne rimane fuori.

Banalmente, “Hello, world” (nel seguito: HW) è il nome convenzionale che si dà ad ogni programma che come unico risultato alla fine della sue esecuzione scrive sullo schermo la frase: “Hello, world!”.

E’ di solito il primo esempio che si fa per mostrare le caratteristiche di base di un linguaggio di programmazione all’interno di un manuale, un tutorial, un corso su quel linguaggio. Da un punto di vista puramente quantitativo permette di mostrare quanto codice deve essere scritto per ottenere un risultato in apparenza molto semplice. Perché a seconda del linguaggio scelto, questa quantità può essere molto diversa. D’altra parte anche per le lingue naturali è noto che ci sono lingue prolisse e lingue concise.
Ad esempio, in Pascal – che è un linguaggio didattico, inventato nel 1970 dall’austriaco Niklaus Wirth per insegnare la programmazione strutturata – occorre dichiarare un programma, con un nome, e al suo interno un blocco con un inizio e una fine:

program hello;  
uses crt;    
begin
  writeln('Hello, world');
  readln
end.

La stessa cosa succede in Java – uno dei linguaggi più usati al mondo, inventato dal canadese James Gosling nel 1994 – , dove ancora più informazioni sono necessarie per dichiarare l’usabilità del codice in contesti più grandi (public, static), o il riuso di librerie esistenti (System.out):

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, world");
    }
}

Invece nei linguaggi interpretati, come in Perl – creato dallo statunitense Larry Wall nel 1987 con lo scopo di essere pratico, più che elegante – di solito non è necessaria tutta questa sovrastruttura, ma è sufficiente scrivere una sola istruzione, che in memoria dei tempi in cui terminali erano della stampanti si chiama “print”:

print "Hello, world\n"

Insomma: c’è più di un modo di fare la stessa cosa. Che è anche il motto del Perl: TIMTOWTDI (There Is More Than One Way To Do It). A dimostrazione che la programmazione non è un’attività ripetitiva, ma un’arte.

Questo “task” permette anche di far vedere come vengono trattate le sequenze di simboli, che è una parte fondamentale di tutti i linguaggi di programmazione, e come può essere gestito l’output verso lo schermo o verso altri dispositivi.

Per spiegare il versante più algoritmico dei linguaggi di solito si usano altri compiti, legati al mondo dei numeri, come quello di calcolare l’i-esimo numero di Fibonacci; oppure quello di scrivere tutto il testo della canzoncina da scout “99 bottles of beer“, tenendo conto delle varianti, con il minore numero di istruzioni.

Perché proprio “Hello, world!” e non “123 prova” o “tanto va la gatta al lardo”?

Non è affatto un testo casuale. C’è dietro una storia, che non è nota a tutti, anche tra i programmatori.

Nel 1972 Brian Kernighan, un fisico canadese che lavorava ai Laboratori Bell, si trovò a scrivere un tutorial sul linguaggio B, inventato proprio lì.

Nei primi capitoli del tutorial, dopo aver presentato gli operatori aritmetici, passa alla funzione “putchar” che scrive sul terminale l’argomento passato, in questo caso una costante:

main( ){
	auto a;
	a= ’hi!’;
	putchar(a);
	putchar(’*n’ );
}

Il valore della costante è in questo caso ‘hi!’, ciao.

Nell’ultima riga viene dimostrato come facilitare la formattazione usando dei codici particolari: ‘*n’ non sono due lettere da stampare, ma un codice unico che indica alla funzione putchar () che al termine deve aggiungere un ritorno a capo.

Poco più avanti, volendo mostrare come si creano e usano le variabili comuni, Kernighan ha bisogno di una frase più lunga, e abbastanza naturalmente da ‘hi!’ passa a ‘hello, world!’:

main( ) {
    extern a, b, c;
    putchar(a); putchar(b); putchar(c); putchar('!*n');
}
a 'hell';
b 'o, w';
c 'orld';

Il motivo per cui ci sono tre variabili anziché una sola è che il massimo numero di caratteri che una costante nel linguaggio B può contenere era 4.

Ancora più avanti la frase “hello, world” viene riusata per introdurre le stringhe, che invece possono essere più lunghe di 4 caratteri.

Sei anni dopo, lo stesso Kernighan riusa esattamente la stessa frase quando si trova a scrivere il manuale del linguaggio C (che era un erede del B):

main( ) {
        printf("hello, world\n");
}

In questa versione scompare il punto esclamativo (probabilmente perché ha un significato preciso nel linguaggio: è un operatore unario, una negazione, e lo studente potrebbe esserne confuso).

Perché sceglie “hello, world”? Evidentemente questa frase faceva parte della cultura popolare statunitense, tanto che in un’intervista di quarant’anni dopo Kernighan sostiene di non ricordare esattamente perché l’ha scelta, ma di avere in mente un cartone animato con un pulcino che dice “Hello, world”. In ogni caso, questa frase era usata negli anni cinquanta da uno speaker radiofonico, William B. Williams, come suo saluto (un po’ come “Good morning, Vietnam!” o “Cari amici vicini e lontani”). Era quindi un saluto, un’espressione orale, colloquiale. Un buongiorno, la prima frase che si dice quando si incontrano delle persone.Siccome il manuale di Kernighan è stato tradotto in 20 lingue ed è considerato unanimemente “il” riferimento per il linguaggio C, la versione “hello, world” divenne quella più conosciuta da migliaia o milioni di studenti e apprendisti programmatori.

Talmente famosa da diventare un oggetto artistico: la versione scritta a mano del codice è stata battuta ad un’asta nel 2015 per 5.000 dollari.

Da quel momento, l’uso di HW come task per introdurre un linguaggio è diventato una specie di standard de facto, un omaggio al lavoro dello stesso Kerninghan, e implicitamente a quello di Dennis Ritchie (l’autore del linguaggio C) e di Ken Thomson (l’autore del linguaggio B).

L’omaggio non può che essere piuttosto rigido, nel senso che sarebbe considerato di pessimo gusto utilizzare come primo esempio nel manuale di un nuovo linguaggio un codice sorgente che stampi “Hey Jude”.

Talmente è diffusa questa tradizione che qualcuno ha pensato di raccogliere esempi di programmi HW scritti in centinaia di linguaggi di programmazione diversi, come ha fatto Wolfram Rösler a partire dal 1994:

http://helloworldcollection.de/

La prima versione dei codici si atteneva ad un singolo modello (“Hello World!”), in cui anche la parola World, essendo un sostantivo, viene scritta in maiuscolo come è corretto fare in lingua tedesca da Lutero in poi. Mano a mano che la raccolta è cresciuta – 603 linguaggi censiti oggi – i codici si sono allontanati dal testo originale. Per essere esatti, la tradizione consente queste sole varianti al testo originale:

– si usa la H maiuscola (corretta in Inglese ad inizio di frase)

– si può usare la w o la W (benché la maiuscola sia un errore in Inglese a meno che World non si intenda come nome proprio)

– si può omettere la virgola (che nell’originale serviva a mostrare l’uso dei segni di interpunzione all’interno delle costanti e fuori)

– si può omettere il punto esclamativo finale, in omaggio alla versione in C

– si può omettere l’acapo finale (\n)

Ma a dimostrare la posizione particolare di HW all’interno dell’universo culturale dei programmatori non ci sono solo le sillogi di codice.

Proprio pochi giorni fa, il maestro Nicola Campogrande per l’apertura di Codefest 2021, il festival del codice sorgente organizzato dall’Università di Torino e da Codexpo.org, ha composto e diretto quattro lieder sul testo HW, scegliendo quattro linguaggi tra quelli proposti in helloworld.de. E’ un caso lampante di uso del codice sorgente al di là della sua funzione primaria. D’altra parte, anche Franco Berardi (Bifo) nel 2001 aveva effettuato una performance singolare leggendo a voce alta il codice sorgente di un virus scritto per l’occasione dal collettivo [epidemiC]. In fondo, anche le partiture musicali e le ricette si possono leggere a voce alta e, perché no, cantare. D’altra parte, ci sono stati casi di poesie scritte in linguaggi di programmazione, da quelle in ALGOL a quelle in Perl.

Un altro omaggio dal mondo esterno è quello di Tomohiko Itō che nel 2019 ha diretto un anime dal titolo originale “Harō Wārudo” , che significa proprio quello che pensate. In questo mix di fantascienza e sentimenti, il mondo viene registrato in un supercomputer dal nome evocativo, Alltales.

Ma per tornare nel campo della molteplicità dei linguaggi di programmazione, che è facile definire come nuova Babele visto che ce ne sono 8000, ci sono artisti del codice che hanno dato vita a veri pezzi di bravura, come questo HW che può essere correttamente compilato/eseguito in 8 linguaggi diversi e produce lo stesso risultato:

https://ideology.com.au/polyglot/polyglot.txt

Per divertirsi un po’ – non solo se si è programmatori – si può andare a leggere questo testo riportato sul sito della Free Software Foundation, in cui vengono raccolte e presentate sedici maniere diverse di scrivere HW, organizzate in base all’età, alla competenza professionale e al ruolo dell’autore, utilizzando linguaggi diversi (BASIC, Pascal, Lisp, C, C++, Perl,…) e contemporaneamente prendendo in giro le caratteristiche di ogni figura: dal giovane programmatore che vuole impressionare il datore di lavoro all’hacker che ricompila un codice già scritto, al guru che usa meno caratteri possibili, al manager che scrive una mail per farsi fare il lavoro da un sottoposto fino al CE che non è in grado di fare nemmeno quello.

https://www.gnu.org/fun/jokes/helloworld.html

Un’altra magnifica prova di umorismo è quella di Benno Evers, un programmatore di Amburgo, che descrive dai diversi punti di vista di un novizio, un apprendista, un avvocato, un pedante, un idealista, un ideologo, un ingegnere, un fisico e un illuminato cosa succede quando viene eseguito una variante in C++ di HW:

#include <iostream>

int main() {
    std::cout << "Hello, world!" << std::endl;
}

https://gist.github.com/lava/f8732a6802988fe8d0a41bd7979a4d54

Il codice sorgente dovrebbe essere sempre leggibile, per permettere ad altri di imparare e correggere. Ma siccome i programmatori sono tendenzialmente dei nerd e tendono a sfidarsi sul terreno della bravura, a volte si divertono a scrivere codice illeggibile solo per il gusto di far vedere che sono capaci di farlo. Non tutti sanno che ogni anno, dal 1984, si tiene una gara di abilità tra programmatori C in cui vengono premiati i programmi meno leggibili: si tratta dell’International Obfuscated C Code Context. Uno dei codici vincitori della prima edizione era appunto un HW (che usa la versione originale del testo):

int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hello, wor\
ld!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}

Ma non è l’unico caso: ci sono state delle sfide aperte, come quella su codegolf.stackexchange.com che invitava a scrivere un HW senza usare nessuno dei caratteri seguenti:

h, l, w, d , e, o, r, 0, 1, 2 e 7

Per quanto possa sembrare strana, questa è una delle soluzioni (in Javascript) che fa anche un occhiolino all’ASCII Art:

https://codegolf.stackexchange.com/questions/307/obfuscated-hello-world

Infine, HW è entrato anche nel mondo dei linguaggi (non solo dei codici sorgenti) dal 2001, l’anno in cui Cliff Biffle ha inventato HQ9+.

Questo linguaggio nasce dalla constatazione che la maggior parte degli studenti di programmazione cercano degli esempi da cui imparare, e gli esempi sono appunto “hello, world”, la poesia “99 bottiglie di birra” e i programmi che stampano il proprio codice sorgente ( i cosiddetti “quine”, in omaggio a Willard Van Orman Quine, logico statunitense ).

HQ9+ risponde in maniera molto precisa a questa esigenza. Infatti ha solo quattro istruzioni:

  • H scrive “Hello, world”
  • Q scrive il sorgente del programma stesso
  • 9 scrive la poesia “99 bottiglie di birra”
  • + incrementa l’accumulatore

Con HQ+9 abbiamo terminato il nostro viaggio intorno ad “Hello, world”, e speriamo di aver contribuito a dare una visione un po’ più allegra e umanizzata dell’universo della programmazione.

Della solitudine e i suoi rimedi

Nov
22

Chi ha la fortuna di abitare in campagna, o in montagna, o al mare, o insomma ovunque meno che in città, vive in mezzo ad altre vite. Se si guarda intorno scopre cani e gatti, volpi e tassi, scoiattoli e topi; e poi passeri, corvi, merli, upupe. Per non parlare di mosche api e zanzare, farfalle ragni e scarafaggi, vermi e lumache. Ci sono alberi, cespugli, erbe, funghi, muffe e cose ancora più piccole di cui non sappiamo nemmeno il nome. Insomma avete capito.

Ognuno di questi esseri è un soggetto a tutti gli effetti, ha una vita propria che si intreccia con quella degli altri. Fa delle cose indipendentemente da noi, esiste indipendentemente da noi. Ognuno, se ci facciamo caso, ci sorprende. La sensazione generale è che se noi stiamo fermi, il resto del mondo invece si muove.

In un appartamento di città, invece… a parte qualche zanzara, qualche scarafaggio e qualche tarma (ospiti non graditi), qualche animale importato dall’esterno (Fido, Micio e Cocorito), il ficus Benjamin sofferente nell’angolo del soggiorno, la stella di Natale perenne e i gerani sul balcone… insomma, di esseri viventi in un appartamento di città se ne vedono pochini.

In questa scatola piena di oggetti se noi stiamo fermi, non succede niente. Il libro che abbiamo messo in quello scaffale continua a stare lì. Il maglione nello sportello in alto, sepolto sotto gli altri maglioni, non cambia di posto, di colore, di dimensione. Le cose di cui ci siamo circondati non sono soggetti, sono davvero solo oggetti.

E allora si capisce perché uno si circondi di macchine: orologi, lampadine, scaldabagni, radio, televisori, telefoni, computer, ognuno con il suo linguaggio visivo e sonoro, con le lucine colorate, i ronzii, crepitii.

Questi sì che sono soggetti: se carico un orologio, quello va avanti da solo. La radio parla e parla, il televisore mostra cose che io non conosco. Per non parlare di telefoni e computer che completano l’illusione che da qualche parte ci sia qualcun altro come noi, in un appartamento, circondato di macchine amichevoli e autonome. Per non parlare, ovviamente, dei vari Alexa e compagnia, con cui possiamo conversare anche quando l’ultimo degli amici è andato a dormire.

Certo non sono organismi del tutto indipendenti, sono solo giocattoli, nel senso che possiamo sempre spegnerli e riaccenderli a volontà, o almeno così ci sembra. Sono tutto sommato prevedibili, a grandi linee, e questo ce li rende ancora più cari e indispensabili.

Peraltro funzionano bene anche nell’altro senso, come parafulmini. Se dormo troppo, la colpa è della sveglia. Prendo chili nel posto sbagliato per colpa dell’e-reader. Strade violente: me la prendo con la TV. Se c’è una pandemia, la colpa è del PC. Non mi chiama nessuno? E’ colpa del telefonino, che anzi adesso me lo cambio e prendo quello che ha più cose e vedrai te.

Ma allora smettiamola di lamentarci della tecnologia fredda, distante, che ci rende tutti robot e ci fa perdere le capacità empatiche e ci addestra a tarpare la nostra emotività. E’ una storiella che non corrisponde più alla realtà e nemmeno alla nostra esperienza quotidiana.
Questa tecnologia è stata costruita apposta per non essere più fredda e distante: il suo chiacchiericcio continuo, come il borbottio dei robot di Star Wars, è la colonna sonora delle nostre vite. Altro che distante: è sempre più presente e si mette in mezzo proprio come un cucciolo che ci gioca tra i piedi, e che ogni tanto prendiamo a calci.

Questa tecnologia è la nostra coperta di Linus.
Ne parliamo male tutti i giorni, ma non potremmo mai rinunciarci.

Ah, io abito in campagna.

Piattaforme queste sconosciute

Ott
12

Tra le parole più consumate per il cattivo uso quella di cui parliamo oggi è piattaforma. Ne avevo parlato qualche tempo fa qui ma oggi vorrei approfondire perché sono scoraggiato da quanto leggo qua e là.

Platform 9 3/4
Immagine di Oleg Sklyanchuk , CC BY-NC 2.0

Due etti di storia della parola: derivata dal medio francese, in inglese è attestata a partire dal 1550 nel senso di “piano, disegno, progetto”; poi ha perso questo significato metaforico per orientarsi verso uno più letterale. A partire dal XIX secolo si usa in geografia, in tecnica ferroviaria e poi in politica. La piattaforma petrolifera è una cosa piatta, in mezzo al mare, sulla quale ci si sta a lavorare come se fosse un’isola, come se fosse terraferma. E infatti ci sono anche le piattaforme per i tuffi… divertitevi qui a trovare tutti gli usi censiti dal dizionario Treccani. Se cercate il significato di “piattaforma informatica” invece sarete delusi perché è definita piattaforma praticamente qualsiasi cosa, hardware o software, che ne permette altre. E infatti i software per la creazione e gestione di corsi online (che, tanto per ricordarlo ai distratti, NON significa a distanza) potrebbero essere chiamati “piattaforme”, invece che software e basta, quando si volesse sottolineare che non sono soluzioni autosufficienti, ma che sono dei piani dove si può sostare e fare cose come se si fosse a terra, cioè sono delle tecnologie abilitanti ad altro. Oppure per dire che le attività che si fanno lì dentro non sono cablate dentro al software, ma sono optional, moduli autonomi che si possono aggiungere e togliere a piacimento. Ora seguitemi mentre cerco di spiegare cosa possono essere questi moduli: contenuti, pezzi di software, altre applicazioni, e chissà che altro. In questo modo magari riusciamo anche a capire le differenze tra piattaforma, suite, groupware, cloud.

  1. Non tutti i software per l’apprendimento online sono letteralmente piattaforme. Alcuni sono perfettamente autonomi: anche se non è definito a priori ciò che contiene il singolo corso (i contenuti, la loro struttura, le modalità di comunicazione e collaborazione tra corsisti si possono decidere volta per volta), tutto quello che serve si fa lì dentro senza bisogno di aggiunte esterne. Sono ambienti di apprendimento, ma non piattaforme. Non è né un bene né un male in sé: sono il frutto di una scelta e seguono una filosofia precisa con vantaggi e svantaggi. Un paio di vantaggi come esempio: il monitoraggio e la valutazione sono molto semplici, perché tutto quello che corsisti e docenti fanno avviane lì dentro. Inoltre, è molto più facile garantire la privacy degli utenti, perché niente fugge verso altri lidi dove non si sa bene cosa capita ai dati personali. Ci sono ovviamente svantaggi: le attività possibili sono solo quelle previste da chi ha progettato il software; altre attività possono essere suggerite, segnalate, ma non integrate in maniera trasparente nel percorso di apprendimento.
  2. Un software per l’e-learning che sicuramente è una piattaforma è invece Moodle. Moodle è stato chiamato così (Modular Object-Oriented Dynamic Learning Environment) dall’inventore per far notare che è un software modulare, cioè che le attività didattiche non sono cablate all’interno una volta per tutte ma sono pezzetti di software che si possono a) aggiungere ad un corso b)aggiungere alla piattaforma e c) aggiungere al repository del codice sorgente di Moodle. La prima operazione spetta all’autore del corso (il docente) la seconda al sistemista che configura la piattaforma, la terza agli sviluppatori che seguono le linee guida e producono nuovi moduli che si possono agganciare alla piattaforma (b) e aggiungere al corso (a).
  3. Questo approccio si basa su due linee di pensiero collegate ma diverse. La prima è quella che pensa le attività come oggetti che si possono descrivere, circoscrivere, prendere da un deposito e riusare. Questa linea di pensiero è quella che è stata resa famosa (e anche presa in giro e vilipesa), con lo standard SCORM: Shareable Content Object Reference Model. Standard inventato dall’Advanced Distributed Learning, presso il Dipartimento della Difesa degli Stati Uniti. Standard che si è evoluto fino all’ultima versione del 2009, e poi è stato abbandonato dagli stessi promotori a vantaggio di un approccio diverso: “qualsiasi cosa può essere un’attività didattica, purché sia in grado di inviare dati sull’utilizzo da parte dello studente secondo un linguaggio standardizzato”. Inviare a chi? Ad una piattaforma (detta Learning Record Store) che non ha uno scopo preciso, ma si limita a ricevere e organizzare i dati in modo che possano essere interrogati dai software di e-learning. Un po’ più avanti, sempre su questa linea tecnico-didattica si colloca lo standard LTI proposto dal consorzio IMS. Qui si tratta, più modestamente, di un protocollo che permette ad una piattaforma di e-learning come Moodle di parlare con un sistema di videoconferenza come se fosse un oggetto SCORM , cioè di inviare i dati di accesso di un utente e ricevere i dati sul suo utilizzo.
  4. La seconda linea di pensiero è quella più strettamente informatica, quella dell’Open Source. Visto che il codice sorgente dei software open source è riusabile anche da altri, è possibile tecnicamente, ma anche legalmente, aggiungere librerie, moduli, oggetti realizzati da altri sviluppatori all’interno del proprio software. Naturalmente, perché non sia un furto, occorre assicurarsi che la licenza originale lo permetta e specificare l’autore iniziale. Prendere il codice altrui e ricopiarlo senza citare è poco diverso da un furto. Questa bella opportunità – che non è tipica delle piattaforme, ma di tutto il software opensource – però nasconde anche dei rischi: siccome è facile copiare e incollare, o includere, non è detto che chi include abbia il tempo di controllare linea per linea il codice sorgente incluso e verificarne la qualità. Potrebbe farlo, tecnicamente e legalmente, ma non è detto che lo faccia. Per questo esistono versioni di software open source (ad esempio, versioni di Moodle) che sono garantite da qualcuno che si è preso la briga di leggere tutto il codice sorgente, eliminare la robaccia e i pezzi sospetti e tenere solo i moduli robusti e sicuri. I software proprietari (non nel senso che sono di qualcuno, ma nel senso che il codice non è opensource) ovviamente non permettono questo tipo di controllo. Di qui l’obbligo previsto dal CAD per la pubblica amministrazione di effettuare sempre una valutazione comparativa che prenda in considerazione il software opensource.
  5. Un altro tipo di piattaforme, nel senso di software non mono-blocco ma modulare, sono le suite per ufficio. Quelle che tutti conoscono oggi sono Google Gsuite e Microsoft Office365, ma le suite per ufficio esistono dalla metà degli anni ’80. Sono collezioni di software indipendenti, online o offline, che dialogano tra loro. Nel caso di software installati sullo stesso computer, questo “dialogare” significa che condividono l’interfaccia e il linguaggio; che si possono copiare e incollare dei pezzi di documento dall’uno all’altro oppure convertire facilmente da un formato all’altro. Nel caso di applicazioni remote, a cui si accede tramite internet, il dialogo è anche a livello di accesso: quando un utente è registrato e fa il login nella piattaforma/suite non ha bisogno di essere registrato anche nei software satelliti ma può passare da uno all’altro senza apparente interruzione. Le applicazioni sono remote nel senso che stanno su computer accessibili solo via Internet, ma anche perché per ragioni di convenienza, cioè di flessibilità e di sfruttamento degli investimenti fatti, sono divise in pezzetti sparsi su più computer. In questo secondo caso si parla di cloud, per indicare appunto che l’utente non ha modo di sapere esattamente dove stanno le applicazioni che usa, i documenti che produce e in generale i propri dati. E’ una situazione di incertezza che è diventata problematica con l’applicazione del GDPR. Peraltro parliamo qui di suite “per la produttività”, non di software per l’apprendimento, anche se è molto percepibile il tentativo di far passare una cosa al posto di un’altra cambiando terminologia. Non è solo una questione di marketing, ma anche di modello sottostante: se la scuola è palestra di vita, niente di anormale che fin da piccoli occorra abituarsi ad usare un word processor, un foglio di calcolo, un database. Si può essere d’accordo o meno con questa impostazione, ma va tenuta ben presente.
  6. groupware sono ancora diversi: sono software per la collaborazione e il lavoro di gruppo online. L’esempio più noto oggi è Microsoft Teams, ma anche in questo caso i primi sistemi del genere datano da almeno i primi anni novanta, se non si vuole considerare NLS di Engelbart che era addirittura della fine degli anni ’60’. L’unità di significato minima qui è il gruppo di persone, non la persona, e quindi le funzionalità principali sono appunto quelle che consentono di comunicare tra i membri del gruppo (chat, bacheca condivisa, videoconferenza), di scambiarsi files, organizzati in cartelle fisse o personalizzabili, e organizzare il lavoro (agenda e rubrica, progetti e tracciamento delle attività). Per un fenomeno ben noto di marketing aggressivo e concorrenza spietata per cui ogni software vuole diventare piattaforma, e quindi sostituire tutti gli altri, ai groupware si possono aggiungere altri pezzetti di software, e quindi diventa difficile distinguerli dalle suite di cui sopra.
  7. Tra le funzionalità dei groupware quella che oggi è davvero irrinunciabile (ma c’era già in NLS…) è la videoconferenza; il che complica le cose, perché si tende a confondere un groupware che ha al suo interno la videoconferenza (come Teams) con un sistema di videoconferenza vero e proprio (come Zoom o Jitsi). Chiamare Zoom una piattaforma è chiaramente improprio, sia perché non è una base dove si aggiungono moduli, sia perché parlare guardandosi in faccia non è sufficiente per collaborare.
  8. Se è vero che collaborare è sicuramente una parte importante del processo di apprendimento di gruppo, e collaborare e comunicare online diventa fondamentale quando la collaborazione fisica e la comunicazione orale non-mediata è impossibile, va tenuto presente che una suite di produttività per ufficio o un software pensato per supportare un gruppo di lavoro non sono necessariamente ambienti ottimali per l’apprendimento. Di qui tante durezze, giri improbabili, gerarchie e controlli esagerati, funzioni inutili e altre inspiegabilmente mancanti.

Per chiudere, spero che la parola piattaforma ora sia più chiara per tutti e venga usata in maniera coerente (e questa sarebbe una magra soddisfazione), ma soprattutto che non ci si butti ad usare X solo perché qualcuno ha sentito dire da qualcun altro che “è una piattaforma per la didattica digitale”.

The body snatcher (carrozze, videoconferenze ed educazione)

Apr
07

Tempo fa, a proposito degli ipertesti, scrivevo che il digitale è un vampiro, che succhia la realtà. Avrei dovuto scrivere che è più simile agli ultracorpi del film omonimo del 1955 (che penso tutti conoscano, in una delle sue versioni). Il titolo originale del film era “The body snatchers”, i ladri di corpi.

Secondo Bolter e Grusin (che all’epoca non conoscevo), il digitale “remediates” l’analogico, secondo una dialettica propria del processo mediatico, di tutti i media: la fotografia rimedia la pittura, etc. Mescola insieme media diversi (hypermediacy) e così facendo tenta di diventare trasparente (immediacy) come medium.

A me sembra che il digitale faccia una cosa un po’ diversa e specifica. Imita e sostituisce. Copia con il preciso scopo di prendere il posto dell’originale, come gli ultracorpi appunto.

La maggior parte degli artefatti digitali nasce come imitazioni di artefatti analogici. A partire da immagini e suoni digitali, che sono campionamenti discreti e che vengono rimesse insieme con un software per dare l’illusione della realtà. Lo smartphone imita il telefono, non solo nel senso che ne assume tutte le funzioni, ma nel senso che digitalizza tutte le sue parti (la rubrica, la selezione, la codifica della voce, l’invio e la ricezione) e le trasforma in software e dati.

Una volta fatta questa operazione, l’intero oggetto telefono si può rappresentare dentro un altro sistema digitale, cioè un computer. Per esempio ci sono simulatori di videogiochi, ma anche simulatori dei computer con cui si giocava a quei videgiochi.

La pagina del quaderno e quella del libro, compreso l’inchiostro, e poi l’indice e la copertina, sono stati digitalizzati. A questo punto, l’hardware che li contiene e permette l’interazione da parte di organismi fisici come noi diventa quasi indifferente (immediacy). Di qui, tra l’altro, l’ambiguità e confusione tra ebook (contenuto), ebook reader (software) ed ebook reader (hardware contenente).

Va anche detto che di solito si pensa solo ai dati che vengono convertiti e si mette meno l’accento sul software, che invece è essenziale per imitare i comportamenti che ci sono consueti con quei dati. Se i dati possono essere semplicemente campionati e riprodotti, le funzioni invece vanno analizzate e ricreate (poggiare la punta della penna sul foglio, premere, trascinare, staccare; e poi cancellare, sottolineare, etc.).

Non affronto questo tema per denunciare i rischi della virtualizzazione e per decantare la bontà del buon vecchio oggetto fisico o della sua rappresentazione analogica. Voglio solo sottolineare il fatto che questa capacità di replicare completamente per sostituire è tipica del digitale ed è una rottura rispetto a tutta la storia dei media precedenti.

Qual è il vantaggio di questo processo? Sullo stesso hardware posso simulare infiniti oggetti diversi. Quindi mi costa di meno. Con lo stesso linguaggio di programmazione posso creare infinite simulazioni. Quindi ottimizzo le competenze. Lo stesso stile di interazione si può applicare a infiniti ambiti diversi. Quindi ne facilito l’uso.

Queste, in breve, le ragioni economiche e sociali che hanno spinto il digitale fino alla situazione di dominio che oggi gli riconosciamo. Ma più interessante è, a mio parere, quello che succede quando ci si allontana dall’imitazione e si provano a creare modi di interazione del tutto nuovi. Interessante soprattutto per i fini educativi.

___

L’automobile è stata concepita, e poi presentata e quindi venduta, come carrozza senza cavalli. Si è portata dietro questo schema antico, per evolversi e allontanarsene un po’ alla volta (ma ancora parliamo di potenza in termini di cavalli). Non può staccarsi troppo perché trova dei limiti: il guidatore e il passeggero devono essere seduti comodamente, protetti dalle intemperie, ma contemporaneamente devono poter vedere la strada, etc. Fa qualcosa di diverso del carro con i cavalli: corre molto di più, è più piccola, ha maggiore autonomia, può rimanere ferma per mesi e poi ripartire, se non è in funzione non gli si deve dare da mangiare. Ma in fondo niente di radicalmente diverso dal carro.

Un po’ come la videoconferenza usata per le lezioni a distanza. Oggi è usata come una cattedra molto, molto lontana. Ancora non riusciamo a immaginarne un uso in quanto tale, non come simulazione di qualche altra cosa.

Spostiamoci un attimo nel mondo del coding. Guardando agli ambienti di programmazione visuale (sì, parlo di Scratch; ma pure di Snap! e di tanti altri) viene inevitabilmente in mente il LEGO come metafora. Ora immaginiamo una simulazione digitale proprio del LEGO originale (esiste davvero, in una versione più semplice di come la descrivo nel seguito, http://ldd.lego.com/en-us/). I mattoncini sono parallelepipedi colorati su uno schermo. Si possono girare in tutte le direzioni, spostare, congiungere.

Quali sarebbero le differenze con il LEGO del mondo reale?

  1. il numero dei mattoncini è teoricamente infinito (non lo è in pratica perché la il software, e la macchina su cui gira, hanno dei limiti fisici)
  2. è facile assegnare ai mattoncini digitali altre proprietà o comportamenti. Potrebbero diventare trasparenti, crescere; ma anche suonare, muoversi da soli, staccarsi e attaccarsi dopo un certo tempo.
  3. sulla base di queste proprietà si possono immaginare regole, giochi, interazioni che con i mattoncini di plastica non sarebbero possibili.
  4. queste nuove regole e interazioni possono essere immaginati da chi ha progettato il software, ma anche da chi lo usa, ammesso che il software lo permetta

Insomma questa immaginaria versione digitale del LEGO potrebbe essere riprogrammata, anche dai bambini. Questa è una differenza importante. Non è solo questione di portabilità, leggerezza, facilità, ma di legge costitutiva, di regole che sono in mano all’utente e non solo al produttore.

Qui il digitale mostra la sua potenzialità.

Ecco, questa è la strada. Staccarsi dai limiti che erano appiccicati all’immagine precedente, il LEGO, la cattedra,la carrozza con i cavalli, e creare qualcosa di davvero nuovo.