Quando bisogna usare Adobe Flash?

FlashPlayer

Qualche mese fa Nicola Iarocci ha scritto sul suo blog un articolo da flame puro: Adobe Flash è una pessima idea :P

Il titolo spiega chiaramente la posizione dell’autore in merito all’uso della tecnologia Flash. Ma è realmente una tecnologia tanto “scadente” e inutile?

Quando è possibile non usare Flash?

Io credo che il problema vero e proprio sia che associato all’idea di “web dinamico” ci sia soltanto Flash. Un sito web con un menu a tendina un po’ più sofisticato, con colori brillanti e animazioni qua e là è sicuramente fatto in Flash. Ma credetemi, non è così!

Ad esempio il logo che Google dedicò qualche mese fa a Pacman era scritto in Javascript. Il codice è questo. (Maggiori dettagli li trovate qui.)

Non tutti sanno infatti che per fare determinate cose basti un po’ di conoscenza dell’HTML/CSS/Javascript ed è forse questo il motivo per il quale, come dicevo prima, quando si pensa a un’animazione viene subito associato il nome Flash, quando in realtà basterebbe applicare qualche vecchio standard web.

Ad esempio per creare effetti animati non c’è bisogno di andare a scomodare Flash, ma basta usare una delle tante librerie JS, che trovate qui. Stessa cosa per i menu a tendina: basta usare JQuery, Mootools, eccetera.

Insomma, non c’è sempre bisogno di Flash e sarei felice se gli attuali e futuri sviluppatori di siti web pensassero a quelle che oggi sono diventate alternative, ma che nella realtà dovrebbero essere essere in cima alla lista delle tecnologie web, prima di sparare una pagina in Flash.

Sì, è vero, passiamo tutti all’HTML5!

Da qualche mese si parla di HTML5 come alternativa a Flash, poiché porterà un po’ di novità, come ad esempio tag per l’inclusione di video e audio così che questi possano essere supportati nativamente dai browser – con i relativi codec, ovviamente – ma siamo realisti: per determinate cose non esistono ancora alternative serie a Flash e più in particolare ai vari Adobe Flash/Flex/Air! E dubito fortemente che il solo HTML5 riuscirà a spazzare via il primato di Flash, anche perché hanno due ruoli per certi aspetti del tutto diversi. Per non parlare del fatto che HTML5 è ancora una bozza, supportata solo dai più recenti browser, mentre Flash è una tecnologia matura che presenta alle spalle un lungo processo di sviluppo: esiste dal lontano 1996!

Infatti, chi oggi sviluppa un sito web farebbe bene a dare un’occhiata alle statistiche dei browser attualmente utilizzati. Ci vuole poco per capire che un sito in HTML5 sarebbe visualizzato senza problemi soltanto da una parte di utenti, mentre l’altra sarebbe fritta. Basta fare il test per HTML5 qui per accorgersi che Internet Explorer (6,7,8, le 3 più usate!) non supporta per niente la nuova versione di HTML, laddove Firefox 4 la supporta quasi completamente. Il discorso non vale invece per la tecnologia di Adobe, che è installata praticamente ovunque!

Quand’è che bisogna usare Flash?

Ma parliamo di oggi, non di quando HTML5 sarà uno standard. Nel codice di pacman qualcuno avrà notato in fondo che c’è un .swf. Ebbene esso serve per riprodurre i suoni. E’ proprio questo un punto di forza che ha reso famoso Flash: la riproduzione di video e audio. Basti pensare che Youtube,  Blip.tv, Vimeo,  esistono grazie a Flash! Quanti di voi vedono la TV online?! No Flash, no TV online! Niente più streaming online! Niente megavideo, niente Youporn! :P

Tuttavia, come vale per le cose del mondo “reale”, così accade anche nel mondo dell’informatica che una cosa venga usata fino allo stremo. E così grazie al “Flash serve per le animazioni” ci troviamo un logo (!!) fatto con Flash! Un logo, una cosa che fai tranquillamente con Gimp (per non parlare poi di Photoshop o Illustrator).

Eppure ci sono altri contesti, oltre al video/audio streaming, in cui bisogna usare Flash. Ad esempio animazioni molto complesse, come una presentazione stile pubblicità televisiva, nell’ambito di videogiochi, oppure le applicazioni RIA.

RIA

Cos’è una RIA? Wikipedia dice:

Le Rich Internet Application (RIA) sono applicazioni web che possiedono le caratteristiche e le funzionalità delle applicazioni desktop, senza però necessitare dell’installazione sul disco fisso.

Quindi una RIA esporta il concetto di “programma desktop” sul web. Un esempio di RIA lo trovate su kuler.adobe.com. Chiunque può accorgersi della differenza che c’è tra un’applicazione del genere e il classico sito web.

Ed è così che Adobe, con Flex, un framework open source per lo sviluppo di RIA, è riuscito ancora una volta a ritagliarsi uno spazio cospicuo all’interno del cosiddetto mondo del web 2.0. Sì, ma…si appoggia sempre a Flash!

Microsoft ha tentato di contrastare il monopolio – perchè si tratta proprio di monopolio a questo punto! – con Silverlight, ma finora le tecnologie di Adobe si sono rivelate sempre un passo più avanti. Stessa cosa per Java FX!

Adobe AIR

Adobe AIR invece rappresenta il contrario di ciò che è stato descritto nel paragrafo precedente, poichè esporta il concetto di applicazione web al mondo desktop. Se qualche volta vi siete trovati ad usare “Facebook per desktop“, ebbene avete installato un’applicazione AIR.

La differenza sta nel fatto che l’applicazione riesce a comunicare e a reperire informazioni dal servizio online, così da poter aggiornare sia il servizio online sia l’applicazione sul desktop. Nasce così l’idea di web portata “in casa”: senza aprire il browser potete chattare con i vostri amici su Facebook o allo stesso tempo guardare, commentare video e creare una playlist su Youtube.

Stessa cosa vale per chi possiede un TV Samsung che permette di collegarsi a Internet, di cercare su Google, salvare nei segnalibri, di guardare video su Youtube, commentarli, eccetera. Tutto questo non sarebbe stato possibile senza Adobe AIR.

Cosa c’entra tutto questo con Flash? Semplice! Adobe AIR porta Flash sul tuo desktop!

Successivamente, comunque, è stata sviluppata un’alternativa Open Source, chiamata Appcelerator Titanium, più o meno simile in funzionalità ad Adobe AIR, molto comoda e ben fatta. Unica cosa: non usa Flash! :)

Ma allora le alternative esistono?

Dipende da cosa significhi alternativa. Anche GIMP viene considerato da molti come alternativa a Photoshop. E’ chiaro poi che se acquisti Photoshop per fare il resize di un’immagine o per applicare l’effetto pixellato per nascondere il volto di una persona in una foto…E’ più o meno come usare Flash per creare un logo.

Libri sulle tecnologie citate

Di seguito un elenco dei libri consigliati (alcuni da me poiché li ho usati, altri invece frutto di lettura e ricerca di recensioni da parte di esperti nel campo). Da notare che i libri in inglese sono quelli considerati i best of.

Per Appcelerator Titanium ho trovato un solo libro ma ha recensioni negative, quindi ho preferito evitare. Quindi vi consiglio di studiare la documentazione ufficiale e di seguire i videotutorial.

Riferimenti Esterni

  • Wicker25

    Mi trovo in buona parte d’accordo con le posizioni di Nicola Iarocci. Flash è una palla al piede. Consuma troppe risorse e ammazza il concetto stesso di pagina web, intralciando l’indicizzazione e la standardizzazione della Rete.
    Senza contare l’abuso che se ne fa… Aborro quando si utilizzano miriadi di pulsanti Flash quando sarebbero sufficienti dei semplici link testuali.

    E’ vero che le Web TV sono nate con Flash Player, ma ci sarà un motivo se Youtube, Vimeo ed altri importanti portali stanno cercando di abbandonare questa tecnologia per passare definitivamente ad HTML5.

  • http://nicolaiarocci.com Nicola Iarocci

    Gran bella risposta Markon, prendo e porto a casa :) .

    E’ indubbio che gran parte dei web developers ancora oggi ricorre impropriamente a Flash, è un pò quel che intendevo dire nella prima parte del mio articolo, quella più polemica. Diciamo che col mio articolo intendevo guardare più al futuro che non al presente, indicando quella che secondo me è la strada giusta da seguire (soprattutto se si sta appena partendo col RIA developing).

  • markon

    @Wicker25: sì sì, ma infatti io sono d’accordo con entrambi…il problema, o meglio, il “fatto” è che di Flash ce n’è ancora bisogno.
    E nell’articolo ho provato a spiegare quand’è che “serve”. Quand’è che in pratica non puoi fare a meno.

    @Nicola:
    Anche io mi auguro che in futuro le tecnologie open migliorino (e in particolare vedo di buon occhio Appcelerator Titanium) però bisogna essere realisti! Al momento … ok, Youtube usa come alternativa HTML5, però lo fa con le pinze (nel senso: bisogna impostare manualmente che si desidera usare HTML5), proprio per evitare inconvenienti agli utenti.

  • markon

    Giusto per…
    http://www.wix.com/flash_websites/website_templates_52

    Questo è un cattivo esempio dell’uso della tecnologia Flash.
    Siti web completamente in Flash. Ma cosa ci guadagni? Niente, ci perdi solo. Però è figo, è Flash.