Vai al contenuto

Ecco perché gli sviluppatori sono pure artisti

Ci sono diversi motivi per cui gli sviluppatori assomigliano a degli artisti. Queste percezioni si basano su osservazioni sul posto di lavoro e sull’esperienza personale. Paul Graham , fondatore di Y-Combinator, ha scritto un articolo di qualche anno fa chiamato hacker e pittori. Ha descritto come la gente sembri sorpresa del fatto che qualcuno interessato a computer fosse anche interessato all’arte. Si potrebbe pensare che l’hacking e la pittura sono molto diversi tra loro – da una parte la programmazione, fredda, precisa e metodica, e dall’altra parte la pittura, calda e creativa. In realtà niente di più sbagliato, poichè sviluppatori e pittori hanno parecchie caratteristiche in comune. Vediamo quali.

Una tela bianca è l’inizio di tutto

Gli artisti prendono una tela vuota e utilizzano la loro creatività per creare qualcosa di speciale. Ciò richiede l’applicazione del pensiero astratto, cercando di collegare le cose e creare qualcosa di speciale in primis con la mente e poi con le mani.

Gli sviluppatori, se vogliamo, fanno qualcosa di simile. Prendeno un problema, trovano una soluzione e la “ritraggono” attraverso il codice. Non è forse vero che un progetto vuoto in un IDE è simile a una tela bianca?

Rifinimenti graduali

I dipinti sono spesso creati in modo graduale, mano dopo mano, livello dopo livello. Di solito si inizia a disegnare una bozza e gradualmente vengono riempiti tutti i dettagli. Tuttavia, non è solo un processo di riempimento poichè molte volte il piano originale del dipinto viene stravolto in corso d’opera. Innumerevoli dipinti, guardandoli ai raggi x, risultano avere delle sezioni che sono stati modificati o cancellati. Alcuni pittori, come Picasso o Leonardo da Vinci, dipingevano addirittura sopra un altro dipinto esistente.

Lo sviluppo di una porzione di software spesso inizia con una bozza su una lavagna o su un foglio di carta bianca, iterando l’idea e il codice e facendo un passo indietro quando ci si accorge di prendere la strada sbagliata. Spesso si effettua il refactoring di qualcosa e talvolta si decide di buttare tutto nel cestino e partire nuovamente da zero.

L’ispirazione

Picasso diceva: “I bravi artisti copiano, i grandi artisti rubano”. Molti artisti sono profondamente influenzati dal lavoro svolto dai grandi maestri del passato. Le loro idee, esposte da persone e media, finiscono con l’influenzare il lavoro dell’artista.

Van Gogh ammirò e studiò le opere di molti artisti tra cui Rembrandt e Gustave Doré. Secondo gli studi e le ricerche effettuate, Van Gogh avrebbe copiato 21 dipinti di Jean Francois Millet. Un palese esempio è “Il Riposo” di Van Gogh, chiaramente ispirato all’opera “Noonday Rest” di Millet.

“L’Ultima Cena” di Andy Warhol è chiaramente ispirata all’Ultima Cena di Leonardo da Vinci. Ma non è tutto, si dice che Warhol abbia creato più di 100 dipinti e opere su carta sulla base dei capolavori di Leonardo Da Vinci.

Anche gli sviluppatori si ispirano al lavoro svolto da altri. Solitamente, si fanno delle ricerche su Google per vedere se un problema che stiamo cercando di risolvere è già stato risolto prima in modo da riutilizzarlo, risparmiando spesso giorni o settimane di lavoro. Il mio professore universitario lo diceva sempre: “Se esiste già una libreria, perchè non usarla anzichè svilupparla ex novo?”. Molti sviluppatori fanno un fork dei progetti su GitHub per modificare o migliorare una porzione di software già esistente. In questo modo si contribuisce allo sviluppo dei progetti open source. Ad esempio, otteniamo le idee da altri sviluppatori su Twitter e Facebook oppure impariamo nuove metodologie di scalabilità da quelle software house che hanno pubblicato i loro progetti. Questa è una pratica abbastanza comune nella comunità degli sviluppatori.

Entrare in “zona”

A volte gli sviluppatori usano cuffie entrando in una specie di catalessi: c’è una ragione ben precisa. Lo sviluppo di codice spesso richiede molta concentrazione. Entrare in zona è una frase usata dagli sviluppatori di software per indicare il massimo livello di concentrazione mentale. E’ proprio in quel momento che si diventa più produttivi. Sono quegli attimi in cui il tempo passa velocemente e appaiono le soluzioni più brillanti, si scrive il codice più complesso e tutto fila liscio come l’olio.

Anche gli artisti entrano in zona. Spesso passano delle ore o addirittura giorni su di un progetto.

Il codice è come l’argilla

Il codice è come l’argilla. Spesso si cerca di scrivere del codice per ottenere un “pezzo” di software in una forma perfetta – un po’ come quando si modella un pezzo d’argilla con le mani. Stessa cosa accade con la programmazione: si modifica la struttura interna di porzioni di codice senza modificarne il comportamento esterno fino ad arrivare al giusto design.

Un grande progetto richiede tanto tempo

La creazione di grandi opere d’arte richiedono molto tempo e pazienza e sopratutto perseveranza. Alcuni artisti sono fortunati, vuoi per talento o doti naturali, poichè riescono a creare gran parte del proprio lavoro in fretta, ma per la maggior parte ci vuole pazienza e lunghi periodi di tempo. Per creare la sua Monna Lisa, si pensa che Leonardo da Vinci impiegò circa 14 anni. Jay DeFeo per completare della sua sculura “The Rose” impiegò quasi otto anni. Alla fine l’opera completa arrivò a pesare oltre 2.300 chili e fu necessario un muletto per spostarla.

La creazione di un “pezzo” di software può anche richiedere mesi o addirittura anni, prima di arrivare al prodotto finale. Come un artista, lo sviluppatore spesso entra in crisi, si blocca, pensa a rinunciare, fino alla svolta. Tuttavia, a differenza di un’opera d’arte che viene presentata in un museo o in una galleria, il software può migliorare nel corso del tempo, rilasciando dapprima una MVP (minimo stadio di sviluppo per cui il prodotto può essere testato o introdotto sul mercato) per poi rilasciare versioni successive sempre più aggiornate e migliorate. Questo processo può richiedere anche anni per arrivare al prodotto finale inizialmente ideato.

Arte (e software) si logorano

Le opere d’arte si logorano, inevitabilmente. Ecco perché abbiamo i restauratori d’arte. Anche il software decade nel tempo, anche se in realtà non si logora fisicamente. Le innovazioni (di qualsiasi tipo) introdotte nella produzione di sistemi tecnologici producono un aumento dell’entropia del software in esercizio con una conseguente crescita della domanda di manutenzione/evoluzione. L’entropia rende il software legacy, ovvero obsoleto. Si ha quindi la percezione di un lento deterioramento delle prestazioni del software o la diminuzione della sua reattività che porterà quasi sicuramente a un guasto, un malfunzionamento o un rallentamento rendendo il sistema inutilizzabile. A quel punto sarà necessario un aggiornamento. Come il restauro di antiche tele ad olio, o se vogliamo come la potatura e la cura delle piante, anche il software deve essere “potato” attraverso il refactoring del codice, per tenerlo sempre aggiornato.

Molti sviluppatori sono veri artisti

Lo sapevate che esistono sviluppatori che sono anche artisti, nel verso senso della parola? Basta dare uno sguardo ad esponenti di un certo calibro nel campo delle innovazioni e della tecnologia. Leonardo da Vinci, ad esempio, è stato un pittore e scultore ma anche un ingegnere, architetto, matematico e inventore.

La comunità del linguaggio Ruby è nota per avere all’interno molti sviluppatori che sono anche artisti e musicisti. Ad esempio, tal Jonathan Gillette (non l’inventore della lametta…), è uno scrittore, illustratore e programmatore statunitense, noto soprattutto per il suo contributo alla comunità Ruby. Insieme a Yukihiro Matsumoto e David Heinemeier Hansson è visto come una figura chiave nella comunità Ruby, e ha personalmente sviluppato parte del runtime standard del linguaggio. Ha dedicato gran parte della sua attività alla creazione di tutorial e di metodi per insegnare Ruby agli adolescenti in modo non convenzionale.

Per molti sviluppatori di oggi, la linea di separazione tra programmazione e arte è diventata sempre meno evidente. Infatti, gli sviluppatori web di oggi possiedono capacità di progettazione da un lato, ma sono anche in grado di utilizzare Photoshop, fogli di stile e linguaggi del Web e sono esperti di estetica web e web design.

In una mostra al  San Francisco Museum of Modern Art chiamata “Frequency and Volume”di Rafael Lozano-Hemmer, uno dei più importanti artisti multimediali emergenti degli anni 90, l’artista invita i visitatori a sintonizzarsi e ad ascoltare varie radio frequenze, utilizzando il proprio corpo in un’installazione interattiva audio/video. Nell’opera d’arte, un sistema di monitoraggio computerizzato rileva le ombre dei visitatori che vengono proiettate su una parete. La posizione e il profilo dell’ombra proiettata determinano la frequenza di scansione, e la dimensione di ogni ombra controlla il volume. Le onde radio pubbliche e private diventano visibili come spazio dati. L’installazione può sintonizzarsi a qualsiasi frequenza tra 150 kHz e 1,5 GHz, permettendo, così, ai visitatori di ascoltare non solo FM e AM, ma anche il controllo del traffico aereo, le onde corte, il cellulare, il satellite, i sistemi di telecomunicazione wireless, e la radio-navigazione. Le varie frequenze possono essere sintonizzate simultaneamente, e in quest’ambiente si crea una composizione controllata dai movimenti dei partecipanti. Egli ha potuto creare ciò solo attraverso l’uso combinato di competenze artistiche, progettazione e programmazione.

In conclusione

Vero è che la programmazione richiede un metodo analitico, scientifico, preciso, ma sicuramente non richiede solo questo. Programmare richiede anche e sopratutto ispirazione, creatività, riflessione e abilità. In altre parole, bisogna plasmare il codice in un’opera d’arte capace di resistere nel tempo. Pensandoci bene, programmatori e pittori sono molto più simili di quanto pensiamo.