I punti di vista che sono stati espressi sono davvero interessanti.
Non devono restare solo nel forum, vanno conservati anche nel blog.
Direi che qui c'è materiale per un articolo spettacolare.
Ciao,
Pietro.
Cosa ne pensate del linguaggio JAVA?
Moderatori:
Paolino,
fairyvilje
5
voti
-

PietroBaima
90,7k 7 12 13 - G.Master EY

- Messaggi: 12207
- Iscritto il: 12 ago 2012, 1:20
- Località: Londra
1
voti
Trovo giustissimo l'intervento di DarwinNE.
Anche per me scrivere un'interfaccia grafica in C++ è una cosa abbastanza inutile, considerando che basandosi sull'iterazione con una persona fisica le prestazioni sono solitamente limitate dai tempi di risposta di questa :)
Generalmente capita anche a me di sviluppare software in C++ e fornire un'interfaccia utente nemmeno in Java ma HTML/XML CSS e JS. Questo perché se mai devo portare l'applicazione in un contesto di rete intranet o web ho già la grafica bella e pronta e diciamocelo è molto, molto personalizzabile
Un framework interessante è per esempio questo
Anche per me scrivere un'interfaccia grafica in C++ è una cosa abbastanza inutile, considerando che basandosi sull'iterazione con una persona fisica le prestazioni sono solitamente limitate dai tempi di risposta di questa :)
Generalmente capita anche a me di sviluppare software in C++ e fornire un'interfaccia utente nemmeno in Java ma HTML/XML CSS e JS. Questo perché se mai devo portare l'applicazione in un contesto di rete intranet o web ho già la grafica bella e pronta e diciamocelo è molto, molto personalizzabile
Un framework interessante è per esempio questo
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
TardoFreak ha scritto:Ma forse questo dipende anche dalle esperienze personali.
Assolutamente :)
Negli scorsi anni mi sono occupato principalmente di software basso livello. kernel, bootloader, drivers etc. su architettura 80x86. Ho provato cosa significa partire da 0 con un compilatore, un assemblatore, qualche migliaio di pagine di specifiche tecniche e dover scrivere un piccolo kernel, dover implementare parte la STL, una parte della STDLIB, new e delete, gestione delle eccezioni perché tutte queste cose si basano su un sistema operativo e se non c'è devi pensarci te. E' stato bellissimo e con Java tutto questo non avrei mai potuto farlo.
Oggi ho cambiato un po' ambito, ma le vecchie abitudini rimangono
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
Qualcosa non ha funzionato...
Lo sapete che l'arroganza in informatica si misura in nanodijkstra?
-

fairyvilje
15,0k 4 9 12 - G.Master EY

- Messaggi: 3047
- Iscritto il: 24 gen 2012, 19:23
0
voti
Resta ancora da capire perché Java viene utilizzato nei dispositivi mobili.
Qualcuno ha qualche idea o notizia?
Qualcuno ha qualche idea o notizia?
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
7
voti
Uno dei motivi per cui Java in ambiente Oracle (ex Sun) non è così lento (almeno non come molto spesso è descritto) è dovuto alla sua JIT, HotSpot:
http://en.wikipedia.org/wiki/HotSpot
si tratta di una tecnologia comprata dalla Sun, non è stata sviluppatala internamente.
L'elaborazione dei bytecode Java è una operazione lenta, soprattutto se fatta da CPU concepite per l'uso di altri tipi di linguaggi ad alto livello come C, Pascal, Fortran ecc.... Il JIT permette di convertire il bytecode in linguaggio macchina al tempo dell'esecuzione. La conversione in linguaggio macchina con HotSpot, non è fatta una sola volta alla prima esecuzione, è come avere un compilatore con la fase di generazione del codice macchina separato e differito. Vengono continuamente monitorati parti importanti del codice, come i loop, se HotSpot si accorge che il codice generato non è ottimale lo rigenera in base ai nuovi dati raccolti. HotSpot ha come contropartita un consumo considerevole di memoria, deve memorizzare i bytecode del codice di partenza, generare il codice in lingiaggio macchina e accumulare le informazioni statistiche per ricreare il codice in linguaggio macchina se necessario.
Java è usato nei dispositivi mobili per diversi motivi, il primo è lo sviluppo da parte di Sun di Java ME (Micro Edition), versione di Java ridotta per dispositivi mobili con risorse limitate. Nei dispositivi mobili le CPU Intel sono una rarità (architettura molto avida di risorse), vengono invece usati SoC con diversi tipi di architetture ARM sintetizzate. Un tempo erano diffusi gli ARM per dispositivi mobili con l'estensione Jazelle
http://en.wikipedia.org/wiki/Jazelle
la CPU era in grado di eseguire in hardware una parte della decodifica dei byte code Java. Ora gli ARM nei moderni telefonini non hanno più questa estensione, la diffusione di telefonini Android con una diversa JVM (la Dalvik) con un diverso byte code ha reso Jazelle inutile e non è più presente. Anche negli ARM per iOS l'estensione Jazelle non è presente.
Nei dispositivi mobili le cose si tanno ulteriormente evolvendo, l'ultima versione di Android, la 4.4, ha introdotto in via sperimentale (ci sono ancora dei problemi con alcune app) un nuovo sistema runtime, la ART:
http://source.android.com/devices/tech/dalvik/art.html
con la ART le cose cambieranno in meglio visto che è basata sul LLVM:
http://llvm.org
già ora una parte di Android usa LLVM per la gestione dei Render Script in futuro sarà utilizzato LLVM anche per la conversione al momento della installazione dei vecchi bytecode della Dalvik in bitcode per LLVM e poi generare il codice macchina. Il vantaggio di questo passaggio è una maggiore efficienze nella esecuzione del codice con tempi di esecuzioni e consumo di batteria minori.
http://en.wikipedia.org/wiki/HotSpot
si tratta di una tecnologia comprata dalla Sun, non è stata sviluppatala internamente.
L'elaborazione dei bytecode Java è una operazione lenta, soprattutto se fatta da CPU concepite per l'uso di altri tipi di linguaggi ad alto livello come C, Pascal, Fortran ecc.... Il JIT permette di convertire il bytecode in linguaggio macchina al tempo dell'esecuzione. La conversione in linguaggio macchina con HotSpot, non è fatta una sola volta alla prima esecuzione, è come avere un compilatore con la fase di generazione del codice macchina separato e differito. Vengono continuamente monitorati parti importanti del codice, come i loop, se HotSpot si accorge che il codice generato non è ottimale lo rigenera in base ai nuovi dati raccolti. HotSpot ha come contropartita un consumo considerevole di memoria, deve memorizzare i bytecode del codice di partenza, generare il codice in lingiaggio macchina e accumulare le informazioni statistiche per ricreare il codice in linguaggio macchina se necessario.
Java è usato nei dispositivi mobili per diversi motivi, il primo è lo sviluppo da parte di Sun di Java ME (Micro Edition), versione di Java ridotta per dispositivi mobili con risorse limitate. Nei dispositivi mobili le CPU Intel sono una rarità (architettura molto avida di risorse), vengono invece usati SoC con diversi tipi di architetture ARM sintetizzate. Un tempo erano diffusi gli ARM per dispositivi mobili con l'estensione Jazelle
http://en.wikipedia.org/wiki/Jazelle
la CPU era in grado di eseguire in hardware una parte della decodifica dei byte code Java. Ora gli ARM nei moderni telefonini non hanno più questa estensione, la diffusione di telefonini Android con una diversa JVM (la Dalvik) con un diverso byte code ha reso Jazelle inutile e non è più presente. Anche negli ARM per iOS l'estensione Jazelle non è presente.
Nei dispositivi mobili le cose si tanno ulteriormente evolvendo, l'ultima versione di Android, la 4.4, ha introdotto in via sperimentale (ci sono ancora dei problemi con alcune app) un nuovo sistema runtime, la ART:
http://source.android.com/devices/tech/dalvik/art.html
con la ART le cose cambieranno in meglio visto che è basata sul LLVM:
http://llvm.org
già ora una parte di Android usa LLVM per la gestione dei Render Script in futuro sarà utilizzato LLVM anche per la conversione al momento della installazione dei vecchi bytecode della Dalvik in bitcode per LLVM e poi generare il codice macchina. Il vantaggio di questo passaggio è una maggiore efficienze nella esecuzione del codice con tempi di esecuzioni e consumo di batteria minori.
0
voti
Quindi questo fa supporre che Java andrà avanti ancora parecchio.
E magari lo ottimizzeranno meglio anche per i personal computers.
E magari lo ottimizzeranno meglio anche per i personal computers.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Tutti i telefonini e tablet Android si programmano in Java. E' possibile utilizzare anche il C/C++ (e volendo anche assembler) via JNI ma la parte che si interfaccia con la GUI è in Java.
1
voti
fairyvilje ha scritto:... Mi piace avere tutto sotto controllo
Ti capisco.
Anche a me piaceva avere tutto sotto controllo.
Oggi preferirei avere qualcosa che controlla al posto mio.
Ma questo è un opinione mooolto di parte.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Mi sono riletto la discussione.
In pratica sulle macchine non sun le prestazioni sono basse per via di una JVM (e magari di un compilatore) ... delle balle.
In pratica sulle macchine non sun le prestazioni sono basse per via di una JVM (e magari di un compilatore) ... delle balle.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
TardoFreak ha scritto:Mi sono riletto la discussione.
In pratica sulle macchine non sun le prestazioni sono basse per via di una JVM (e magari di un compilatore) ... delle balle.
Gia, purtroppo... Ho installato un programmino Java in una partizione Linux in questa macchina IBM Power 7 con 4 core: il programma aveva tempi di esecuzione pari a quasi 3 volte i tempi di esecuzione in un PC con Win7 a 32 bit.
Fabio
Chi c’è in linea
Visitano il forum: Nessuno e 19 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
pigreco]=π
