L’annuncio del supporto a HTML5 di Windows 8 ha suscitato commenti nella comunità di sviluppatori che vanno dall’entusiastico al disperato. Ancora una volta qualcuno ha profetizzato la morte di Silverlight. Di nuovo. Faccio questo mestiere da più 20 anni, sono passato da Clipper a WPF e in tanti anni ho imparato a leggere soprattutto i fatti, più che le parole non dette.
Vediamo i fatti.
- HTML 5 non è uno standard completo, e probabilmente non lo sarà entro la fine dell’anno in corso;
- Silverlight oggi gira su sistemi X86 e ARM, con la versione per Windows Phone 7;
- Il mercato dei PC oggi non è solo fatto di desktop ma anche (in una percentuale piccola ma in crescita) di tablet, un mercato che sta offrendo dispositivi basati su processori x86 ma anche su processori ARM; Leader di questo nuovo mercato (anche se loro dicono che non sono PC) è Apple con iPad seguito da dispositivi basati su Android;
- Probabilmente Microsoft ha oggi il sistema operativo migliore per la piattaforma x86 e x64 ma non ha una soluzione per i dispositivi ARM, se ovviamente escludiamo Windows Phone 7;
Ora ecco le mie supposizioni personali:
Sul mercato desktop Windows ha un dominio consolidato, i competitor di Microsoft stanno perciò spingendo su due fronti: il cloud e il mobile. Sul cloud abbiamo visto come Microsoft ha saputo rispondere egregiamente con Azure, sul mobile la risposta è stata data, con un certo ritardo, con Windows Phone 7. Con Windows Phone 7 Microsoft ha dato un taglio con Windows Mobile investendo su Silverlight e su un nuovo modello di UI, che abbiamo visto paro paro sull’anteprima della UI di Windows 8.
Probabilmente, se io pensassi davvero di fare morire Silverlight, non l’avrei adottato come piattaforma di sviluppo per le applicazioni mobili, scatenando la prevedibile ira degli sviluppatori Windows Mobile 6.5 e regalando una buona fetta di quel mercato alla concorrenza. Probabilmente avrei fatto prima a sviluppare un Windows Mobile 7, magari con un browser decente, lasciando la tecnlogia “winform”. Ma così non è stato: Silverlight è oggi la piattaforma Microsoft di riferimento per lo sviluppo su Mobile (escludendo XNA per i giochi).
Sul mobile la sfida ha un campo di battaglia preciso: il tablet. Una sfida che corre sul filo del cross-platform, terreno minato sul quale è difficile capire l’approccio giusto. Le soluzioni oggi sul mercato sono di due tipi: una basata su runtime, la seconda di tipo “multi-compile”. Soluzioni interessanti ma entrambe con dei limiti importanti.
Le soluzioni basate su runtime, come JAVA, Silverlight, AIR/Flash funzionano un runtime per ogni “platform” che si vuole “crossare”. Questa soluzione si è dimostrata fallimentare con la comparsa piattaforme, come quella iPhone OS /iOS, dove per scelta del produttore i runtime sono stati banditi. La stessa Apple, forse per giustificare il mancato supporto a Flash, ha insistito sulla necessità di migrare il web verso HTML5 il più velocemente possibile.
L’altra soluzione, quella che ho chiamato multi-compile, si basa su tools che, una volta sviluppata la soluzione, sono in grado di generare codice eseguibile su più piattaforme. Io personalmente non credo molto a questi “generatori multi purpose”, sia perché difficilmente riescono a cogliere le specificità delle varie piattaforme, sia perché non tutti i tools oggi supportano tutte le piattaforme e soprattutto non è detto che lo facciano in futuro.
Microsoft ha evidenziato il supporto a HTML5 non perché vuole abbandonare Silverlight, ma perché si rende correttamente conto che il cross-platform non può essere risolto da un tool, ma deve essere supportato da uno standard. Uno standard che dovrà essere rispettato sia dagli sviluppatori che dai produttori di PC. Che non si limiti al web ma che possa anche essere usato per applicazioni, giochi e quant’altro.
Definirsi “sviluppatori Silverlight delusi” è da imbecilli. Delusi da cosa? Gli sviluppatori Microsoft potranno continuare a sviluppare con Silverlight per le piattaforme in cui Silverlight è supportato (e continuerà ad esserlo): Windows e Mac OS. Volevate forse essere gli unici a sviluppare per Windows?
Con il supporto a HTML 5 Microsoft non chiude la porta agli sviluppatori Silverlight/WPF ma semplicemente ne apre un’altra ai tanti sviluppatori, soprattutto giovani, che oggi fanno applicazioni per altre piattaforme.