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 - infoQuindi lasciamo perdere il discorso di quello che chiedono le sw house, che hanno pretese irrealistiche.
Meglio scendere con i piedi per terra.
Per quanto i linguaggi siano generalisti ognuno è più adatto per svolgere certi tipi di compiti, non sono direttamente comparabili.
Aggiungo, andiamo verso Natale, fate i buoni.
il righello
quando la gente comincia a tirar fuori il righello per misurarselo, io posto sempre questo link: http://shootout.alioth.debian.org/scegliete l'architettura (32 o 64 bit, mono o quad-core), scegliete un linguaggio e confrontatelo con gli altri.
ovvio che non vengono coperti tutti i possibili utilizzi, ma serve a rendere un'idea, e con numeri alla mano.
buona lettura!
Non ho mai seguito il progetto Open JDK ma mi pare di capire che vengano solo utilizzati componenti open-source, quindi le funzionalità dovrebbero essere le stesse del JDK ufficiale, eventualmente con differenti prestazioni.
Se XCode non supporterà più Java, tuttavia, il gioco varrà poco la candela secondo me. Al di la del riutilizzo delle librerie, è anche comodo utilizzare le funzionalità specifiche per OS X che ti permettono, ad esempio, di utilizzare i menù tipici del Mac. Oltretutto, XCode crea dei pacchetti che mascherano completamente la struttura in cartelle del programma, racchiudendo tutto nell'icona(/cartella) che rappresenta il programma.
Se così fosse, si potrebbero ancora utilizzare programmi scritti in Java per OS X, ma perderebbero parecchio "appeal" secondo me.
Il Mac Store non accetta programmi Java: capisco questa scelta di Apple, i programmi sono più facili da controllare e verificare se rimangono nell'ambito dell'Objective-C studiato solo per OS X. Io non credo sia solo un problema di controllo sull'utente finale o sugli sviluppatori, è anche una questione di qualità su strumenti di sviluppo, procedure di deploy e nuove caratteristiche del linguaggio. Per il resto, ho sempre saputo che Apple è un mondo chiuso, con pregi e difetti.
Io rimango affezionato a Java, che ho studiato all'università, dopo il C. Se la mentalità non è cambiata di molto, credo che C# non entrerà mai nella università italiane, perché anche se esistono ambienti aperti come il progetto Mono, scegliere C# vuol dire legarsi di fatto a Microsoft, mentre nelle facoltà di informatica tengono molto all'open source. C si studia per capire soprattutto i puntatori
Come se Java fosse un buon linguaggio per chi e' legato all'opensource. Fino a due anni fa nemmeno esisteva una JVM completamente open. E la storia recente (dalla guerra legale contro Google all'abbandono di OpenSolaris) pone seri dubbi su quanto Oracle sia amichevole verso la comunita' opensource.
Pensa però al risparmio per una università: ambienti di sviluppo gratuiti, SDK gratuito, documentazione in grande quantità e spesso di ottima qualità, il tutto disponibile su ogni sistema operativo.
Va beh c'è poco da vantarsi o essere fieri, questo dimostra solo uno stato di "povertà" e quindi l'incapacità delle università italiane di ottenere i fondi per l’acquisto dei materiali necessari, perché altre motivazioni non ci sono. Almeno in america, e non solo, utilizzano il fatto che java sia open source per fare diversi studi sul funzionamento interno da mostrare durante le lezioni, in italia al massimo fanno vedere una volta la classe string senza approfondirla. Senza contare che per le università le licenze sono molto più economiche soprattutto adesso che microsoft ha rilanciato alla grande academic alliance e quindi non ci sono scusanti che tengano.
Ribadisco quanto detto, in italia c’è un’ECCESSIVA e ingiustificata mentalità pro java, trovi tante persone alieniate dai loro professori che difendono a spada tratta java anche negando le evidenzie. Comunque per concludere quello che ha già detto un collega sopra, ogni linguaggio ha un suo ambito applicativo, java ha il suo e c/c++ ha il suo. Semmai sarebbe "più"corretto confrontare java con c# e altri appartenenti a quella categoria di linguaggio, perché se si continua così finirà che qualcuno tirerà in ballo assembly. Ma va beh di per sé un programmatore che cerca di trovare un linguaggio assoluto dimostra di conseguenza di essere un mediocre programmatore, visto che ogni linguaggio ha il suo campo, state sicuri che in certi contesti ci sono altri linguaggi nettamente più adatti di c/c++, java, c#, ecc…..
Però mi pare che qui non si stava dicendo che Java va bene per tutto ma lo si stava difendendo verso critiche in un ambiente ben preciso dove invece in teoria sembrerebbe sia in grado di dire la sua (almeno secondo alcuni) e dove C++ non è necessariamente nel suo campo ideale e quindi per forza immensamente meglio.
Quindi più che di mediocre programmatore si dovrebbe parlare di mediocrità del tuo commento iniziale.
Quindi più che di mediocre programmatore si dovrebbe parlare di mediocrità del tuo commento iniziale.
Non mi pare proprio, c'è gente che ha detto di tutto per cercare di affermare che ormai java non ha niente in meno rispetto a c/c++ nel campo della performance e questa è una prova evidente dell'incompetenza come analista, programmatore, ingegnere, ecc....
lascio una loro citazione: "java ha molti pregi, come essere multipiattaforma, ma le prestazioni non sono senz'altro uno dei suoi punti di forza"
Però è anche vero che secondo alcune fonti linkate non ha tanto di meno sul lato performance, ma sembra che oscilli in media tra 1.5x e 3x più lento.
Quindi dove ho davvero necessità di spingere al max (ma quel punto ti fai anche parti in assembler) o dove le risorse sono troppo limitate ed anche un 1.5x più lento (o l'uso di 10MB di ram in più
Altrimenti va benissimo Java perché farlo in C++ è facile che:
[LIST]
[*]Mi costa molte più ore uomo perché è più facile fare errori e quindi ci vorrà più tempo prima di aver un prodotto veramente stabile (sopratutto se fatto da sviluppatori normali e non da gods of development)
[*]Mi costa più ore perché c'è (forse) un parco sw già pronto in Java più vasto di quello in C++ e quindi in C++ devo perdere tempo a reinventare la ruota.
[*]Mi costa probabilmente più soldi per ora, perché i programmatori davvero abili in C++ sicuramente non si svendono, e quelli entry level in C++ è facile che mi facciano un sw che gira peggio dell'equivalente Java
[/LIST]
Quindi alla fine (nei casi in cui Java o altro va bene) una società con i soldi di sviluppo che risparmia (o con i soldi dei maggiori incassi dovuti all'arrivare magari un mese prima sul mercato con il proprio prodotto) si compra HW che va al doppio e compensa le deficienze di Java vs C++ e probabilmente avanzando anche dei soldi.
E senza contare che questo gap di prestazione è molto calato negli anni, quindi non è anche escluso che le JVM che ci saranno nei prossimi anni siano in grado di pareggiare sempre di più.
Esempio Java 7 dicono che sarà 2 volte più veloce su alcune librerie del framework (ora non ricordo su cosa).
Prendi il codice binario (bytecode) del tuo software oggi e lo esegui (domani) sulla Jvm7 e magari il tuo 2.5x più lento del C++ si riduce solo a 1.5x.
Senza cambiare una riga di codice e senza ricompilare nulla (nessun sviluppatore necessario e non devi neanche possedere i sorgenti dell'applicativo).
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".