giovedì 2 giugno 2011

Immersive UI: cosa significa per gli sviluppatori?


Durante la presentazione di Windows 8, Microsoft ha annunciato che le applicazioni per l'interfaccia Immersive saranno realizzate in HTML5 e JavaScript.
Su Channel 9, blog Microsoft dedicato agli sviluppatori, questo annuncio ha raccolto numerose critiche.

"Non posso credere che stiano propagandando HTML5 e JavaScript. Noi sviluppatori web utilizziamo HTML, CSS e JS perché siamo obbligati, non perché ci piace. Se HTML e JS diventeranno il framework di sviluppo principale per Windows, potrei anche andare a scrivere codice Objective-C."
oppure
"Come sviluppatore, non voglio scrivere applicazioni in HTML e javascript. Voglio costruire applicazioni WPF/silverlight, con vero codice."
e ancora
"Il mio cuore smette di battere ogni volta che qualcuno alla Microsoft promuove con fierezza HTML5 e JavaScript."
Il problema non è Immersive UI in sè, l'interfaccia dedicata ai tablet, ma il modo in cui le applicazioni dovranno essere realizzate.
Limitandosi a JavaScript, si è costretti a rinunciare a funzionalità di cui i veri linguaggi di programmazione, come lo stesso C# di Microsoft, dispongono:
  • Il typing statico e i generics, che consentono di rilevare in automatico, in fase di sviluppo, gran parte degli errori presenti nel codice, e che permettono all'ambiente di sviluppo di assistere lo sviluppatore in ogni situazione.
  • LINQ, che consente di interrogare database, web-service e oggetti in maniera espressiva, anche in questo caso il codice viene verificato in fase di compilazione.
  • .NET framework, un insieme di ottime librerie che ricoprono le funzionalità di I/O, threading, sicurezza, rete, web-service, database, grafica e molto altro.
  • Reactive Extensions, per la gestione di eventi temporali, Task Parallel Library, per l'esecuzione di codice parallelo, e le funzionalità di asincronia del futuro C# 5.
  • XNA, per lo sviluppo di giochi (2D e 3D) che sfruttano tutte le potenzialità di C# e di DirectX, senza le limitazioni del browser.
Le applicazioni .NET continueranno a funzionare in Windows 8, ma non si sa ancora se Microsoft darà a loro la stessa importanza che ha dato a quelle HTML. Ad esempio, occorre chiedersi se .NET verrà lasciato legato all'interfaccia tradizionale, o se potrà integrarsi con Immersive.
Insomma, speriamo proprio che Microsoft non decida di tirare un pugno in faccia agli sviluppatori.

Se nel breve periodo l'utilizzo di HTML5 porterà Microsoft sotto i riflettori dei blog e di twitter, a lungo andare questa scelta porterebbe ad un lento declino delle fantastiche tecnologie che Microsoft ha prodotto per gli sviluppatori nel corso degli ultimi 10 anni, e renderebbe il browser di fatto l'unico programma necessario sui nostri computer. A quel punto però, tanto vale usare Chrome OS.

Aggiornamento | È stata aperta una petizione per chiedere a Microsoft di mantenere .NET come framework di sviluppo principale per Windows 8.

Aggiornamento 2 | Secondo voci interne a Microsoft, Jupiter, il framework Immersive per applicazioni .NET non è stato abbandonato. Gli sviluppatori avranno quindi la possibilità di scegliere se utilizzare HTML o .NET per lo sviluppo di applicazioni Immersive. Queste informazioni giungono da fonti che preferiscono rimanere anonime, e non sono ancora presenti notizie ufficiali. Microsoft dovrebbe fare ufficialmente chiarezza su questa vicenda, invece di lasciare propagarsi il panico generale.

Articolo di Windows 8 Italia

22 commenti:

Francesco ha detto...

Un discorso che dice e non dice, siamo ancora troppo sul vago e le notizie sono poche e frammentarie. Dovremmo aspettare settembre per conoscere la strada che MS vuole percorrere

Andrea Martinelli ha detto...

@Francesco
Si può continuare a sperare, ma ultimamente Microsoft continua a ripetere le solite buzzword del momento, HTML5 e cloud.

teddy bozzio ha detto...

Io sono sempre stato appassionato di innovazione e (un po' a torto) ho sempre preso l'innovazione per evoluzione. Vediamo dove va Microsoft, poi alla fine chi ci obbliga a stargli dietro? Spegnamo i pc per un mese e vediamo se questi signori non si accorgono che qualcosa va male.
ma ne saremo capaci?

Picard74 ha detto...

@teddy bozzio

Nessuno ovviamente ci obbliga a stargli dietro, ma non credo che dopo tanti anni di successi (e gli sviluppatori lo sanno benissimo) questa non sia la strada giusta...
Per quanto riguarda spegnere i pc (la maggior parte con software contraffatto) non sara' la soluzione... anche perche' l'Italia codarda non e' all'altezza ne per questa, ne per qualsiasi altro tipo di ribellione...
Piu' giusto sarebbe tenere i pc accesi con altri sistemi operativi... ma cio' difficilmente avverra'....

VastoLorde26 ha detto...

Corrono voci secondo il quale Windows 8 integrerà un nuovo filesystem, chiamato per ora "Protogon", chissa se non é solo fuffa....
Qui sotto avete un presunto screen che lo dismostra
http://hardware.hdblog.it/wp-content/uploads/2011/06/protogonwin8fs.jpg

Mattia ha detto...

Brutta cosa...
Microsoft negli ultimi 10 anni circa ha fatto un lavoro enorme per sollevare gli sviluppatori dall'ingrato compito di lavorare con la API native Win32.
Prima è nato il .NET Framework con Windows Forms, a partire dal 2006 è stato introdotto WPF subito seguito da Silverlight... questo è quello che ha raggiunto gli sviluppatori ma dietro le quinte ci sono stati vari esperimenti, tra cui MCML (Media Center Markup Language, possibile predecessore/successore di WPF) e recentemente il Framework Iris (o UIX) apparso in Zune (http://www.istartedsomething.com/20071116/microsoft-iris-uix-framework-zune/ @Adriano: un articoletto?..).
Mi rifiuto categoricamente di credere che tutto questo sia sfociato in HTML5 e Javascript, ossia i concorrenti diretti di Silverlight!
Inoltre un simile passo impedirebbe la portabilità del software tra WP7 (Silverlight / XNA) e tablet
Personalmente rimango comunque con la speranza di poter ancora sviluppare sulla piattaforma .NET. Non dobbiamo dimenticarci che questa presentazione è solo un'assaggio, questa sembra essere solo l'interfaccia per tablet, ma dietro a tutto ciò rimane il caro vecchio desktop di windows, la cui interfaccia deve ancora essere presentata... maggiori novità arriveranno a inizio settembre con l'evento BUILDwindows.. speriamo in bene ;-)

Francesco ha detto...

Per il momento ci sono troppe domande senza risposta per trarre una conclusione obbiettiva: cosa prevede MS per il futuro di Windows? Che tipo di piattaforma supporterà questo nuovo sistema operativo? Sarà esso diviso in più versioni adatte a vari contesti, come iOS e OSX? JS e HTML diventeranno i principali linguaggi di programmazione, e se si, in quali tipi di device saranno maggiormente utilizzati?

Finchè non riusciremo a trovare delle risposte a questi e a molti altri interrogativi le nostre rimarranno soltanto delle congetture. Ripensando alla situazione che si era creata durante lo sviluppo di windows 7 mi viene una certa nostalgia..

Boskaz ha detto...

Con App in HTML5 il mondo cambierà. E' inutile fasciarci la testa e continuare a volere il passato solo perchè ci da sicurezza...anke perchè se così fosse staremmo ancora a cacciare e coltivare e basta...è vero ogni passo è un rischio ma credetemi se nn si rischia non si potrà mai migliorare..
Visti i tempi ke corrono io già stò studiando html5 e vi garantisco ke ha possibilità illimitate.
E il bello è ke i codici vanno da semplici due righe di script a miliardi in modo tale da poter essere create magari app anke dai meno esperti.
Un grande passo per Microsoft!
-----------------------------------------
www.windowsincompresse.com

Andrea Martinelli ha detto...

@Boskaz
Prima di tutto non chiamiamo .NET "il passato", visto che è nato nel 2001, dieci anni dopo HTML.
.NET non ci dà solo sicurezza, ma tutte le funzionalità elencate nell'articolo, tra cui la cosa più importante è il typing statico che nei progetti molto grandi dà un aiuto essenziale.
Ed inoltre, quali sono queste "possibilità illimitate" di HTML5? HTML5 è solo un evoluzione di HTML4, che aggiunge funzionalità che altri framework e altri linguaggi supportavano già da tempo: Canvas (GDI, DirectX), WebWorkers (Thread, TPL), WebSockets (TCP/UDP)

Simone ha detto...

HTML5 Sarà una rivoluzione ma tiene ancora il cuore di HTML4 come il fatto di windows 7 è solo un aggiornamento di vista... La Microsoft non si basa su cose molto ma molto innovative... E poi per gli sviluppatori potrebbe essere una possibilità! Chissà quanti miliardi di Exploit ci saranno nell'html5 anche perchè è uscito da pochino :) Insomma è ancora tutto da scoprire! Diamo Tempo a tutto... E poi Boskaz non ha ragione su una cosa: .NET è ancora nuovo, uscito dalle fabbriche della Grande M.. L'html5 Fa la differenza.. E ora parlo agli sviluppatori:
Nell'html o nel PHP o in altre lingue web avete trovato exploit? SI! Allora dato che l'html5 è uscito da pochissimo potete trovare miliardi di Exploit per poter scriptare su Tutto.. Ho conosciuto un Sistema Operativo cloud fatto in HTML5 Sapete quanti Exploit ho trovato? una pagina già 60 ._. Vabbò Ora vi dico Buona Fortuna e non date Pane ai Lamer :P

Boskaz ha detto...

@Andrea Martinelli
ma io non ho mai chiamato net il passato...io menziono sl html4...cmq i grandi cambiamenti risiedono nell'accessibilità dei dati...nn saremo più per forza vincolati a una rete internet costante come adesso dv per accedere a un sito devi per forza essere connesso ma basta ad esempio averlo visitato una volta e da li puoi lavorarci anke offline. Vuoi un altro esempio? Interazione diretta di BluePoison integrata nel vostro sito...e così altre mille facilitazioni.
Comunque se vuoi dare un occhiata ho fatto un articolo da poco su W.I.C. riguardo HTL5 e windows 8.

windowsincompresse.com/2011/06/immersive-ui-e-html5-il-prossimo-futuro.html

Cmq poi è una mia opinione e posso capire ke nn la si pensi tutti così ;)
--------------------------------
www.windowsincompresse.com

Boskaz ha detto...

@Simone
Ma io nn ho mai citato .Net ;p!!!!!!
---------------------------------
www.windowsincompresse.com

Andrea Martinelli ha detto...

"fasciarci la testa e continuare a volere il passato"

Sembrava quasi un riferimento alle preoccupazioni di tanti sviluppatori in questo momento.

Ovviamente quello che ho scritto nell'articolo non vale solo per .NET, ma anche per tutti gli altri linguaggi lato client, visto che rischieranno di essere sostituiti dalla mediocrità di javascript.

Quello che Microsoft deve fare, è semplificare l'installazione delle applicazioni, perché così come è adesso, è semplicemente *patetica*.

Se Microsoft rispetterà le promesse fatte nelle slide dell'anno scorso, finalmente si potrà cercare un'applicazione dal menu di avvio, o da Windows Store, cliccarla, e vederla partire senza inutili procedure di installazione.

Internamente, l'installazione, o caching può ancora avvenire, ma come utente io non dovrei accorgermene.

Le applicazioni dovrebbero essere aggiornate dal sistema, non da sè stesse o addirittura dall'utente.

La disinstallazione dovrebbe avvenire dal menu di contesto dell'applicazione, o da Windows Explorer, non da una disordinata lista di programmi e componenti di sistema.

È ridicolo che se sei sviluppatore di un'applicazione, devi per forza aprire un sito web per paura di non apparire nei risultati delle ricerche su google quando la gente vuole scaricare il tuo programma.

È ridicolo anche il semplice fatto di dover cercare su google i software per windows. Perché non esiste ancora un Windows Store, in cui io cerco un'applicazione, faccio un singolo click sul pulsante Esegui, e me la ritrovo in esecuzione?

Boskaz ha detto...

@andrea
Hai centrato ql ke intendevo!!
E proprio in qst direzione credo ke si debba puntare x l'html5.
Se però già partiamo dicendo d opporci a microsoft x l'html5 allora nn potremo mai sperare in un'evoluzione d qst genere...su qst cose è meglio lamentarsi dopo ke prima...c'è la speranza d un qlk d migliore ;)
-----------------------
www.windowsincompresse.com

Boskaz ha detto...
Questo commento è stato eliminato dall'autore.
Andrea Martinelli ha detto...

@boskaz

>E proprio in qst direzione credo ke si debba puntare x l'html5.

Ok, ma questo non deve avvenire solo per le applicazioni HTML, ma anche per quelle native/.NET. Sarebbe ridicolo avere un Windows Store contenente solo applicazioni HTML. A questo punto tanto vale buttare via windows e usare chrome os.

> Se però già partiamo dicendo d opporci a microsoft x l'html5
Credo che nessuno ce l'abbia con l'HTML5.
Quello che a molti, compreso a me, ha dato fastidio, è che Microsoft non abbia nemmeno menzionato .NET/Silverlight/WPF durante la presentazione di Immersive, continuando invece a bombardarci di slogan sull'HTML nativo, the beauty of the web, IE10 e così via.

A tutti piacciono le animazioni in HTML5, tutti si stupiscono davanti a certe demo HTML5.
L'amara verità per gli sviluppatori è che dietro a queste belle demo animate c'è il solito vecchio javascript, con tutti i suoi problemi.


Per fortuna, secondo voci interne a Microsoft, sembra che sarà presente un framework Immersive anche per applicazioni .NET/Xaml.
http://www.zdnet.com/blog/microsoft/microsoft-needs-to-tell-windows-8-developers-now-about-jupiter-and-silverlight/9608

Microsoft avrebbe potuto essere più chiara durante la presentazione, invece di provocare questo panico generale.

VictorFleur ha detto...

L'idea di Microsoft sembra chiara... attirare il più possibile sviluppatori da altre piattaforme e farli confluire in W8 con HTML5.

Allo stesso modo, è impossibile che Microsoft imponga agli attuali sviluppatori .NET (e soprattutto la marea di programmatori che sono comparsi con WP7) di convertirsi ad HTML5.

Quindi credo che alla fine per le app di Windows 8 si potrà scegliere fra i due linguaggi, o almeno ci sarà un tentativo di Microsoft di unirli (che so... sostituendo XAML con HTML5). Perchè abbandonare Silverlight a pochi mesi dal rilascio della beta pubblica di SL5?

VictorFleur ha detto...

L'idea di Microsoft sembra chiara... attirare il più possibile sviluppatori da altre piattaforme e farli confluire in W8 con HTML5.

Allo stesso modo, è impossibile che Microsoft imponga agli attuali sviluppatori .NET (e soprattutto la marea di programmatori che sono comparsi con WP7) di convertirsi ad HTML5.

Quindi credo che alla fine per le app di Windows 8 si potrà scegliere fra i due linguaggi, o almeno ci sarà un tentativo di Microsoft di unirli (che so... sostituendo XAML con HTML5). Perchè abbandonare Silverlight a pochi mesi dal rilascio della beta pubblica di SL5?

Dario Casertano ha detto...

State facendo polemica inutile.

Si parla della sola interfaccia e non dello sviluppo dell'intero software.

Non è nulla di nuovo, anzi, forse era ora che si andasse verso questa direzione.

Se poi il problema è dover fare un po' di codice a mano, state tranquilli che mamma Microsoft sa bene che non sapete fare vero codice, quindi vi provvederà sicuramente tools che faranno tutto al vostro posto!

Abbiate fiducia no?! ;)

Andrea Martinelli ha detto...

@Dario Casertano

Il vero codice lo si scrive con un vero linguaggio di programmazione, non con javascript.
Se poi ai "veri" programmatori come te piace trovare gli errori a runtime, fai pure come vuoi.

Andrea Martinelli ha detto...

"fasciarci la testa e continuare a volere il passato"

Sembrava quasi un riferimento alle preoccupazioni di tanti sviluppatori in questo momento.

Ovviamente quello che ho scritto nell'articolo non vale solo per .NET, ma anche per tutti gli altri linguaggi lato client, visto che rischieranno di essere sostituiti dalla mediocrità di javascript.

Quello che Microsoft deve fare, è semplificare l'installazione delle applicazioni, perché così come è adesso, è semplicemente *patetica*.

Se Microsoft rispetterà le promesse fatte nelle slide dell'anno scorso, finalmente si potrà cercare un'applicazione dal menu di avvio, o da Windows Store, cliccarla, e vederla partire senza inutili procedure di installazione.

Internamente, l'installazione, o caching può ancora avvenire, ma come utente io non dovrei accorgermene.

Le applicazioni dovrebbero essere aggiornate dal sistema, non da sè stesse o addirittura dall'utente.

La disinstallazione dovrebbe avvenire dal menu di contesto dell'applicazione, o da Windows Explorer, non da una disordinata lista di programmi e componenti di sistema.

È ridicolo che se sei sviluppatore di un'applicazione, devi per forza aprire un sito web per paura di non apparire nei risultati delle ricerche su google quando la gente vuole scaricare il tuo programma.

È ridicolo anche il semplice fatto di dover cercare su google i software per windows. Perché non esiste ancora un Windows Store, in cui io cerco un'applicazione, faccio un singolo click sul pulsante Esegui, e me la ritrovo in esecuzione?

Mattia ha detto...

Brutta cosa...
Microsoft negli ultimi 10 anni circa ha fatto un lavoro enorme per sollevare gli sviluppatori dall'ingrato compito di lavorare con la API native Win32.
Prima è nato il .NET Framework con Windows Forms, a partire dal 2006 è stato introdotto WPF subito seguito da Silverlight... questo è quello che ha raggiunto gli sviluppatori ma dietro le quinte ci sono stati vari esperimenti, tra cui MCML (Media Center Markup Language, possibile predecessore/successore di WPF) e recentemente il Framework Iris (o UIX) apparso in Zune (http://www.istartedsomething.com/20071116/microsoft-iris-uix-framework-zune/ @Adriano: un articoletto?..).
Mi rifiuto categoricamente di credere che tutto questo sia sfociato in HTML5 e Javascript, ossia i concorrenti diretti di Silverlight!
Inoltre un simile passo impedirebbe la portabilità del software tra WP7 (Silverlight / XNA) e tablet
Personalmente rimango comunque con la speranza di poter ancora sviluppare sulla piattaforma .NET. Non dobbiamo dimenticarci che questa presentazione è solo un'assaggio, questa sembra essere solo l'interfaccia per tablet, ma dietro a tutto ciò rimane il caro vecchio desktop di windows, la cui interfaccia deve ancora essere presentata... maggiori novità arriveranno a inizio settembre con l'evento BUILDwindows.. speriamo in bene ;-)