Poesie digitali

Nei manuali di programmazione si trova scritto che tutti i programmi sono scritti per risolvere un problema. Esiste un problema (trovare la via più breve tra due punti), si inventa un algoritmo per risolverlo e poi si scrive un programma che traduce quell'algoritmo in qualche linguaggio eseguibile da un computer.
Non è del tutto vero: ci sono programmi che non risolvono nulla, ma si limitano a produrre degli effetti interessanti. Ad esempio, questa immagine è prodotta da un codice sorgente scritto in Logo:

Spirale in Logo
Source: Spirale in Logo
Ci sono programmi scritti solo per essere letti, per essere studiati (come quelli dei manuali) o addirittura per essere "assaporati", esattamente come una poesia, che non serve a niente se non a provocare un effetto su chi la legge.
Non è un'idea così nuova. I primi a giocare con i linguaggi di programmazione in questo modo sono stati i poeti dell'Oulipo negli anni '60, ma i loro divertimenti sono rimasti sepolti in qualche biblioteca.
Agli inizi degli anni '90, all'interno della comunità di programmatori in Perl, nasce l'idea di scrivere programmi che fossero privi di scopo ma avessero chiare somiglianze formali e contenutistiche con testi poetici, in particolare con la forma minimalista dell'Haiku.
Haiku di Matsuo Basho
Source: https://www.metmuseum.org/art/collection/search/816208
Probabilmente gli autori erano del tutto all'oscuro dei tentativi del gruppo dell'OuLiPo, ma volevano lanciarsi una sfida di bravura o semplicmente divertirsi.
Due idee paradossali stanno dietro questo piccolo gioco: la prima, quella di scrivere programmi senza obiettivo, nega l'essenza stessa della programmazione così come è insegnata ovunque. Nei manuali e nei corsi ancora oggi si trova scritto che programmare è “tradurre in un linguaggio un algoritmo che risolve un problema dato”. Ma nel caso della Perl Poetry non abbiamo nessun problema da risolvere; inoltre l'algoritmo sembra perdere importanza nei confronti del linguaggio in cui è scritto. Quindi: o un Perl poem non è un programma (ma è corretto ed eseguibile), oppure programmare è qualcosa di più che risolvere problemi.

La seconda idea è quella di condurre il lettore colto a cogliere delle somiglianze tra alcune forme d'arte poetica (non a caso, l'haiku, che è una forma che si adatta bene alla limitatezza del dizionario di un linguaggio come il Perl, che ha solo 250 termini) e alcune “forme di codice”, che soddisfino tutti i requisiti formali di un codice sorgente, compreso quello di essere effettivamente eseguibile su qualche macchina. Un programma può assomigliare ad una poesia.
La Perl Poetry nasce come gioco, come dimostrazione di abilità, e assomiglia in questo alle gare di “codice offuscato”, in cui il programmatore ha come obbiettivo quello di scrivere codice incomprensibile ma funzionante (vedi IOCCC).

Prossimo pannello:  ASCII art

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

Versione: 20/01/2022 - 10:23:32

Pannelli

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