Open JDK: Oracle e Apple assieme per Java su Mac OS X

Open JDK: Oracle e Apple assieme per Java su Mac OS X

Oracle e Apple annunciano congiuntamente il progetto Open JDK che permetterà di portare Java SE7 su Mac OS X

di pubblicata il , alle 15:57 nel canale Sistemi Operativi
Apple
 
52 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
sirus13 Novembre 2010, 16:07 #21
Originariamente inviato da: marczxc
io parlo per esperienza in quello che ho fatto fin'ora! ho creato un'applicazione per la gestione di varie sincronizzazioni tra 2 cartelle. il codice l'ho riscritto 2 volte, prima in Java e ora lo sto realizzando in C. risultato? quello in Java è moltomeno performante di quello in C.

...

Poi sono il primo a dire che automatismi come il garbage collector, inizializzazione ecc fanno risparmiare molto tempo (e sangue) a noi programmatori, però è un dato di fatto che dobbiamo rinunciare alle prestazioni.

Se la versione in C è molto più veloce di quella in Java e l'unica cosa che fa il programma è sincronizzare 2 directory direi che non è normale, non è uno degli ambiti in cui un programma Java è decisamente più lento dell'equivalente in C.

Non è solo il garbage collector, è tutto quel codice che il programmatore non vede che viene inserito quando si utilizza una classe Java (banalità, un vector) e che per negligenza non viene inserito nell'equivalente programma in C; queste piccole cose che garantiscono il corretto funzionamento del programma anche in condizioni anomale fanno la differenza e non permettono di effettuare una comparazione tra un programma Java ed il suo "equivalente" in C.

PS: il garbage collector può essere più efficiente della gestione manuale della memoria non momento in cui quanto è in grado di "schedulare" le operazioni di liberazione della memoria. Giusto per citare una fonte, questo articolo è un po' vecchio ma è interessante. Da notare come la situazione sia ulteriormente migliorata.
manowar8413 Novembre 2010, 16:11 #22
marczxc13 Novembre 2010, 16:13 #23
Originariamente inviato da: M3ne
Secondo me esageri un po'... tutto qua.


probabilmente si ma non parlo nemmeno a vanvera, visto che wiki dice le mie stesse cose.
sirus13 Novembre 2010, 16:31 #24
Originariamente inviato da: marczxc
probabilmente si ma non parlo nemmeno a vanvera, visto che wiki dice le mie stesse cose.

Mai prendere Wikipedia troppo sul serio.
Purtroppo Java (come tante altre piattaforme basate su virtual machine) paga ancora dazio per l'iniziale (ed indubbia) lentezza (all'inizio il bytecode era interpretato, non JIT-tato). Il problema è che i miti sono duri a morire anche se l'evidenza è ben diversa, oggi giorno è difficile trovare applicazioni Java che sono visibilmente più lente delle duali in C++.
II ARROWS13 Novembre 2010, 17:42 #25
Qualcuno mi ha allegrato la serata con questi luoghi comuni, grazie!
marczxc13 Novembre 2010, 17:51 #26
Originariamente inviato da: sirus
Mai prendere Wikipedia troppo sul serio.

senz'altro, ma allora perchè nessuno ha ancora corretto?
Originariamente inviato da: II ARROWS
Qualcuno mi ha allegrato la serata con questi luoghi comuni, grazie!

siam contenti di averti allegrato thanks for useless comment
litocat13 Novembre 2010, 18:22 #27
Originariamente inviato da: manowar84
*che io sappia* viene usato java come sintassi ma non c'è nessuna jvm sotto android, viene usata la Dalvik virtual machine che è completamente diversa da quella oracle. Oracle ha denunciato google per 7 brevetti, cosa che succede di continuo al giorno oggi (apple denuncia htc, htc denuncia motorola, motorola denuncia apple, apple denuncia samsung bla bla bla bla bla bla bla^n) quindi credo che non ci sia nulla da temere a riguardo

Oracle non ha denunciato Google solo per violazione di brevetti, ma anche per violazioni di copyright. Vedi ad esempio qui.
FabryHw13 Novembre 2010, 20:52 #28
Originariamente inviato da: M3ne
Allora sono 2 le cose possibili:

1-> google scrive il codice migliore del mondo

2-> apple, Nokia, Microsoft, i programmatori di linux, la stessa Sun(Oracle) ecc. scrivono porcheria dalla mattina alla sera...

se java è tanto lento come fai a fare un sistema tanto reattivo?

Secondo me esageri un po'... tutto qua.


E' anche vero che se parliamo di Java su mobile allora 8 volte su 10 parliamo di Java PRIVO di JIT.
Ed allora sii che Java è lento rispetto a C++

Anche Dalvik VM di Android era (prima di Android 2.2) SOLO interpretata.

Più che altro perché le JVM con JIT di solito richiedono molta più ram della versione interpretata e quindi si preferisce la lentezza al consumo di ram.
Inoltre una JVM interpretata di solito ha un lag di startup minore, ossia il programma gira sii più lentamente ma si avvia prima, e su alcuni dispositivi tra avere il programma che si apre, per esempio, in 3 sec e poi gira più lento ed averlo che si apre in 7 sec e poi gira più veloce si preferisce la prima soluzione.

Cmq Google ha scelto di fare la sua VM (che poi non è sua, ma di uno sviluppatore/ricercatore se non ricordo male) per vari motivi:

[LIST=1]
[*]Molto probabilmente per cercare di aggirare le licenze di SUN che richiedono di pagare royalties per Java su dispositivi mobile.
Infatti l'unica JVM che Sun/Oracle non regala è quella per usi mobile o embedded.
[*]Dalvik è Register Based, mentre JVM è stack based. Una VM registred based dovrebbe consumare meno memoria e fornire prestazioni migliori su dispositivi a bassa potenza computazionale e con limitate risorse.
[*]Dalvik è ottimizzata per condividere le risorse tra le varie istanze delle VM.
Per motivi di sicurezza ogni programma java lanciato (e lo stesso vale sotto android) usa la propria VM separata. Ed ogni istanza di jvm alloca la sua ram e carica le sue librerie. Quindi per esempio se l'avvio della jvm vuota occupa 1MB di ram, eseguire 8 programmi java contemporaneamente significa occupare almeno 8MB di ram oltre alla ram che serve ai programmi stessi.
Sotto Dalvik invece il consumo è molto minore (inventiamo per esempio un 2.5MB per 8 istanze) perché tutte le parti di codice VM comuni vengono caricate una volta sola pur mantenendo il perfetto isolamento tra le varie VM.
[*]Dalvik è molto più integrata con il kernel linux su cui Android poggia le fondamenta.
Per esempio mi pare che ogni istanza di dalvik lanciata giri con una propria utenza (user linux) quindi anche violando (grazie a bachi) la sicurezza di una VM, al più si otterrebbe l'accesso utente di quella VM e nulla di più. Le altre VM sarebbero protette cmq.
Con jvm invece tutte le istanze girano con la stessa utenza, la violi su una vm e poi puoi decidere vita o morte anche per tutte le altre vm.
[/LIST]

A parte i motivi tecnologici da non trascurare di dalvik, penso che il motivo maggiore che ha fatto propendere a Google per la scelta verso dalvik sia quello del punto 1
WillianG8314 Novembre 2010, 00:28 #29

Simpatico

Simpatico come in italia si è affetti di questa eccessiva mentalità pro java, leggere certi commenti sembra quasi di leggere dei commenti sulle partite di calcio, gente che cerca di negare le evidenze per difendere le proprie idee, spesso nate durante l’università visto che in italia in diverse università sembra quasi che esista solo prolog e java al massimo fanno 3 mesi di corso su c++ verso la fine, e allora il programmatore medio, che è molto legato al linguaggio, cerca di tirare acqua sul proprio mulino con pochissima obiettività.
Detto ciò, resta di fatto il fatto che le performance offerte da c e c++ non sono comparabili, ovvio che se si fa un sistema che gestisce si e no qualche migliaio di dati allora la differenza non si nota ma se si parla di algoritmi che richiedono tanta potenza di calcolo il java crolla come è già sta dimostrato e tutt’ora continua ad essere dimostrato.
Resta di fatto che java ha perso tantissimo terreno a livello internazionale sia sulle università quanto sul settore professionale, appunto perché SUN si è nascosta dietro al muro della portabilità e non ha spinto gli sviluppi di java, mentre nel frattempo uno schifosissimo C# cresceva fino a diventare stabile e buono, oh dio c’è ancora da migliorare ma paradossalmente si trovano più piattaforme programmabile diverse in c# che non in java (console, cellulari, microcontrollori, ecc&#8230 anche se è stato java a nascere per questo scopo, questa è una delle tante prove del fatto che SUN ha rovinato la crescita di java. Ora forse con Oracle java ritornerà ad essere un linguaggio veramente importante.
Come ultima frase andate a controllare un po le offerte di lavoro internazionali o i programmi delle università in giro per il mondo e troverete come il programma di java in diverse univ. è stato diminuito tantissimo anche a favore di c# e e negli ambienti di lavoro in tanti sono tornati a richiedere conoscenza di C, anche le stesse software house che fino 2 anni fa chiedevano SOLO conoscenza di java. E se proprio non avete tempo e pazienza per fare queste ricerche allora fate un po di ricerca e troverete tanti articoli che parla proprio della caduta di java e la rinascita di C negli ambienti di lavoro, soprattutto per demerito di SUN.
M3ne14 Novembre 2010, 00:58 #30
Originariamente inviato da: WillianG83
Simpatico come in italia si è affetti di questa eccessiva mentalità pro java, leggere certi commenti sembra quasi di leggere dei commenti sulle partite di calcio, gente che cerca di negare le evidenze per difendere le proprie idee, spesso nate durante l’università visto che in italia in diverse università sembra quasi che esista solo prolog e java al massimo fanno 3 mesi di corso su c++ verso la fine, e allora il programmatore medio, che è molto legato al linguaggio, cerca di tirare acqua sul proprio mulino con pochissima obiettività.
Detto ciò, resta di fatto il fatto che le performance offerte da c e c++ non sono comparabili, ovvio che se si fa un sistema che gestisce si e no qualche migliaio di dati allora la differenza non si nota ma se si parla di algoritmi che richiedono tanta potenza di calcolo il java crolla come è già sta dimostrato e tutt’ora continua ad essere dimostrato.
Resta di fatto che java ha perso tantissimo terreno a livello internazionale sia sulle università quanto sul settore professionale, appunto perché SUN si è nascosta dietro al muro della portabilità e non ha spinto gli sviluppi di java, mentre nel frattempo uno schifosissimo C# cresceva fino a diventare stabile e buono, oh dio c’è ancora da migliorare ma paradossalmente si trovano più piattaforme programmabile diverse in c# che non in java (console, cellulari, microcontrollori, ecc…) anche se è stato java a nascere per questo scopo, questa è una delle tante prove del fatto che SUN ha rovinato la crescita di java. Ora forse con Oracle java ritornerà ad essere un linguaggio veramente importante.
Come ultima frase andate a controllare un po le offerte di lavoro internazionali o i programmi delle università in giro per il mondo e troverete come il programma di java in diverse univ. è stato diminuito tantissimo anche a favore di c# e e negli ambienti di lavoro in tanti sono tornati a richiedere conoscenza di C, anche le stesse software house che fino 2 anni fa chiedevano SOLO conoscenza di java. E se proprio non avete tempo e pazienza per fare queste ricerche allora fate un po di ricerca e troverete tanti articoli che parla proprio della caduta di java e la rinascita di C negli ambienti di lavoro, soprattutto per demerito di SUN.


un altro fan della propria squadra, sta volta ironizzando sugli altri nelle prime battute

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^