mercoledì 25 agosto 2010

Piattaforma Flash

Oltre a Java, un'altra piattaforma molto diffusa ed ultimamente in difficoltà è quella basata su Flash di Adobe.

Apple non lo vuole sui suoi dispositivi e la versione appena giunta su Android sembra soffrire di molti limiti tra cui il principale è quello di non essere stata pensata per dispositivi con interfaccia touch: molte applicazioni (come i giochi) sviluppati su questa piattaforma necessitano del click col tasto destro, facilissimo col mouse, ma impensabile su un touch screen.

Flash è spesso accusato di essere lento, avere problemi di sicurezza ed instabilità. Oltre a questi problemi c'è da segnalare che spesso gli sviluppatori di siti web usano Flash pensando (erroneamente) che sia installato su tutti i computer con cui si accede al sito. In realtà dovrebbero preparare un'alternativa per chi non ce l'ha installato (perché non vuole o non può), usando HTML5 o altri sistemi.

Personalmente non sento la mancanza di Flash sui dispositivi mobili: Adobe ha sempre sviluppato in misura minore Flash su piattaforme diverse da Windows, per cui sono abituato a farne senza.

La diffusione di questa piattaforma è forse dovuta più ai limiti ed alle mancanze degli standard aperti che ai suoi meriti; fortunatamente HTML5 colmerà alcuni di questi limiti.

Comunque, sui dispositivi mobili si stanno diffondendo delle applicazioni mirate ai diversi dispositivi sviluppate sulla piattaforma nativa. Un esempio recente è FarmVille per iPhone scritto in Objective C. E' vero che queste applicazioni stanno allontanando gli utenti dai browser, ma garantiscono una miglior UX (user experience) sui dispositivi mobili e animano il mercato e lo sviluppo delle piattaforme concorrenti.

martedì 24 agosto 2010

Soldato Java contro l'Androide

In questo Agosto 2010 abbiamo assistito, tra l'altro, alla denuncia da parte di Oracle contro l'uso che Google fa di Java in Android.

Non so chi abbia ragione e chi torto, la questione è molto tecnica, ma ci sono un paio di cose da notare sicuramente.

Primo, come sottolineano in molti, Oracle non è Sun (ricordo che Oracle ha acquisito Sun all'inizio dell'anno). Mentre quest'ultima era molto ben disposta verso il software open source, Oracle intende sfruttarlo solo quando le fa comodo. Gli sviluppatori indipendenti di progetti un tempo guidati da Sun come OpenSolaris, MySQL ed OpenOffice sono ancora in attesa di sapere come vuole muoversi Oracle. Il suo atteggiamento non le fa certo una grossa pubblicità.

Secondo, si sta scatenando una guerra di piattaforme. Molti cercano di superare le differenze e le barriere tra sistemi operativi, ma ora lo scontro si sta spostando anche sulle piattaforme multisistema. Java è sicuramente la più famosa, ma non è l'unica. .Net di Microsoft è molto legata a Windows e Microsoft la porterà sulla sua nuova piattaforma mobile (Windows Phone 7), ma ne esiste anche una versione per Linux, Mac OS X e altri sistemi operativi chiamata Mono. Un'altra piattaforma diffusa tra vari sistemi operativi è quella basata sul framework Qt, ora di Nokia. Infine, molti linguaggi di scripting come PHP, Perl, Python, Ruby, ecc. si stanno diffondendo ed anche se il loro ambito d'uso è principalmente diverso dalle piattaforme menzionate in precedenza, esistono delle aree di lavoro in cui gli ambienti si sovrappongono.

Chi deve scegliere ora una piattaforma di sviluppo potrebbe essere spaventato da questa azione legale e non scegliere Java. Sun aveva donato gran parte delle tecnologie su cui si basa Java alla comunità open source, rendendolo sempre più diffuso, ma poco profittevole per l'azienda. Alcuni suggeriscono che ad Oracle non interessi tanto la diffusione del linguaggio quanto poter avere una fetta del successo di Android ed usarlo per mantenere Java sulle piattaforme mobili (pare che su questi dispositivi si appoggi su proprietà intellettuali ancora sotto il controllo dell'azienda e quindi redditizie).

mercoledì 11 agosto 2010

Una fattoria fra le nuvole

Avrete certamente sentito parlare di FarmVille; magari non ci avete mai giocato o magari siete giocatori accaniti.

FarmVille (prodotto da Zynga) ed altri cosiddetti social games hanno avuto recentemente un enorme successo di pubblico (oltre 60 milioni di giocatori attivi per FarmVille) ed economico (Playdom, un concorrente di Zynga è stato acquistato dalla Walt Disney Co. per oltre 750 milioni di dollari e la famosa Electronic Arts ha preso Playfish, un altro concorrente, per circa 400 milioni di dollari).

Tuttavia, mi è stato detto che il cloud computing è una cosa troppo astratta e che non viene percepita come una tecnologia di uso comune.

Cosa c'entra la cloud con FarmVille? Beh, questo gioco non è solo sociale, ma è basato sul cloud computing: non risiede sui nostri PC, ci possiamo accedere da device diversi (PC, smartphone, tablet, ecc.) e da ognuno continuiamo a giocare da dove eravamo rimasti.

Il successo di questi recenti giochi è dovuto principalmente all'aspetto sociale e, in realtà, non sono nemmeno i primi giochi sulla cloud: ci sono stati precedentemente numerosi giochi su server remoti, dalla semplice dama ai giochi di ruolo. Tuttavia, questi giochi hanno sfruttato maggiormente la cloud introducendo l'aspetto sociale e, semplificando la grafica, permettendo l'accesso da numerosi dispositivi diversi (riducendo solo su alcune piattaforme la necessità di client particolari). SecondLife, ad esempio, richiede invece un client (software specifico) installato sul PC che usate per accedervi.

Un'evoluzione futura potrebbe essere data da server remoti, come quelli annunciati da AMD, che forniscono la potenza di calcolo necessaria per avere effetti grafici migliori anche su dispositivi privi di schede grafiche avanzate.

Quando sentite parlare di cloud, quindi, non pensate che che sia una cosa troppo lontana: già oggi milioni di persone la usano per giocare. E quello di FarmVille è solo un esempio.

mercoledì 4 agosto 2010

La nuvola non è di ferraglia

Alcuni sostenitori del cloud computing sono arrivati a dire che la cloud non è altro che un nuovo componente hardware.

In realtà, la cloud offre molti più servizi di un semplice componente hardware, ma questo può risultare troppo astratto per l'utente finale che la percepisce come un nuovo hard disk o (sarebbe meglio) un file server.

La similitudine è maggiore fintantoché non si fa sentire in modo notevole la latenza dovuta al collegamento via internet. Il cloud computing necessita di collegamenti veloci, ma la sua diffusione aumenta l'uso della banda dati. Fortunatamente anche questa è in aumento, staremo a vedere chi cresce più in fretta. Tuttavia, ci possono sempre essere dei picchi nell'uso della rete che impediscono il normale flusso dei dati (esattamente come succede nelle nostre autostrade in estate o a Twitter durante i mondiali).

Per questo, basare il proprio lavoro sulla cloud può portare a dei "fermi macchina" indesiderati. L'ottimizzaziome del sistema, con tecniche di caching, compressione dati, ecc., riduce il problema della latenza. Tuttavia, gestire la possibilità di lavorare off-line sincronizzando i dati all'occorrenza è secondo me la soluzione migliore, anche se più complessa da realizzare. La complessità aumenta se sugli stessi dati devono lavorare, con la possibilità di modificarli, più persone. In questo caso la sincronizzazione di modifiche off-line necessita spesso di un intervento umano, rendendo impossibile l'automazione.

Fortunatamente esistono strumenti in grado di ridurre al minimo l'intervento umano, anche se finora vengono usati solo in ambienti di sviluppo software (cvs, git, e altri), credo che presto li vedremo applicati anche nel cloud computing.

domenica 1 agosto 2010

La vita in tempo reale

Notizie in Real-time, ovvero in tempo reale. I motori di ricerca stanno andando in questa direzione (notizie di fatti appena avvenuti, estratte da servizi di micro-blogging, ecc.), ma che impatto ha sulle nostre vite?

Il cambiamento è molto sentito da alcune categorie di lavoratori: giornalisti, operatori finanziari, PR, ecc., ma sta entrando inesorabilmente anche nelle vite di tutti noi. Come sportivi, bloggers, interessati ad un qualche evento internazionale ci capita di seguire gli eventi in tempo reale ed a qualsiasi ora. Il tutto non solo grazie all'espansione di internet, ma anche a causa di altri fattori, come la globalizzazione economica.

Mentre molti lavoratori hanno ancora un orario fisso, ci sono sempre più lavori in cui bisogna essere disponibili e pronti quando accade un evento, non importa cosa si stesse facendo in quel momento. Immaginate di essere un addetto stampa o un PR di una grossa ditta. Se si diffondono voci scomode su Twitter o Facebook, credete si poter aspettare l'orario di lavoro? Se state trattando un'importante compravendita a livello internazionale che orario d'ufficio seguite, il vostro o quello della controparte? Anche per questo si diffondono gli smartphone.

A parte questi casi che possono sembrare marginali, altri esempi sono quei servizi che devono funzionare 24 ore su 24, 7 giorni su 7. Sono sempre più diffusi, e sicuramente richiedono la reperibilità degli addetti a supplire ad assenze o emergenze.

Inoltre, a tutti è capitato di attendere un'e-mail con ansia e controllare continuamente il proprio account di posta.

Che ci piaccia o no, siamo sempre più connessi e le notizie ci arrivano in tempo reale. Ciò cambia la nostra vita. Come coniugare la necessità a rispondere a questi stimoli con le nostre vite quotidiane, le nostre famiglie, i nostri rapporti interpersonali?

Ognuno deve rispondere a modo suo. Se il lavoro inizia a richiedere la massima disponibilità si può cercare di cambiarlo oppure si deve organizzare la propria vita privata e quella lavorativa in modo che convivano. Se sono le proprie passioni che aumentano la loro richiesta di attenzione, bisogna comunque porvi un freno onde evitare che interferiscano con affetti familiari e con il lavoro.

Penso sia utile e piacevole (se non addirittura necessario) scollegarsi ogni tanto. Ad esempio, a cena con la famiglia preferisco evitare di essere disturbati da telefonate, sms, mail e persino dalla TV.

Vivere in un regime real-time è sempre più facile, ma in fondo è una scelta. Vivere nel mondo reale è semplicemente necessario.