sabato 24 maggio 2014

Perchè il software è una forma d'arte

Tutti ormai usano il computer, anche gli artisti.
Rispetto alle forme d'arte tradizionali e soprattutto a quelle più moderne (es. cinema e fotografia), i programmi software sono di solito considerati come strumenti facilitanti ed abilitanti verso nuovi confini espressivi.

Alla stragrande maggioranza delle persone sfugge però che anche il software è un manufatto frutto dell'ingegno e dell' inspirazione dell'uomo.
La cosa sembrerà a molti un'eresia, ma chi conosce il mondo dell'ingegneria informatica sa perfettamente che l'approccio alla realizzazione di un software ha una forte componente creativa.

Il limite sta nel fatto che la bellezza di una soluzione software non è facilmente verificabile;
anche se con un algoritmo geniale risolve un problema complesso ed è inspirata da una grande creatività, rimane confinata nei meandri del codice e quindi è generalmente ignorata dagli utilizzatori.

Solo un informatico esperto con le giuste competenze specialistiche, che abbia l'opportunità di analizzare il codice, può realmente apprezzarla, condividerla e addirittura prenderne ulteriore ispirazione.

Tuttavia è ora di sdoganare questa forma creativa elevandola nella sue massime espressioni ad Arte, considerando che il "Software sta mangiando il mondo", i programmi informatici sono sempre fondamentali nel quotidiano delle persone, gran parte dei manufatti sono oggetti mossi dal software e stiamo andando verso l'era dell' Internet of Things.


I seguenti punti sintetizzano il perchè l'ingegneria del software può essere assimilata alle forme d'arte tradizionali e moderne.
  1. Un algoritmo può essere oggettivamente bello o brutto, ma anche interpretabile soggettivamente.  
  2. La realizzazione di un software deriva da un'idea. Una soluzione software è frutto dell'inventiva o addirittura del genio di uno o più uomini (con profili professionali differenziati ma che per comodità chiameremo "programmatori"). 
  3. Non esiste una rappresentazione unica di un programma, ciascun programmatore interpreta e realizza il codice a modo suo.
  4. Ogni programmatore ha un proprio stile, che può variare nel tempo. 
  5. Il buon programmatore unisce tecnica, talento e creatività. Questi aspetti, in diversa misura e rapporto, sono riscontrabili in tutti gli artisti.
  6. Un algoritmo software, come la musica, è anche figlio di una inspirazione momentanea. Uno stesso programmatore tipicamente realizza una procedura in maniera diversa a seconda del momento.
  7. L'ispirazione che indirizza con un algoritmo particolarmente geniale una soluzione, va colta al momento altrimenti rischia di svanire.
  8. Anche nel software, come nella poesia e nella pittura, esistono le correnti, le scuole di pensiero e le mode.
  9. Il codice di un programma, se ben scritto, ordinato ed indentato, può essere paragonato allo svolgimento di una poesia, di un poema.
  10. Un software può essere fonte di inspirazione per un altro software.
  11. Un programmatore può essere maestro, esempio e fonte di inspirazione per un altro programmatore.
  12. Un codice software è sempre posizionabile in un periodo temporale ben definito, per forma (es. linguaggio di programmazione), tecnica (es. procedurale, strutturata od object oriented) e contenuto (tipologia di soluzione indirizzata).
  13. Non tutti sono in grado di capire un algoritmo software. Non tutti possono comprenderlo allo stesso modo. Come per le altre forme d'arte, per poterlo apprezzare appieno servono le giuste conoscenze ed esperienze.
  14. Il programmatore sente come una propria creazione il software scritto, spesso ne è geloso.
  15. Come per i quadri, il programmatore ci tiene a firmare il proprio codice. 
  16. Si parla di architetture del software, come per l'architettura edilizia il confine tra soluzione tecnica e rappresentazione di arte è molto sottile.