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 Andrea Bai pubblicata il 12 Novembre 2010, alle 15:57 nel canale Sistemi OperativiApple
52 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoQuesto dipende:
a) da come è fatto il programma
b) dall'implementazione della virtual machine e del compilatore JIT.
Detto ciò il vantaggio di usare Java sta proprio nel linguaggio Java, che si colloca a più alto livello rispetto a C++/ObjectiveC.
Ti consiglio di seguire qualche corso universitario per capire meglio come funziona la faccenda Java... Non è tanto semplice. Per esempio, quanto crei array tutti viene inserito il valore di default ad ogni cella, questo costa tantissimo rispetto al C che non lo fa in automatico, certo è che puoi scommetterci che se devi farlo tu a mano quasi sicuramente
a) da come è fatto il programma
b) dall'implementazione della virtual machine e del compilatore JIT.
Detto ciò il vantaggio di usare Java sta proprio nel linguaggio Java, che si colloca a più alto livello rispetto a C++/ObjectiveC.
sono assolutamente d'accordo, infatti trovo che programmare in Java sia moolto più facile rispetto al C (o all'Obj C, che però sto studiando solo da poco)
ti devo postare il mio libretto universitario?
non è solo la questione dell'inizializzazione, ma è proprio la JVM! alla fin fine è pur sempre una macchina virtuale con tutti i suoi pro e contro, e tra i contro il primo tra tutti è la pesantezza! su questo mi sembra che non ci sia molto da discutere
scusa stai per caso cercando flames?
Assolutamente no, sto solo cercando di dirti che quello che affermi era verissimo quando le virtual machine (e Java nella fattispecie) erano agli inizi.
Ovviamente esistono delle classi di programmi che sono tutt'ora più veloci se implementate in C/C++ (non è detto che questo non cambi nel futuro); tuttavia, potresti sorprenderti di quanto siano comuni quei programmi che possono trarre vantaggio dalla compilazione JIT messa a disposizione dalle moderne virtual machine che rendono programmi scritti in Java (ed in altri linguaggi che si appoggiano sulle virtual machine) persino più veloci del codice nativo prodotto da un compilatore C/C++.
Ovviamente esistono delle classi di programmi che sono tutt'ora più veloci se implementate in C/C++ (non è detto che questo non cambi nel futuro); tuttavia, potresti sorprenderti di quanto siano comuni quei programmi che possono trarre vantaggio dalla compilazione JIT messa a disposizione dalle moderne virtual machine che rendono programmi scritti in Java (ed in altri linguaggi che si appoggiano sulle virtual machine) persino più veloci del codice nativo prodotto da un compilatore C/C++.
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 è molto meno performante di quello in C.
Da Wikipedia a proposito della da te citata compilazione JIT:
"Questi accorgimenti [ovvero la compilazione just in time], a prezzo di una piccola attesa in fase di lancio del programma, permettono di avere delle applicazioni Java decisamente più veloci e leggere. Tuttavia, anche così Java resta un linguaggio meno efficiente dei linguaggi propriamente compilati come il C++, scontando il fatto di possedere degli strati di astrazione in più, e di implementare una serie di automatismi, come il garbage collector, che se da un lato fanno risparmiare tempo ed errori in fase di sviluppo dei programmi, dall'altro consumano memoria e tempo di CPU in fase di esecuzione del programma finito."
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.
peccato che google abbia fatto una sua jvm...e infatti una cosa è il linguaggio e una cosa la sua implementazione...
Il lato Java di Android (perché Android è anche un OS con kernel Linux) è di fatto un Java 1.5 con un 70-80% di librerie condivise / compatibili con quelle Sun + nuove librerie di Google + una nuova vm (Dalvik) ottimizzata per dispositivi a basse risorse e con una maggiore integrazione con il nucleo linux.
Molti programmi o librerie Java possono essere semplicemente tradotti di formato (necessario solo perché Dalvik non esegue il bytecode Java ma un suo bytecode diverso) per girare su Android senza dover modificare una riga di codice (grazie a quel 70-80% di compatibilità
ti devo postare il mio libretto universitario?
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.
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.
Hai rinunciato alle prestazioni anche usando il C, potevi farlo in assembler
Questa è una provocazione solo per dire che la tua affermazione è un po' troppo forte e non sempre vera ma dualmente neanche sempre falsa.
Ci sono contesti in cui C/C++ sono più veloci (ed in alcuni casi molto più veloci), ma in genere le prestazioni dei 2 linguaggi (C++ vs Java) sono molto simili tra loro con casi non troppo rari in cui Java stesso è di gran lunga più veloce.
Se il programmatore C++ non sa perfettamente quello che fa e non conosce bene le opzioni del proprio compilatore, non mi stupirei che la versione Java nel tempo (il JIT interviene sempre più pesantemente più il programma continua a girare ed a fare le sue operazioni) diventi più veloce dell'equivalente C++
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".