Newsgroup: it.scienza.informatica
Titolo: OSs: Quanto ci costa la sconfitta di Java?

Qualche giorno fa sono stato a una conferenza stampa dove una casa di
software annunciava a sorpresa che non avrebbe più continuato a
sviluppare alcuni software per MacOS, suscitando lo sgomento in sala.
Mi sono venute alcune riflessioni, che sottopogno al vostro giudizio
competente:
- Java non sarà stato la perfezione ma oggi che si parla tando di
cross-media e cross-platform ci ritroviamo ancora i limiti del porting
- gli emulatori non sembrano aver fatto furore (compreso Lindows)
- il risultato è che ancora oggi per avere un software su più
piattaforme bisogna che chi lo fa riscriva il codice (almeno in
parte)...facendo pagare di più il software stesso
- inoltre ciò comporta un ingessamento dei sistemi operativi: tutti
continueranno ad avere Windows, perché se creo un sistema operativo
nuovo non ci saranno programmi che ci girano sopra, di converso quindi
se nasce il miglior sistema operativo del mondo nessuno lo potrebbe
usare e il peggior sistema operativo del mondo se ha tutti i programmi
sarà usato da quasi tutti.
Ciao,
Gianni

 Gianni
Ciao,
Nids


Puoi qualificare meglio? 
Io per sviluppare uso Eclipse, scritto in java (lo uso indifferentemente su Windows o
Linux/Debian), e il software a lavoro lo produciamo al 90% su piattaforma Windows per poi
farlo girare (senza ovviamente alcun tipo di ricompilazione) su piattaforme Sun / Linux
(dipende dal progetto/cliente).
Quindi, qual'e' il punto?
Ciao,
    Bruno.
-- 
| Bruno Bossola 
| A Java Software Engineer :-)
| 
http://digilander.iol.it/bbossola
| Membro del JUG Torino - 
http://www.jugtorino.it

C# promette di ovviare in parte a questi problemi, chi vivra' vedra'.
Io non amo Java e non ho mai fatto nulla per nasconderlo (nemmeno
quando postavo regolarmente su it.comp.java :) ma non vedo la
differenza tra il passaggio dei tipi di Java e quello di C#...se si
esclude il boxing e l'unboxing (che aggiunge overhead e che comunque
anche Java avrà) non vedo la differenza...se ti interessa leggi
qui...c'è stato un piccolo battibecco sulla terminologia sul blog di
Brad Adams (uno degli sviluppatori della CLS di .NET):
http://blogs.gotdotnet.com/BradA/categoryview.aspx/DesignGuidelines
Vedi i primi due commenti
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com
rhy...@NOSPAMmyself.com

Quindi, qual'e' il punto?
Sarà strano ma ti dò pienamente ragione :P Java potrà avere tutti i
mali di questo mondo ma perlomeno è cross-platform :)


Gianni Rubagotti wrote:

IMHO Java non e' sconfitto, ma semplicemente come MS .Net non e' stato
progettato per certe cose a cui *poi* e' stato "adattato".
Nessuno dei due ambienti e' stato pensato per certe applicazioni
e per certi utilizzi.
Sempre IMHO sarebbe ora che qualcuno iniziasse a considerare lo sviluppo
di un "ambiente portabile" veramente open source che tragga insegnamento
dagli errori passati e possa sfruttare le innovazioni avvenute nel frattempo.
Es. 1: Invece di utilizzare un "bytecode interpretabile" sarebbe piu
        conveniente un formato basato su una rappresentazione tipo SafeTSA
        oppure LLVM e "compilare all'installazione" (con un check all'avvio
        dell'applicazione che attivi la ricompilazione quando necessario)
        oppure "crosscompilare per il target" (utile su PDA ed altra roba con
        risorse minimali) in un formato piu adatto al target specifico (codice
        nativo oppure un formato interpretato ad hoc).
        Microsoft gia prevede la possibilita di "annotare" il codice 
MS.IL
        con una rappresentazione SSA ma e' una cosa "aggiunta dopo".
Es. 2: Avere la possibilita di gestire direttamente l'allocazione dei dati
        (magari all'interno di una virtual machine configurabile con vari
        livelli di sicurezza) non costa poi molto e non crea problemi
        se si possono inibire selettivamente le funzioni "pericolose".
Es. 3: Serve un modello di base semplice e "pulito" e la possibilita
        per l'applicazione di specificare quali funzionalita sono
        necessarie e quali sono opzionali.
        Meglio ancora, la possibilita di un meccanismo di "post processing"
        a livello del linker in modo da eliminare le sezioni che gestiscono
        moduli opzionali non presenti sul target e di riconfigurare
        l'applicazione in base alle dimensioni dei tipi di dati sul target
        (tipo le #define ed #if del preprocessore di C/C++ ma
         "eseguite da linker").
Ecc. ecc.
La cosa paradossale e' che molte "idee interessanti" sono gia state
implementate e quindi non si tratterebbe di sviluppare tutto da zero.
Il GCC 3.x usa gia internamente una rappresentazione SSA
ed il progetto LLVM (al di fuori dello sviluppo "ufficiale" di GCC)
gli ha gia aggiunto un backend SSA compilabile JIT.
Per quel che riguarda i toolkit GUI e' un gran casino, quello
piu interessante sarebbe PicoGUI (peccato che sia ancora troppo "giovane")
seguito a ruota da GTK+ (non e' "semplice" come QT oppure wxWIndows
o FLTK, ma non e' legato come gli altri alla disponibilita
di un compilatore C++).
Ci sono poi innumerevoli altre librerie e tool "interessanti" ...
.... purtroppo manca la colla per legarli in modo coerente, modulare
*e* gestibile a piccoli passi incrementali. :-(
L. Micheletto

di un "ambiente portabile" veramente open source
Che mi dici di Python :) ?


> Il Mac e' gia' piu' noto ma ha dei prezzi non tipicamente invitanti.
Scusate se mi permetto di postare cosě senza essermi presentato, ma
premeva il fatto di dire che questi luoghi comuni ormai sono piů
obsoleti che mai. Il mac piů economico costa 900 euro ed ha una ottima
dotazione.
Ora non mi venite a dire che sotto casa avete il negozio pc che vende
scatolotti a 590 euro...perchč ce l'ho anche io (il negozio sotto casa)
e curiosando tra le caratteristiche meno note ho visto che č tutta
facciata: processori superveloci con cache degli anni 70 e motherboard
che dire patetiche č un complimento.
Se si acquista una cosa da 500 euro si ha una cosa da 500 euro. 900 euro
č una cifra adeguata e giusta per un computer, sia esso pc che mac...
per favore non portiamo avanti discorsi sull'alfabetizzazione
informatica quando si č ancorati a concetti ormai passati.
Grazie e scusate l'intervento.
Daniele

 (dipende dal progetto/cliente).
Questo significa che programmi come Microsoft Word o Adobe Premiere si
potrebbero programmare una volta e fare girare su più sistemi
operativi (magari solo con piccoli e poso costosi adattamenti)?
E' questo che mi chiedo.
Da non-tecnico sento dire che il nuovo software di Adobe, Premiere, è
specificamente scritto per sfruttare il microprocessore Intel avendo
quindi maggiore potenza.
Da consumatore sento anche dire che per la prima volta non ci sarà il
porting di Adobe Premiere su MacIntosh. Da quanto ho capito scrivere
il codice per adattarlo a MacOSX costerebbe troppo rispetto alle
vendite (e non ho difficoltà a credere che sia vero).
La mia ingenua (me ne scuso ma, ripeto, no nsono un tecnico) domanda
nasce da questo: è possibile un mondo dove compro un software (nel
senso di applicazioni di uso comune) e lo faccio girare dove mi pare?
E quindi non mi ritrovo appiedato dal fatto che quel software non
funziona più per quel sistema operativo (perché si passa da MAcOs 9 a
OSX, perché non lo fanno più per Mac, perché non lo fanno proprio per
Linux etc...)
E un mondo del genere non converrebbe di più a tutti?
Ciao,
Gianni


In teoria si, anzi e' fortemente auspicabile! Purtroppo, ho idea che ci vorra' ancora
parecchio tempo :-)


 Che mi dici di Python :) ?
Mettici una pietra sopra. Per la maggior parte delle cose è più penoso
del Java. Inoltre Java ha una struttura più completa ed atta a coprire
più campi di sviluppo (con librerie dedicata) rispetto al python.
dan

 Daniele
ciao,
Nids
ps: a me piacciono un sacco le architetture degli elaboratori e ritengo che
i Mac siano di gran lunga superiori agli x86 ma la Apple non ha mai avuto
una sezione marketing degna di questo nome al contrario di microsoft che ha
sempre venduto prodotti non all'altezza delle pubblicita' che facevano.
pps: leggi "Macintosh... La nuda verità" di Scott Kelby, direttore di una
nota rivista americana di grafica e MacProfeta, sul rapporto
MacFanatico/Apple. E' un libro divertente sulle difficolta' di un MacUtente
in un mondo di PCUtenti
ppps: linux, o qualsiasi Unix (come il mio amato Solaris), per farci un
server e' megio di windows ma come tu ben sai con windows server 2003
risparmi 5 cents di euro a transazione :)))))

 E un mondo del genere non converrebbe di più a tutti?
- Java non sfrutta tutte le API di sistema, per cui una integrazione
vera e proprio non c'e' mai... e dubito che mai sarà possibile...
d'altronde è una limitazione intrinseca del concetto su cui si basa
java.
- Java è abominevolmente lento. Possiamo stare qui a discutere per ore
ma alla fine i fatti parlano chiaro... anche su macchine di nuova
generazione le applicazioni java faticano. Mi fa ridere l'idea della Sun
di portare avanti il progetto delle Java3D per sviluppare giochi con il
loro linguaggio. Immagginatevi Quake in Java...
- Java è abominevolmente esoso. Anche qui non ci sono cose che reggono.
Il consumo delle applicazioni Java (anch'esso parzialmente intrinesco
nella natura interpretativa del linguaggio) è spaventoso rispetto alle
normali applicazioni c/c++.
Uno dei tool più usati nello sviluppo di applicazioni Java, il JBuilder
di Borland è scritto proprio in Java (mir iferisco alla versione 6... a
quanto ho sentito la cosa non si è più ripetuta). Provate ad usarlo. Vi
pentirete subito e tornerete al vostro vecchio tool c/c++...
Non c'e' speranza. Scordatevi di vedere un Premiere o un Photoshop in
Java. A meno che tu non abbia cos+ tanto tempo da buttare....e neanche
li'...vorrebbe dire essere masochisti persi.
Inoltre Java è stao da sempre ostacolato (vedi Microsoft) proprio per la
sua natura cross-platform. Avere un programma ovunque significa
diminuire di brutto la presenza del sistema operativo. A quel punto ogni
scelta sarebbe uguale all'altra... che vantaggi avrei? (si lo so che ci
sono altri aspetti da considerare, ma questo ha un peso abbastanza
grande da preoccupa la stessa microshit).
Spero di essere stato abbastanza chiaro
dan

 Gianni
ciao,
Nids
ps: io condivido le tue idee e sono un fermo sostenitore dell'Open Source e
dei linguaggi multipiattaforma (oltre a java ci sono anche PERL, Python
ecc..) ma la realta' e' quella che e': le aziende vogliono guadagnare, non
solo per arricchirsi in maniera smodata, ma anche per sfamare i
programmatori e le famiglie degli stessi
pps:anche se a volte ho l'impressione che lo facciano per arricchirsi in
maniera smodata :)

 Che mi dici di Python :) ?
e PERL no :) ?
il problema e' che l'ambiente e' open ma non sempre l'azienda vuole che il
prodotto lo sia.
ciao,
Nids

 Che mi dici di Python :) ?
Python e' "solo" un linguaggio con una "libreria standard" molto
grande e variegata.
Per quanto sia "interessante", per certe cose proprio non e' tagliato
(anche per questo piu che di linguaggio io parlavo di "ambiente").
L. Micheletto

più campi di sviluppo (con librerie dedicata) rispetto al python.
E dove le hai lette tutte queste belle stupidaggini ?
Non ce l'ho con te ma non sono per niente daccordo :)


e PERL no :) ?


e PERL no :) ?
No :)


risparmi 5 cents di euro a transazione :)))))
Questo spot deficiente secondo me viene mandato in onda, con target ke
va dal pensionato alla massaia, passando per i giovani imprenditori,
per alcuni motivi:
1) Per far credere alla gente che la New Economy sia ancora una cosa
su cui farci i milioni di dollari e, allo stesso tempo, continuare a
non far capire cosa sia nella realtà.
2) Evitare che i nuovi utenti, cioè quelli che non sanno cosa diavolo
possa essere una transazione, siano attirati dall'Open Source in
qualche modo, dando immagine di azienda forte e sana, l'unica che si
conosca.
3) Agli aspiranti sistemisti...che non sanno cosa significhi
"protocollo di rete", convincerli a prendere una certificazione
Microsoft, oltre a quella di Web Engineer del CEPU che hanno già,
quest'ultima molto più importante e costosa "ma qui in Italia la gente
non capisce nulla..."
Mi sa che ci siamo allontanati dal topic:p
Un'ultima cosa...sui server IBM ci gira ancora Linux?:)
-- 
Negli anni '60 avevamo bisogno della potenza di un C64 per mandare un uomo sulla luna.
Adesso abbiamo bisogno di un P4 per far girare XP e nemmeno nel migliore dei modi.
Forse qualcosa è andato storto...

 No :)
:''(
cattivo! :)

 risparmi 5 cents di euro a transazione :)))))
ahhahaha dovrebbe andare alla sai l'ultima l'ufficio marketing di
microsoft :) (pur ammettendo che ha lavorato bene...)
dan

 Non ce l'ho con te ma non sono per niente daccordo :)
Beh in questo caso potrei anche aver torto, per cui tutte le critiche
costruttive sono bene accette. Anche perchè l'argomento mi
incuriosisce... :)
dan

 sarà usato da quasi tutti.
Questo è vero per i sistemi operativi desktop. Windows abbiamo e windows ci
dobbiamo tenere, almeno nel breve e medio periodo.
Sul fronte dei server il cliente compra quello che gli sembra dare il
miglior ritorno sull'investimento
filippo

incuriosisce... :)
Per il resto...beh vieni su it.comp.lang.python :)


 minimi
Come non gli hai chiesto le specifiche prima?
Sono del parere che il linguaggio di programmazione universale esistera solamente quando
riusciro a parlare in italiano ed essere capito contemporaneamente da un
giapponese,un Inglese,francese ,e un aborigeno etc...
Penso anche un'altra cosa non c'č bisogno di un linguaggio universale
ma di uno embedded,con un'architettura come quella di java,o magari java
stesso!
Anche se il java non va sempre bene quando si tratta di web,quando si deve lavorare sul ferro
 della macchina come dico io:) preferisco il c++ inoltre dimenticate il
kylix certo il porting non č indolore e non lo si puo fare per tutti gli
SO ma č davvero bello per programmi aziendali lo preferirei.
Una precisazione su eclipse, Non č costruito interamente in java ma ha
parti in c per questo riesce ad essere cosi veloce ed efficente.
ciao ciao 
Marco


Se precisi, sii preciso.
Afaik l'unico pezzo che contenga porzioni (minime) di codice nativo che io conosca e' SWT,
il windowing toolkit usato da eclipse: la parte nativa e' semplicemente un wrapper intorno
ai widget del sistema operativo, that's all. E' tecnicamente la stessa soluzione che usa
la Java Virtual Machine con AWT, la libreria standard Java, solo che e' stata
reimplementata con una metafora meno OO ma piu' efficiente.


> Un'ultima cosa...sui server IBM ci gira ancora Linux?:)
Anche Java, negli xSeries la JVM e' implementata a livello di microcodice
-- 
Email address is protected by fee-based service.
Authorized senders will be white-listed.

Scusatemi ragazzi non ho precisato perche ho sbagliato il NG nello
rispondere.
Era una domanda fatta in una NG che ora non ricordo,forse webmaster o www
insomma di non programmatori,per questa ragione non ho approfondito i 
particolare come avete fatto voi,e solo ora mi sono reso conto (con mio
stupore) di aver sbagliato NG.
ciao ciao 
Marco