La creatività è un processo molto complicato, sia da esprimere che da comprendere.

Ognuno in base alla propria esperienza e conoscenza percepisce uno stesso concetto con ampie differenze e molteplici sfumature. L’abilità dell’artista sta, sostanzialmente, nel minimizzare gli aspetti meno definiti e calcare gli elementi essenziali, al fine di trasmettere un messaggio il più definito possibile.

Per varie forme d’arte, il mezzo che trasmette il messaggio è lineare. Un musicista per esempio anima la mente, prende uno strumento musicale e si esprime, scatenando quelle famigerate vibrazioni nell’aria che vengono tradotte dal nostro sistema uditivo e animano il processo espressivo. Abbiamo a disposizione strumenti molto diversi tra loro, che forniscono timbri totalmente personalizzati, ma che funzionano sempre. Nel senso: sono stati progettati appositamente. Non succede di prendere una chitarra, provare a suonarla e non sentire nessun suono.

Nel web purtroppo questo non è scontato. Perché il problema, nell’esprimersi, è limitato (sfortunatamente) ad un livello intermedio tra tecnologia e arte. Il web è un mondo abbastanza complesso, nato con delle idee ben precise nel passato, e maturato/sviluppato seguendo percorsi e strade totalmente diverse, in base a come il mondo si è evoluto e alle richieste/esigenze principali dei fruitori. Se prima era un mezzo utilizzato per scopi bellici, ora è la fonte principale per recuperare informazioni. Essendosi sviluppato senza una minima idea (e ripeto, purtroppo) di come standardizzare questa tecnologia, si è sempre andati avanti tirando ognuno l’acqua al proprio mulino, creando strumenti illustrativi (i browsers, per esempio) che seguissero ognuno le proprie preferenze, in base alle opinioni degli sviluppatori.

Basti guardare allo stato attuale delle compatibilità tra browser di oggi. Dopo anni e anni di Internet, siamo punto e a capo. Procedure che vengono riconosciute da alcuni, metodi totalmente sconosciuti ad altri. Succede quindi che la parte creativa di un’idea possa essere stroncata subito sul nascere, in base a limitazioni che si avranno poi nello sviluppo della stessa, al momento dell’implementazione. Una volta c’era Flash: volevi un’animazione? Tutti a sviluppare su Flash! Uno strumento di “terze parti per il web” che ha creato più svantaggi che vantaggi.

Le varie compagnie, evolvendosi, hanno creato i propri kit di supporto, primitive di accesso a funzioni personalizzate, e varie community si sono riunite per cercare di standardizzare (nella nuova versione) il linguaggio di markup per eccellenza del www: l’html. Così (ormai da parecchi anni) si sta lavorando al progetto HTML5. “Si sta lavorando”, perché è un progetto partito nel 2006 e definito “concluso” nel 2014, anche se ci sono ancora molte perplessità sulle decisioni che si sono prese a riguardo.

In poche parole: a livello “teorico”, le direttive su come i browser dovrebbero trattare i dati esistono, ma ognuno (come è sempre stato, e come sarà sempre) adotta un metodo proprio. Quindi il riassunto è semplice: un artista/programmatore web potrà fare l’animazione più bella del mondo, ma non potrà mai essere sicuro che questa funzioni al meglio, e non solo per browser vecchi, ma anche per gli attuali, aggiornati all’ultima versione. Non per carenza di doti artistiche, ma per le instabilità del mezzo trasmissivo. Questo è il concetto chiave!

Col tempo i browser sono diventati sempre più sofisticati, i computer più performanti, e anche le tecnologie annesse si sono evolute. Ora non basta che scegliere (in base al target e alle conoscenze) quale tecnologia utilizzare per sviluppare animazioni web. Quali scegliere?

1)    Il fai da te

Si può essere particolarmente primordiali e utilizzare il semplice connubio Javascript/CSS per fare animazioni homemade, che utilizzano tecnologie abbastanza solide e possono andar bene su un buon numero di dispositivi. È vero che richiedono uno sforzo minimo per i nostri programmatori, che lavorano ogni giorno con questi linguaggi, ma tutto deve essere creato da zero, dagli algoritmi di movimento allo smooth dell’animazione, per esempio. Con l’aggravante che il prodotto finale è piuttosto limitato.

2)    Non reinventare la ruota

Usufruire di librerie/frameworks (risorse esterne al browser) messe a disposizione da community che sviluppano appositamente questi tool, per facilitare il passaggio successivo al programmatore. Esempi qualitativi possono essere: http://www.pixijs.com/projects/; https://greensock.com/;

3)    Andare sul sicuro

API specifiche messe a disposizione dal browser stesso, senza ricorrere a servizi esterni. WebGL è uno dei casi più significativi: https://en.wikipedia.org/wiki/WebGL

4)    Contaminare…

Infine, possiamo utilizzare strumenti che richiedono conoscenze a metà strada fra programmazione e grafica, ovvero grafica vettoriale (SVG) o del più conosciuto e antico Canvas, che con HTML5 risulta più avvicinabile. Attenzione, perchè sviluppare in SVG implica creatività e padronanza grafica, come detto, ma anche una buona conoscenza di matematica e trigonometria. Aspetti da non sottovalutare! La grande differenza con le tecnologie precedenti sta nella gestione del prodotto finito, nel tempo, e su tutte le piattaforme che vengono costantemente aggiornate. In altre parole: utilizzare routine sviluppate da altri permette al creativo di dare vita ad animazioni pazzesche ed emozionanti. Ma se dovessero verificarsi complicazioni (con alcuni browser/dispositivi) e l’animazione in questione non dovesse funzionare per come è stata pensata, l’unico modo di “fixare” questo problema potrebbe essere quello di riferirlo alla community (o agli stessi sviluppatori del Browser, parlando di WebGL o SVG per esempio) e di aspettare un bugfix in tempi accettabili. Seccatura non indifferente.

Quale soluzione per l’azienda? Utilizzare queste librerie “belle e sofisticate”, conseguenze annesse, oppure spendere più risorse nell’utilizzo di tecnologie basiche (in termini di tempi, sviluppo e ricerca) garantendo una manutenibilità solida?

Il concetto base, e finale, resta sempre far passare un “messaggio”. Come questo articolo d’altronde: se la comprensione di questo testo è incentrata nel percepire il concetto leggendo tra queste parole (che sono visualizzabili in qualsiasi computer in grado di aprire un documento di testo digitale), nel web, invece, ci si scontra sulle difficoltà di “trasmissione” del messaggio. Allo stato attuale in Archimede stiamo ancora lavorando e valutando cosa potrebbe fare al caso nostro, animazioni extreme (che per un’agenzia di comunicazione potrebbero essere forse esagerate) o personalizzazioni che richiedono molto tempo per essere sviluppate e gestite?

Il vostro VIC