Improvvisazione

I linguaggi sono basati su regole. I programmi obbediscono alle regole. Ogni programma fa sempre la stessa cosa, all'infinito. Cosa c'è di più lontano dall'improvvisazione?
L'improvvisazione è il modo originale dell'arte. Si improvvisava a teatro, si improvvisava cantando e danzando; improvvisavano i poeti antichi. Il teatro del cinquecento era basato su un canovaccio su cui gli attori della Commedia dell'Arte sapevano muoversi liberamente; ma anche i musicisti sapevano prendere una base armonica e creare nuove melodie: lo facevano Bach, Mozart e persino Beethoven.

Arlecchino
Source: https://en.wikipedia.org/wiki/Harlequin

Anche oggi l'improvvisazione musicale (dal jazz al rock) ha ancora un suo spazio importante, come quella della danza, mentre quella teatrale è rimasta un po' da parte. L'arte contemporanea ha invece introdotto il concetto di performance art (detta anche 'happening"), un'opera che nasce ed esiste solo in un certo momento e poi scompare.
In tutti questi esempi il pubblico vede solo l'effetto, mentre l'improvvisatore sa che dietro ogni gesto ci sono tecniche, regole, trucchi.
E il codice sorgente?
Il codice sorgente, come qualsiasi altro testo, è il risultato dell'atto di scrivere, un processo creativo che accade nel tempo e nello spazio. Di solito, viene scritto una volta ed eseguito più volte. Ma a volte tempo e spazio non sono gli stessi tra autore e opera.
Prima di tutto, può succedere che lo spazio dove viene scritto il codice sorgente non sia lo stesso di quello dove si trova il programmatore. In alcuni casi, il programmatore dal proprio computer modifica un codice sorgente che sta su un computer lontano migliaia di chilometri.
E' quello che succede ad esempio quandi si vuole correggere velocemente un codice di un sito web, che è ospitato da un server collocato chissà dove. Invece di scaricarlo sul proprio computer, modificarlo e ricaricarlo, lo si può modificare direttamente sul server inviando i comandi di modifica attraverso internet.
Ma anche il tempo è messo in questione dalla programmazione.
Ogni volta che si esegue un programma possono esserci degli effetti collaterali che fanno sì che una seconda esecuzione dello stesso programma non produca lo stesso effetto della prima. Un esempio facile: un programma che crea un file se non esiste. Questo è uno dei motivi per cui sono stati inventati i linguaggi funzionali in cui, appunto, non ci sono effetti collaterali, ma ogni esecuzione ha esattamente lo stesso risultato.
Ma anche a prescindere dagli effetti collaterali, lo stesso programma eseguito in contesti diversi (sistemi operativi diversi, computer diversi, momenti diversi) non si comporta allo stesso modo. Per quanti sforzi si sono fatti per scrivere codice sorgente completamente "portabile", cioè usabile ovunque, in pratica ogni esecuzione è un evento a sé.

Se i rappers fanno improvvisazione orale su una base musicale, anche la scrittura del codice sorgente può essere vista come una performance artistica che avviene qui e ora, e che in quanto performance può essere sempre diversa.
E' il Live Coding: un programmatore scrive codice che è eseguito proprio mentre lo scrive, in tempo reale.
In questo modo si rompe una delle tradizioni più lunghe nella storia delle scrittura: quella per cui prima si scrive, poi si legge.
Quello che vale per le leggi, per i romanzi, per i soggetti televisivi o per i copioni teatrali non è più vero qui: si scrive mentre si "legge" (anche se è l'umano che scrive, ed è il computer che legge, ed esegue).

Prossimo pannello:  Poesie

© Codexpo.org - Content released under Creative Commons 4.0 BY/SA/NC

Versione: 20/01/2022 - 22:48:31

Pannelli

Arte                        
Qualità                    
Regole                      
Vincoli                     
Combinatoria                
Caso                        
Gioco                       
Musica                      
Improvvisazione             
Poesie                      
ASCII art                   
IOCCC                       
Virus                       
Live Coding                 
🔎