View Full Version : [JAVA] Arriva la "Metro" (WinRT) - Come comportarsi
franksisca
05-04-2012, 10:54
Al momento mi sembra che java non sia supportato dalle nuove librerie per win8.
Quindi mi pongo una domanda: come dovremmo, noi poveri programmatori java (anticipando che la fossilizzazione su un slo linguaggio è sbagliata), comportarci con i software in fase di sviluppo?
Come dovremmo comportarci nella progettazione a breve termine dei software (ovviamente mi auguro che il supporto sia garantito a breve).
Andiamo su C# sin da subito o conviene aspettare "l'evoluzione della specie"?
Inoltre esprimetemi un parere personale sulla strada intrapresa da microsoft :D
Ci cono da considerare due cose: perchè è stato creato Metro e Windows Store
Metro nasce per fornire un ambiente di sviluppo nuovo che rispecchia le nuove necessità: risparmio energetico, scalabilità a risoluzioni differenti e sicurezza
Una Applicazione Metro prevede che il sistema operativo possa ibernare l'applicazione
http://i.msdn.microsoft.com/dynimg/IC572116.png
Inoltre una Metro App ha bisogno di autorizzazioni (ad esempio per toccare il filesystem o accedere alla webcam) e prevede uno spazio privato dove vengono salvate impostazioni e dati
Una Metro App fornisce un framework grafico che funziona bene sia con il mouse che con il touch e che possa essere usato da un tablet a una configurazione con monitor con risoluzione maggiore di un retina display
Una Metro App in .Net è una normale app .Net che gira nella classica CLR + BLC + tutto il resto - tranne che per il fatto che di tutto questo - può accedere solo ad alcune classi della BLC + le librerie Metro
http://msdn.microsoft.com/en-us/library/windows/apps/br230232(v=vs.110).aspx
Non puoi ad esempio usare la normale classe System.Net.Sockets.Socket ma devi usare la controparte WinRT perchè così facendo la tua app deve dichiarare che dev'essere autorizzata all'accesso internet per poter funzionare
Quindi in teoria se Oracle volesse, potrebbe integrare le librerie Metro in Java, adattare la Java VM a seguire il ciclo di vita di una Metro App e limitare in gran parte la sua libreria standard
Il problema che sorgerebbe però sarebbe la seconda grande novità di Windows 8: Windows Store
"Come fa MS ad essere sicura che non richiamo tramite reflection alcune librerie vietate da una Metro App?"
Per passare il Windows Store la tua app viene analizzata in maniera automatica secondo alcuni pattern - questo rende certo che se anche usi trucchi per accedere a System.Net.Sockets.Socket per bypassare il sistema di permessi la tua app sarà comunque rifiutata
MS non supporta Java quindi mi viene difficile pensare come possa offrire un sistema di controllo automatico per Java
E' per questo che MS ha progettato le Metro App per poter essere create sui suoi linguaggi (C#, VB.Net, F#) più due linguaggio standard (C e C++) e più un linguaggio standard di scripting (Javascript)
L'obbiettivo è quello di far sentire il meno possibile il peso delle limitazioni sullo sviluppatore
Teoricamente Oracle e MS potrebbero collaborare al fine di creare Metro App in Java accettate sul Windows Store - ma dubito che verrà fatto qualcosa al proposito
La gran parte delle app mobili non vivono vita a "sè", ma sono una interfaccia a servizi cloud - oppure sono giochi
La app quindi è solo che una piccola parte di un ecosistema che vive altrove - di cui i server saranno scritti principalmente in Java - e penso che ad Oracle vada bene così
Inoltre le normali app scritte in Swt, Swing o quello che è continueranno a funzionare sul normale desktop classico
Teoricamente qualcuno (Oracle?) potrebbe creare un compilatore che compila in codice nativo il codice Java - questo renderebbe compatibile l'App con il Windows Store senza alcun accordo con MS
Un esempio simile è: http://xamarin.com/monotouch compila il codice scritto in C# direttamente in nativo - accettato dall'Apple Store
Ma come scritto prima, dubito che Oracle abbia interesse nel fare questo investimento
Il problema diventa più grave per linguaggi che girano su una VM come Python o Ruby - dove trovo impossibile che qualche volontario si voglia cimentare in un progetto così complesso per supportare la nuova shell di Windows 8
Se vuoi creare una Metro App - ti conviene passare a .Net
Il mio parere al riguardo: le Metro App sono un enorme passo in avanti rispetto le app classiche - non mi piace la censura preventiva del Windows Store, avrei preferito come si fa su Android: accetta tutto e lascia la sicurezza in mani all'utente
franksisca
05-04-2012, 12:11
effettivamente avevo sottovalutato la questione windows store.
In effetti ho visto anche io una "apple-izazione" di windows con questo nuovo sistema, il che mi disturba non poco.
Sinceramente la portabilità di java a me ha sempre fatto molto comodo lavorando costantemente su 2 sistemi (almeno) diversi contemporaneamente, mentre con questo nuovo sistema nel lungo termine, se non cambiano le cose, non potrò più goderne. sinceramente apprezzo l'innovazione (senza saremmo "morti") ma non mi paice la direzione che sta prendendo.
io la vedo una cosa improbabile .. il motivo principale è il più semplice..
parliamo di un linguaggio di proprietà Oracle .. ovvero un azienda che riesce ad avere un picco nella crescita di fatturato pauroso in qualsiasi ambito, mentre le aziende negli stessi settori hanno moltissime difficoltà
in più non credo nemmeno che microsoft si voglia tagliare le gambe così ..
diverrebbe una via di mezzo tra apple e microsoft come lo conosciamo oggi, quando fino ad ora è l'inverso (o quasi).. e questo significherebbe soccombere pesantemente ad Apple (o, magari, nuove realtà? bene o male non è difficile..)
ovviamente parliamo di utilizzo domestico visto che se attuassero questa "tattica" gli ambienti in ambito professionale diverrebbero (finalmente) per il 100% unix
cdimauro
05-04-2012, 15:40
Il problema diventa più grave per linguaggi che girano su una VM come Python o Ruby - dove trovo impossibile che qualche volontario si voglia cimentare in un progetto così complesso per supportare la nuova shell di Windows 8
Nella mailing list di Python ho letto che ci stanno già pensando.
Comunque per .NET c'è pur sempre IronPython. Sicuro che non sia supportato?
Nella mailing list di Python ho letto che ci stanno già pensando.
Comunque per .NET c'è pur sempre IronPython. Sicuro che non sia supportato?
Forse è possibile usare librerie in IronPython, ma dubito fortemente che sia possibile creare una app interamente in IronPython al momento
Hai qualche link dove se ne sta discutendo?
cdimauro
05-04-2012, 16:43
Forse è possibile usare librerie in IronPython, ma dubito fortemente che sia possibile creare una app interamente in IronPython al momento
Beh, considera che IronPython è scritto in C#, per cui non credo ci siano problemi ad adattarlo per farlo diventare un'applicazione Metro.
Hai qualche link dove se ne sta discutendo?
Questa (http://mail.python.org/pipermail/python-dev/2012-January/115375.html) è la prima mail del thread che è stato aperto, e questa (http://mail.python.org/pipermail/python-dev/2012-January/115579.html) l'ultima.
Da quel che ho letto, mi sembra che ci siano buone possibilità di vedere Python in versione Metro.
Tornando all'argomento Java:
http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/IKVM-NET-Building-a-Java-VM-on-the-NET-Framework
Questo potrebbe interessarti, è possibile anche avviare Eclipse tramite CLR
franksisca
10-04-2012, 09:30
Tornando all'argomento Java:
http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/IKVM-NET-Building-a-Java-VM-on-the-NET-Framework
Questo potrebbe interessarti, è possibile anche avviare Eclipse tramite CLR
appena possibile vedrò il video, a lavoro non posso
Tornando all'argomento Java:
http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/IKVM-NET-Building-a-Java-VM-on-the-NET-Framework
Questo potrebbe interessarti, è possibile anche avviare Eclipse tramite CLR
...ma è un progetto a se?...sarebbe gradito qualcosa di nativo ufficialmente supportato da ms/oracle...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.