CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: yuri76 con ben 9 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: yuri76 con ben 18 Thanks ricevuti negli ultimi sette giorni
Utente del mese: DreamReaper con ben 54 Thanks ricevuti nell'ultimo mese

Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 13 su 13
Discussione:

Programmare giochi su android

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #11
    Androidiano VIP


    Registrato dal
    Sep 2009
    Messaggi
    1,574

    Ringraziamenti
    5
    Ringraziato 146 volte in 132 Posts
    Predefinito

    Vorrei farti notare un paio di cose, dato che hai detto di aver programmato in C# e anche io, per lavoro, programmo in C#:

    Primo, che il linguaggio del C# è per molti aspetti assolutamente indentico al Java, di cui è infatti figlio diretto: C# discende da J++ che è la "versione Microsoft" del java. Dovrai solo sostituire alcune keywords (invece del simbolo : per derivare dovrai usare la parola "extends", tipo "public class Nomeclasse extends Baseclass", e invece di Using c'è Imports) e non avrai le classi del .NET a disposizione, ma la sintassi è la stessa.

    Secondo, che il C# è pesante tanto quanto il Java, perché anche il C# gira su Virtual Machine: tutti i linguaggi .NET si compilano sempre in Intermediate Language, che è fatto in modo molto simile al Bytecode di Java, e l'IL appunto viene interpretato dalla MVM (Microsoft Virtual Machine) su Windows o da Mono su altri sistemi, esattamente come il Java è interpretato dalla JVM (Java Virtual Machine).

    Il Java era estremamente pesante fino a qualche anno fa, ma da un paio d'anni a questa parte la JVM ha ottenuto delle ottimizzazioni veramente efficaci, anche copiando alcune soluzioni adottate da Microsoft con il C# e il .NET, quindi le sue prestazioni sono molto migliori di quello che comunemente si crede.

    Certo non raggiungerà mai i livelli del C++, perché comunque c'è una Virtual Machine in mezzo.

  2.  
  3. #12
    Senior Droid L'avatar di Azatoth


    Registrato dal
    Apr 2009
    Località
    Misinto (MI)
    Messaggi
    568

    Ringraziamenti
    1
    Ringraziato 38 volte in 28 Posts
    Predefinito

    Quote Originariamente inviato da LoZeno Visualizza il messaggio
    Vorrei farti notare un paio di cose, dato che hai detto di aver programmato in C# e anche io, per lavoro, programmo in C#:

    Primo, che il linguaggio del C# è per molti aspetti assolutamente indentico al Java, di cui è infatti figlio diretto: C# discende da J++ che è la "versione Microsoft" del java. Dovrai solo sostituire alcune keywords (invece del simbolo : per derivare dovrai usare la parola "extends", tipo "public class Nomeclasse extends Baseclass", e invece di Using c'è Imports) e non avrai le classi del .NET a disposizione, ma la sintassi è la stessa.

    Secondo, che il C# è pesante tanto quanto il Java, perché anche il C# gira su Virtual Machine: tutti i linguaggi .NET si compilano sempre in Intermediate Language, che è fatto in modo molto simile al Bytecode di Java, e l'IL appunto viene interpretato dalla MVM (Microsoft Virtual Machine) su Windows o da Mono su altri sistemi, esattamente come il Java è interpretato dalla JVM (Java Virtual Machine).

    Il Java era estremamente pesante fino a qualche anno fa, ma da un paio d'anni a questa parte la JVM ha ottenuto delle ottimizzazioni veramente efficaci, anche copiando alcune soluzioni adottate da Microsoft con il C# e il .NET, quindi le sue prestazioni sono molto migliori di quello che comunemente si crede.

    Certo non raggiungerà mai i livelli del C++, perché comunque c'è una Virtual Machine in mezzo.
    Come saprai (mi riferisco a LoZeno) ci sono delle sostanziali differenze tra Java e C#.
    In primis il fatto che un oggetto passato per riferimento, in Java non può essere reistanziato (o meglio ha effetto solo sul metodo che riceve l'oggetto mentre per il chiamante l'istanza rimane la stessa), mentre in C# perpretra la nuova istanza anche al chiamante.

    Successivamente c'è il confronto di stringhe che è totalmente diversa perchè il simbolo "=" confronta le istanze e non il valore contenuto in una property standard. Quindi in java scrivere stringa1 = stringa2 darà SEMPRE false, mentre in C# dipende dal contenuto.

    E questo sono le due macro differenze che mi sono venute in mente al volo.
    Ce ne sono anche altre.
    La prima è mooooolto subdola ed è il motivo per cui è moooolto complesso fare un porting Java di un'applicazione scritta in C#.

    Inoltre la CLR (sia di .NET che di Mono) e la JVM hanno un JIT-compiler che lavora in modo diverso.

    Aggiungo anche che qui si parla di DVM e non di JVM che è ancora diversa.

    Livelli di Benchmark sono stati esposti e dimostrano la supremazia della CLR Mono compilata su Android rispetto alla DVM.
    Si spera che Dalvik Turbo migliori la gestione e permetta livelli di performance degni di nota .

    Non sto denigrando la Dalvik, ma è un mero confronto.

    E le perfomance di C# e Java dipendono dall'implementazione della CLR/JVM sull'architettura in oggetto di analisi. Su Windows e Linux, a parità di hardware (test sui due OS in dual boot), la JVM ha performance differenti .
    Su windows è un relitto e ovviamente microsoft ha sviluppato, con .NET, una virtual machine (la CLR appunto) moooooooolto più performante della JVM sulla stessa architettura (windows appunto).


    Google Nexus One USA
    ROM: CyanogenMod 6.1.1 - Android 2.2.1
    Radio: 5.12.00.08
    Recovery: Clockwork

    Sviluppatore di: Swapper per utenti root | Modus Operandi

    Ecco le mie app Android

  4. #13
    Androidiano VIP L'avatar di Metallaro


    Registrato dal
    Feb 2010
    Messaggi
    2,681

    Ringraziamenti
    25
    Ringraziato 196 volte in 143 Posts
    Predefinito

    Ringrazio per le precisazioni. Allora mi metto con il java. Adesso ho trovato alcuni manuali generici per il java ed è un buon punto di inizio
    E poi ho già in mente come sarà il mio primo gioco. Una roba semplice ma molto metallara
    Telefoni: Ex Htc Legend, Desire Z. Ex Lg Optimus 2X. Ex Galaxy SII
    Tablet: Ex Notion Ink Adam. Ex Motorola Xoom. Ex Galaxy Tab 10.9

    Galaxy Nexus
    Ipad 2

    Se il mio post è stato utile, un thanks è ben accetto. Se è stato inutile, un thanks è ugualmente ben accetto.

Pagina 2 di 2 primaprima 12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy