Regole

Programmare è scrivere un testo secondo certe regole. Prima di tutto quelle della grammatica del linguaggio che si usa; poi anche altre, più complesse, che dipendono dal contesto: lo stile del resto del codice, il tempo a disposizione, gli obiettivi del progetto.
Ma è chiaro che non si programma come si scrive un romanzo: esistono dei vincoli molto più forti nei linguaggi di programmazione rispetto a quelli delle lingue naturali. Se non rispettano quelle regole, l'Esecuzione del codice non va a buon fine e, nel migliore dei casi, viene segnalato un errore.
D'altra parte, i linguaggi di programmazione permettono di estendere le regole. Si possono creare parole nuove (anzi lo si fa tutto il tempo: variabili, costanti, procedure, funzioni) e entro certi limiti anche regole nuove, fino a modificare la grammatica stessa.
Da questo punto di vista, i linguaggi di programmazione sono più liberi delle stesse lingue naturali: mentre in Italiano appaiono decine di nuove parole ogni anno (qui trovate un elenco delle più recenti a cura della Accademia della Crusca), ogni programmatore definisce centinaia di parole nuove ogni volta che scrive un programma.
Ma quando si pensa ad un poeta, a musicista o a un pittore, si immagina che la sua creatività si esprima proprio nell'assenza di regole. Il poeta inventa, il musicista fa Improvvisazione, il pittore rappresenta quello che vede con il suo occhio interiore. Tutta un'altra cosa rispetto a quello che fa il programmatore, chino sulla sua tastiera, ripetendo cento e cento volte le stesse frasi e attento a non sbagliare inserendo uno spazio o una virgola di troppo.
Eppure l'arte ha a che fare con le regole e con la violazione consapevole delle regole, almeno quanto la programmazione.
Malgrado quello che si impara a scuola, o si crede di aver imparato, l'arte non è solo espressione libera e non ha a che fare solo con solo l'ispirazione. In generale, la creatività - analogica o digitale - non è solo intuizione e fantasia, ma è anche rispetto delle regole.
Da quando ne abbiamo notizia, gli artisti hanno esplorato i limiti delle arti scegliendo regole sempre più stringenti da rispettare e poi cercando di andare oltre. Grammatica, rime e ritmo sono solo un piccolo sottoinsieme dei vincoli che gli autori si sono dati.
Questo è vero tanto per la Musica quanto per la scrittura o le arti figurative.
Più stretti sono i limiti, più piccolo il margine di libertà, più sfidante è il lavoro di costruzione dell'opera d'arte.
E' esattamente questa sfida che rende così attraente il lavoro del programmatore: sa che deve essere creativo, ma all'interno di un linguaggio formale, con una grammatica rigida, e con vincoli di tempo e risorse.
E' questa stessa forza che spinge gli sviluppatori a gareggiare nelle competizione di codice offuscato, come lo IOCCC.

Prossimo pannello:  Vincoli

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

Versione: 12/01/2022 - 19:23:45

Pannelli

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