Lo sviluppatore che oggi volesse creare un’applicazione per il web si troverebbe davanti ad un bivio: potrebbe scegliere di sviluppare il proprio progetto con le tecnologie proprietarie di Adobe (Flash, Air), di Microsoft (Silverlight) o di Sun (Java), con il conseguente set di plugin che l’utente dovrà scaricare per il loro funzionamento; potrebbe invece decidere di seguire la strada tracciata da Google ed utilizzare linguaggi Open, come  HTML, Javascript, Ajax e CSS. Con questi semplici strumenti i programmatori di Google hanno creato applicazioni che possono gareggiare quasi alla pari con le più note e complete applicazioni desktop, senza nemmeno necessitare dell’installazione di un semplice add-on. Apple, in un momento critico per lo sviluppo del cosiddetto cloud computing, ha scelto  la seconda alternativa per sviluppare il nuovo servizio MobileMe: secondo i rumors del WWDC, il successore di .Mac è stato creato su piattaforma SproutCore, un framework open basato su Javascript. Cerchiamo di capire insieme cosa significa tutto questo.

Che cos’è il cloud computing? Ecco la definizione di  Wikipedia:

Con il termine Cloud computing si intende un’insieme di tecnologie informatiche che permettono l’utilizzo di risorse (storage, CPU) distribuite. La caratteristica principale di tale approccio è di rendere disponibili all’utilizzatore tali risorse come se fossero implementate da sistemi (server o periferiche personali) “standard”.

I parole povere il sistema remoto è “la nuvola” (cloud, in inglese) a cui il nostro dispositivo si collega per comunicare e ricevere dati processati e al quale fa riferimento per la sincronizzazione dei dati stessi con altri dispositivi capaci di collegarsi al sistema remoto. Non a caso Apple ha scelto proprio l’immagine di una nuvoletta per descrivere il servizio MobileMe. In quest’ottica, poi, si capisce ancora meglio il significato del suffisso Air che Cupertino ha scelto per l’ultimo nato della gamma Mac.

Che cos’é SproutCore? SproutCore è un piattaforma Open che permette di realizzare applicazioni Javascript leggere e veloci, grazie anche alla minima quantità di codice necessaria per la sviluppo, che possono integrarsi nei browser e comunicare con un server Ajax per la gestione dei dati solo quando necessario.

SproutCore fu sviluppato originariamente da Charles Jolley per la realizzazione di un’applicazione chiamata MailRoom; successivamente Apple assunse Jolley che entrò a far parte del team .Mac, insieme al quale contribuì all’evoluzione della propria “creatura”.

Perché una soluzione Open. Ma perché se esistono soluzioni Open efficienti e funzionanti, (come dimostrano le Google Applications), Adobe, Microsoft e Sun hanno invece scelto di creare un framework proprietario per lo sviluppo delle RIA (Rich Internet Application)? La domanda analoga, volendo forzare leggermente il paragone, potrebbe essere questa: perché Linux non è il sistema operativo più diffuso al mondo? La risposta ad entrambe è semplice: perché non generano un profitto diretto. Come dimostrano Red Hat e IBM, l’unico modo per generare profitti con Linux è la vendita alle aziende di servizi correlati. Analogamente i frameworks Open per lo sviluppo di Web Applications non garantiscono la generazione di un profitto immediato e facilmente individuabile derivante dalla vendita delle licenze per l’utilizzo stesso del la piattaforma di sviluppo.

Non è certo un segreto che il profitto indiretto di Google, a cui la diffusione delle ottime applicazioni web di Big G contribuisce sensibilmente, derivi dalla pubblicità. Non è un segreto nemmeno il fatto che il vero guadagno di Apple derivi dalla vendita del proprio hardware, e in minima parte dalla vendita di un servizio (i 79€ annui di abbonamento a MobileMe servono in gran parte per la gestione del sistema).

Microsoft, Sun e Adobe si trovano invece nella condizione di dover spingere il proprio prodotto (perché di vero e proprio prodotto si tratta) e il proprio standard perché una maggiore diffusione della loro soluzione proprietaria contribuisce alla crescita degli introiti. E’ una proporzione diretta che per sua stessa natura spinge verso la ricerca di un monopolio, teoricamente la condizione migliore per il detentore della tecnologia che si afferma come standard.

Una Mac Application per le masse. Un altro aspetto da non sottovalutare è l’estrema portabilità dei linguaggi Open e di tutte le applicazioni sviluppate su piattaforme come SproutCore. La Web Application di MobileMe, con il proprio Mac-look e Mac-feeling  funzionerà su tutti i browser moderni e sarà immediatamente disponibile su qualsiasi sistema. Milioni di utenti PC possessori di iPhone potranno provare indirettamente l’esperienza Mac sul proprio computer, senza dover installare o scaricare alcun plugin. L’accoppiata OS X iPhone – Mobile Me potrebbe rivelarsi una calamita di straordinaria potenza  che attiri  un numero sempre maggiore di utenti verso i sistemi Apple.

D.E. Dilger di Roughly Drafted ha scritto sull’argomento un’analisi tecnica molto approfondita, e in un passaggio spiega perché SproutCore può rappresentare una valida alternativa a Flash per lo svilupppo di applicazioni dinamiche per il web. Le Web Galleries del vecchio .Mac sono uno degli esempi più significativi delle possibilità offerte da un framework Javascript:

Questa scelta non ha permesso ad Apple solamente di far evolvere le proprie applicazioni web grazie all’uso di web standards aperti, ma le ha permesso anche condividere SproutCore, il suo framework cross-platform di sviluppo Javascript ispirata a Cocoa, con una licenza MIT. Questa condivisione contribuirà ad offrire un’alternativa a Flash nel campo delle Rich Internet Applications. SproutCore non compete con flash nella realizzazione di spot animati o applet di navigazione, ma piuttosto nello sviluppo di applicazioni complete altamente interattive, ovvero l’obiettivo dei piani di Adobe per la propria piattaforma Air, basata su Flash

Dilger ipotizza addirittura un nuovo scenario: Apple potrebbe estendere in futuro la filosofia di App Store (che ancora dobbiamo vedere e conoscere, però) alle Web Application. Gli strumenti ci sono: vedremo che cosa ci riserverà il futuro. Ci sarà una nuvoletta a farci compagnia?