Ajax, Flex, JavaFX & Silverlight

Il tre luglio ho avuto modo di partecipare al "JavaFX Circle Meeting" organizzato dal JUG. Durante l'evento è stato anche svelato il mistero del logo usato dal meeting :)

I relatori dell'incontro sono stati Lorenzo Sicilia e Marcello Teodori, che sono stati molto chiari ed esaustivi  nella loro esposizione.

Al momento i player che si affacciano sul mercato delle cosiddette Rich Internet Applications (RIA, for friends) sono tanti:

  • AJAX / XHTML / CSS  con una galassia di vendor disparati. Tra i più importanti si segnalano :
    • I tool che gravitano intorno al Google Web Toolkit e/o ai tool di Yahoo.
    • Tool di infrastruttura server side (come http://getahead.org/dwr/)
    • Librerie all-in-one come JQuery, ExtJS.
    Altre librerie (come per es Dojo, moontools ecc ecc) da discussioni sul JUG sono risultate meno convincenti, ma si tratta molto di "gusti" personali.
  • Flex della Adobe
  • Silverlight della Microsoft
  • JavaFX della Sun
La guerra è quanto mai aperta, e le ragioni sono molteplici:
  • Ajax al momento domina il mercato con il 60% delle applicazioni, ma sviluppare in questa tecnologia è faticoso e costoso. Ci possono anche essere dei problemi di performance e sovraccarico del server.
  • Flex della Adobe è molto interessante, ma è parzialmente proprietario.
  • Le interfacce utente sono spesso sottoposte a revisione dopo due o tre cicli di verifica con l'utente finale. Per questa ragione deve essere poco costoso revisionare il presentation layer e in alcuni casi rimodulare le aggregazioni visive. I tool sul mercato devono tenere ben presente questa necessità e fornire una strada per avere prototipi visivi rapidamente.
  • Silverlight di Microsoft cerca di scalare la montagna partendo da zero: piuttosto che usare PhotoShop, suggerisce di imparare ad usare i suoi tool, e a ripensare le RIA. Questo approccio è quanto mai lungo, poiché richiede parecchio tempo per essere metabolizzato dal mercato; se Microsoft saprà innovare sul fronte RIA, potrebbe scalzare tutti gli altri...
JavaFX tenta di affrontare il problema da diversi fronti:
  • Da un lato JavaFX offre una serie di plugin di integrazione per Illustrator e PhotoShop, in modo da poter importare dati vettoriali ed immagini
  • JavaFX offre codec multimediali, in modo da rendere "semplice" la creazione di player di immagini, come si fa oggi con Flash
  • JavaFX si integra con J2ME, anelando a veicolare i contenuti verso cellulari, smart phone ecc
  • L'API e il modello di programmazione tenta di essere innovativo.

JavaFX sembra anche mettere una pietra sopra le Swing, perché se avesse successo queste ultime potrebbero trovarsi con un'erosione della loro base di utenza. Le Swing non hanno mai brillato per semplicità o affidabilità, due mancanze che di solito pregiudicano il successo.

Per cui JavaFX parte svantaggiato, poiché la Sun si è fatta una pessima fama nel campo delle applicazioni desktop, e la stessa idea di Java Applet è una specie di crisalide vuota: se ne parla, ma poi non la si usa molto.

JavaFX si serve di una sintassi dichiarativa, e si spinge oltre, fornendo un linguaggio sql-like per filtrare i dati del modello dati su cui si basa. Questa idea ha il vantaggio di essere semplice e di integrarsi bene nel modello. Inoltre JavaFX raccoglie uno dei punti cruciali delle idee dietro AJAX, che è la capacità di gestire eventi asincroni.

La J2ME è installata sulla maggior parte dei cellulari, ma non è proprio esaltante utilizzarla, né per lo sviluppatore né per l'utente finale. Se JavaFX saprò veicolarne bene l'uso, potrebbe ribaltare questa situazione.

Se Nokia presenterà anche lei browser ajax-compatibili e interfacce d'utilizzo applicabili, il mercato degli smart phone potrebbe essere già compromesso: anche l'IPhone difatti si sta muovendo  in questa direzione.

Tra i punti deboli, si evidenzia che al momento manca ancora un ambiente visuale, e l'API è veramente molto instabile e soggetta a frequenti revisioni.

Per questa ragione non ci sentiamo di consigliare al momento javaFX, anche se monitorare questa tecnologia è sicuramente importante; ma la guerra è più che mai aperta, e l'arena ospiterà i contendenti per tutto il prossimo anno.

Risorse

Comment by Lorenzo Sicilia on 2008-07-04 15:14:50

Giusto una precisazione rispetto ai costi di flex. L'sdk è opensource e si può sviluppare in maniera del tutto gratuita. L'unico costo è il flex builder per chi vuole un ambiente confortevole. Riguardo all'instabile non vorrei che fosse stato la demo su parley.com che ho fatto vedere ieri. Il bug mostrato dimostra come sia necessario approciare le RIA come vere applicazioni. IL framework flex offre diversi modi per evitare quel problema.

Ottima recenzione!

Ciao Lorenzo

Comment by Giovanni Giorgi on 2008-07-04 15:36:44

L'instabilità più critica non è sull'interfaccia, ma sulle API. Si tratta però solo di tempo: se JavaFX dovesse decollare, questi aspetti si sistemeranno presto

Comment by Java FX 1.0 è stato rilasciato | Gioorgi.com on 2008-12-08 01:09:34

[...] ha lanciato JavaFX 1.0, pattafroma software  di cui ci siamo già occupati in tempi non sospetti. La notizia è stata ripresa da Slashdot. Purtroppo leggiamo anche che non c’è al momento una [...]