Il rapporto tra Java e i sistemi operativi per dispositivi mobili non attraversa certo il momento migliore. Nonostante piattaforme come GetJar sembrino non conoscere crisi, Oracle è in polemica con entrambi i principali distributori di OS per smartphone di ultima generazione (almeno, stando ai dati di vendita). Il problema con Google è noto, tanto che non varrebbe la pena aggiornare ai dettagli dell’ultimissima ora.
È meno popolare, ma altrettanto importante lo scontro con Apple. Il caso è scoppiato con l’ultimo keynote di Steve Jobs: con una serie di dichiarazioni, dapprima per nulla esplicite, è emerso che Java non sarà presente nel futuro di Mac OS X. Ciò significa essenzialmente che tutte le applicazioni distribuite via App Store dovranno escludere il linguaggio, che è stato deprecato un po’ come avvenuto con Adobe Flash.
Se ne sono occupati anche i colleghi di Melablog.it: Apple polemizza sull’aggiornamento di Java. Ne avevamo parlato proprio su queste pagine, poiché la roadmap di JDK7/8 ha subito delle alterazioni recenti. Secondo Steve Jobs, Java di Oracle sarebbe sempre in ritardo di una versione. James Gosling, padre del linguaggio, ha smentito citando l’esempio di IBM e HP. Intanto, un trojan affligge OS X a causa di Java.
Via | Ars Technica
Vendicatore
29 ott 2010 - 09:39 - #1L’annuncio riguardante Java non significa quello che la gente pensa.
Molto più semplicemente: Osx si è allineato a quello che già fanno gli altri OS sul mercato (Microsoft e Linux), ovvero considerare la JVM un applicazione esterna e non mantenuta dagli sviluppatori del sistema operativo.
Cosa significa? Che Oracle svilupperà la JVM direttamente, così come già accade negli altri OS.
L’ha ribadito anche Jobs rispondendo ad una mail di uno sviluppatore Java preoccupato: quello attuale non era il modo migliore di lavorare, in quanto le due aziende hanno roadmap diverse sul rilascio di patch e nuove versioni… quindi ci si trovava sempre a dove inseguire l’ultima JVM.
Riguardo l’AppStore: inanzitutto per OSX non esiste ancora, in secondo luogo anche in quello attuale (iPod/Pad/Phone) non potevi usare java, in terza battuta l’AppStore sarà solo un modo aggiuntivo di distribuire applicazioni su Lion (e non l’unico).
Secondo me si stà facendo molto rumore per nulla…
Simosimosimo
29 ott 2010 - 10:42 - #2@Vendicatore: grazie per la spiegazione, devo dire che dal solo articolo mi ero fatto un’idea sbagliata!
Franchino Franchetto
29 ott 2010 - 12:29 - #3Grazie per l’ennesimo chiarimento dopo la solita disinformazione.
Andrea R
29 ott 2010 - 13:00 - #4@Vendicatore
secondo te una applicazione non gratuita può stare sia dentro l’app store che fuori?
Magari a due prezzi diversi, uno inclusivo di tassa apple e uno no?
Io non credo proprio. L’app store sarà una scelta obbligata per chi voglia comprare certe applicazioni. Magari non all’inizio, ma in tempi stretti.
Si accordano sviluppatori e apple sullo stare in app store o meno, il cliente subisce la scelta.
L’app store non è un modo “in più” di distribuire le applicazioni, purtroppo.
Kim Allamandola
29 ott 2010 - 13:06 - #5Considero Apple come un’azienda dannosa per l’informatica producendo lock-in e
spazzatura, al pari di Microsoft e in parti diverse di altre. Tuttavia sono
d’accordo con Jobs nel criticare sia flash che java.
Sono tecnologie diffusissime, e a mio modo di vedere assurde. Il flash è bucato
e pesante oltre ad essere nelle mani di una sola azienda *closed*; il Java è un
linguaggio la cui complessità è grossomodo pari al C++, è più pulito certo, ma
è anche meno performante.
Certo oggi non vi sono alternative complete al flash (html5 è indietro) né al
java (ha n-mila librerie che ruby (ror) o python non hanno) ma questo vuol dire
che è il caso di *costruire* strumenti equivalenti potenziando quelli che già
esistono e/o scrivendoli come si deve.
@Vendicatore
giusta precisazione :-) però la linea della Apple mi sembra chiara: non ci
facciamo più n patch alla jvm in casa vuoi perché costa e non ha molto senso
ma sopratutto perché *non* vogliamo java tra i piedi!
DevURandom
29 ott 2010 - 13:27 - #6Kim: Java grossomodo ha le prestazioni c++ utilizzando compilazione JIT e risparmiandoci la gestione della memoria e l’ereditarieta’ multipla e’ decisamente meno complesso di c++…
In my opinion appena oracle accellera’ lo sviluppo di Java7 e 8 ne vedremo delle belle!
Kim Allamandola
29 ott 2010 - 13:52 - #7@DevURandom
Dissento sulle performance: il jit dà un incremento di prestazioni limitato,
e neppure sempre, in più per quanto si siano fatti passi da gigante un sw java,
time alla mano, performa meno di uno *scritto bene* in C++. In teoria Java è
più pulito ma in pratica se guardi un software java “medio” dal piccolo
giocattolino per il terziario a IBM Porcal^H^H^Htal server passando per
Eclipse, per non parlare di JDeveloper vedi che se non è proprio scritto coi
piedi è nel 99% dei casi un bloat mostruoso di codice.
Sull’ereditarietà multipla bé non puoi fare il “diamante” ma con le interfacce
è come se avessero fatto l’ereditarietà multipla un po’ storpiata ma pursempre
tale :-)
IMO con Oracle, il team OpenJDK che se ne va, IBM che si appoggia loro ecc ci
sarà moooooolto casino: OpenJDK non può nulla contro java “ufficiale” nel
settore j2ee ma con j2ee in mano ad Oracle trovo *prioritario* starne alla
larga… Sarò un po’ sognatore ma spero sempre che java muoia come morì il
modula da cui deriva e venga soppiantato da un Python e/o Ruby e/o Perl (6?)
cresciuti, senza la lentezza nell’utf8 del Ruby ecc :-) Questo è un futuro che
vedo valido, possibile e tecnicamente bello…
Vendicatore
29 ott 2010 - 14:24 - #8@4: li starà molto alle scelte dei singoli sviluppatori, ma di sicuro sarà difficile trovare la stessa applicazione sia dentro che fuori (a meno che non sia gratuita).
Pubblicando l’applicazione sullo store si fa una scelta molto precisa: sacrificare parte del guadagno in favore di una maggiore visibilità nel caso l’applicazione abbia successo.
Di sicuro ci saranno molti sviluppatori Mac-only che sceglieranno lo store… solo per il fatto che è estremamente facile vendere tantissime copie di un applicazione potenzialmente inutile a 1$…
JaKaiser
29 ott 2010 - 14:34 - #9> giusta precisazione :-) però la linea della Apple mi sembra chiara: non ci facciamo più n patch alla jvm in casa vuoi perché costa e non ha molto senso ma sopratutto perché *non* vogliamo java tra i piedi!
Kim, questa è una supposizione. Mac OS X è stato il primo (e unico!) OS a venire fornito per anni con una JVM integrata. Lamentarsi che ora non ci sia più è ridicolo, anche perché le applicazioni client Java le contiamo sulle dita di due mani. Semplicemente, alla Apple dicono di non riuscire più a starci dietro. Per maggiori info:
http://thejhead.blogspot.com/2010/10/goslings-reply.html
PS: ti trovo sempre, eh? :D
guiodic
29 ott 2010 - 15:52 - #10confrontare java a c++ non ha senso, visto che il bytecode java è eseguibile ovunque mentre il compilato c++ ovviamente no. Non capisco davvero come si faccia a fare confronti del genere. Semmai puoi confrontare java con c# e .net.
Comunque lamentarsi con Sun/Oracle per gli aggiornamenti di Java è un po’ ridicolo visto che è Apple a non aggiornare il “suo” java, non certo il contrario!
JaKaiser
29 ott 2010 - 18:29 - #11@guidoic
> Comunque lamentarsi con Sun/Oracle per gli aggiornamenti di Java è un po’ ridicolo visto che è Apple a non aggiornare il “suo” java, non certo il contrario!
Infatti quel che dicono è che non riescono a starci dietro e che non vale la pena continuare a lavorare indipendentemente, visto che ora Java è sotto la supervisione di Oracle e provvede a fornire rilasci più frequenti.
PD
29 ott 2010 - 19:44 - #12Nessuno più vuole applicazioni desktop in java, e nessuno più vuole applet sulle pagine web (da tempo immemorabile ormai.)
Ormai java è relegato a due tipologie di programmi: applicazioni lato server (jsp) e applicazioni professionali specifiche (sviluppo, appunto, di programmi java ed eventualmente pianificazione uml.)
Le cose non sono destinate a cambiare, a meno che Oracle non tiri fuori una magia dal suo cilindro, cosa che non è interessata a fare.
Jobs non ha fatto altro che prendere atto di tutto ciò.
darkat
30 ott 2010 - 01:11 - #13@Kim Allamandola: però tu non tieni presenti i 2 punti fondamentali per cui java è stato creato, prima di tutto il poterlo eseguire su multipiattaforma, e secondo per essere più facile da imparare rispetto al C++. Tu dici che un programma scritto “bene” in c++ è ovviamente più prestazionale di uno scritto in java, ma è proprio questo il punto, scrivere “bene” un programma in c++ ad oggi non è una cosa così semplice come lo è in java, è molto più facile fare una schifezza di codice in C++ che in java…quest’ultimo inoltre offre una debugging nettamente più veloce rispetto a quello del c++, dove per trovare un singolo e ridicolo bug ci si può mettere anche una vita. Quindi paragonare i linguaggi attraverso le prestazioni è fuoriluogo, java non ha mai promesso di essere il linguaggio più veloce ne tanto meno di superare le performance di c++. i suoi obiettivi sono ben altri.
Kim Allamandola
30 ott 2010 - 10:41 - #14@JaKaiser #9
> Kim, questa è una supposizione.
Vero :-) ma basata su un po’ di news e ratio! E si, sono un po’ loquace in
questi giorni :D
> Mac OS X è stato il primo (e unico!) OS a venire fornito per anni con una
> JVM integrata
Non direi… AiX da eoni ha la sua, Solaris idem. Se dici tra Windows e OSX
si solo OSX ha la sua jvm, come ha una sua versione di python che fa meno
cose del python ufficiale… Sono scelte che ritengo “egocentriche” che a
parte rompere i marroni agli sviluppatori e/o cercare di creare lock-in anche
con sw non proprio …
@guiodic 10
Confronto java a C++ perché, nel settore desktop e workstation, si usa java
per applicazioni standalone che possono benissimo essere fatte i C++ con lo
stesso impegno di tempo/costi. Purtroppo la massa delle code-monkey ha un
background pseudo-accademico dove “inizi” col C, passi al C++ (in senso
eufemistico dato che si mischia C/C++ senz’altro fare che non porcate) da li
hai un bivio: php “perché è simile al C” (?!) e il resto java. Non si
conosce altro. Ricordo ancora un prof di reti che per un esame del III anno
dove c’era da “analizzare” un file cap, compito fatto con tcpdump e gnuplot
wrappando il tutto in perl mi disse “fallo in C/C++, massimo java che il
perl e tutti questi affari non li conosco”. Purtroppo aziende di ex-successo
come Microsoft han formato una massa di ignoranti che oramai sono in un
mucchio di posti commerciali ma anche tecnici e vivono nel loro barbaro e
privato mondo.
@PD #12
completamente d’accordo!
@darkat #13
Java è fatto per essere multipiattaforma, vero, ci riesce? Non credo proprio.
La applicazioni java che possano andare senza modifiche si Windows, OSX, AiX,
Solaris, GNU/Linux, HP-UX senza modifiche si contano sulle dita di una mano
sola; la maggior parte vuole quella jvm, di quella versione, su quel sistema
operativo (no, senza tirare in ballo JNI).
In teoria l’idea di java era quello di cui ancora si parla oggi: non avere
differenza tra un’app desktop classica ed una web; avere delle applicazioni su
un server che vengono scaricate solo per le parti necessarie dall’utente
finale (i .class di cui hai bisogno). Era una visione futuristica che non è
stata molto creduta e successivamente riciclata per altri compiti.
Di nuovo in *teoria* java è più pulito, ma in pratica prendi le source di una
qualsiasi app java da Eclipse a Uni10 e dimmi se è pulita: le app java scritte
bene si contano sulle dita di una mano e coincidono con quelle realmente
multipiattaforma. In *pratica* sia Java che C++ (ed anche php) sono linguaggi
che *non* vengono usati per scrivere codice pulito. Java doveva essere una
rivoluzione Sun ma non ha funzionato tecnicamente è stato un “successo”
commerciale, un progetto rivoluzionario mal guidato dal management che voleva
un’altra cosa; oggi ha senso IMO parlare di Python, Ruby, Perl ecc java come
C++ sono linguaggi che, vuoi per il sempre minor livello culturale degli
sviluppatori, vuoi per la loro evoluzione e per l’evoluzione dell’hw, sono in
grado di assolvere la maggior parte dei compiti ad un costo anni luce più
basso.
Se solo fai caso ad Ubuntu tutte le innovazioni di Canonical da bazaar al
software-center, ad awn, a pezzi di gnome sono in python, appspot è in python,
python è usato come colla nella maggior parte dei software scientifici ecc.
Ruby con rails stà bruciando tappe molto in fretta, perl nonostante la 6
attesa da anni continua ad essere usato in un mucchio di campi ecc. Sono
linguaggi facili e flessibili, ancora non completi come il java (j2ee) ma in
regolare crescita mentre C++ e Java oscillano intorno ad una linea piatta…
Ps scusate il lungo post :-)
francescoagati
30 ott 2010 - 13:28 - #15sulla vm machine java attualmente girano un sacco di linguaggi molto interessanti. All’estero linguaggi come clojure, scala, groovy e jruby stanno avendo un interesse sempre maggiore. (provate a fare delle ricerche su clojure in tweeter per vedere quanti tweet ci sono). Poi stanno nascendo linguaggi sperimentali nuovi come mirah e seph che meritano molta attenzione. Peccato che qui in Italia siamo sempre indietro coi tempo e magari inizieremo a mettere mano lavorativamente a queste meraviglie tra 10 anni, arrivando sempre per ultimi
darkat
30 ott 2010 - 14:03 - #16@Kim Allamandola: beh si sono abbastanza d’accordo su tutto il discorso, sopratutto quello su python, continuo però a pensare che anche se gli sviluppatori combinano “pasticci” con java, combinano molti più pasticci con il c++…parlo sempre dello stesso livello di sviluppatori ovviamente
Paul_
02 nov 2010 - 17:55 - #17Java ormai è diventato il COBOL del 2010.
Confrontate le righe di codice necessarie per fare delle banalissima operazioni (come leggere un file riga per riga) con altri linguaggi di alto livello come C# o Python :-)