Newsgroup: it.scienza.informatica
Titolo: Quale futuro per Java?

Ho letto l'intervista a Scot Wingo su Computer Programming di Aprile e sono
rimasto un po' deluso dalle sue considerazioni su Java.
In pratica profetizza che la spunterà la Microsoft rendendolo un'alternativa al
VB per programmare sotto Win, con perdita totale della portabilità.
Le motivazioni che porta sono valide (in particolare l'ultima, ovvero: Bill
Gates) ma voglio *sperare* che la sua visione sia distorta dal fatto di essere
un esperto di MFC (e quindi di vivere di Win).
Voi cosa ne pensate?
Io, nella mia assoluta ignoranza del mondo reale, e non avendo mai sviluppato
progetti consistenti in Java, pensavo ad un futuro roseo per i seguenti motivi:
1) Già ora non produce codice tanto più inefficiente di VB o Delphi, pur avendo
una espressività maggiore ed essendo altrettanto semplice.
2) E' direttamente multipiattaforma..
3) E' un linguaggio ben standardizzato e privo di dialetti.
4) Assomiglia molto al C++ e quindi è gradito da chi è cresciuto su quest'ultimo
ed è una buona tappa introduttiva per i neofiti (sono sicuro che, imparando
prima Java, si passerebbe al C++ con una visione della OOP molto migliore
rispetto a chi inizia con il C).
5) L'interfaccia grafica è ben strutturata, abbastanza lineare e ben concepita.
6) Il supporto del multi-threading è molto semplice ed intuitivo (almeno per chi
ha masticato un po' di informatica...)
C'è da aggiungere che, se proprio si vogliono prestazioni più spinte, si può
sempre compilare il bytecode per generare codice per la propria macchina - e
questo non andrebbe contro al cross-porting visto che sarebbe semplicemente un
passo della installazione del soft. una volta che ogni sistema sia dotato di
sistema del proprio compilatore.
Inoltre le JVM hanno ancora largo margine di sviluppo. Ad esempio pare che con
la nuova JVM di Solaris Java vada quasi come il C++ (che, ricordo, *non* è il C;
ovvero i metodi virtual saranno comodi, ma rallentano e occupano...)
In conclusione io vedevo la prossima generazione di SO dotata di sistema di una
buona JVM (OS/2 la ha già da tempo) ed immaginavo una buona fetta di
applicazioni scritte in Java - eventualmente corredate di qualche metodo nativo
scritto in C++ puro e facilemente ricompilabile sui vari sistemi.
Sto sognando? A voi l'ardua sentenza!
ciao, debrando.

Bel post.
Java è facile da programmare, già questa affermazione inganna: è facile da
programmare per chi già sa programmare, ma per chi come me viene dal vecchio BASIC
2.0 (non ridete, dai) con qualche infarinatura di assembler per il C=64, è
un'impresa titanica, al punto da ripiegare su Javascript (che ho trovato facile dopo
il mazzo fatto su Java). Difficoltà a parte il successo di un OS Java sarà decretato
se verranno rispettati i seguenti parametri:
1) Compatibilità col software precedente
2) Stabilità del sistema (di nuovo: non ridete)
3) Grande quantità di software disponibile.
Se almeno due di questi parametri vengono rispettati comunque Java potrà
sopravvivere.
Billy "Cancelli" può sparare tutte le ZAZACET che vuole, è un uomo(?) libero in
definitiva, ma se prova ad imporre uno standard non sta a lui decretarne il
successo, bensì al mercato (quindi anche a noi), ricordate cosa è successo ad
"Internet secondo Bill".
Salve atque Vale
Nettuno
(please remove zizac.imei to reply)



Chissa forse questo succederà con Raphsody.

...
:Ho letto l'intervista a Scot Wingo su Computer Programming di Aprile e sono
:rimasto un po' deluso dalle sue considerazioni su Java.
:In pratica profetizza che la spunterà la Microsoft rendendolo
un'alternativa al
:VB per programmare sotto Win, con perdita totale della portabilità.
ben venga una soluzione di questo tipo: avremmo finalmente applicazioni Java
realmente usabili.
Scherzi a parte il discorso di Wingo, per quanto opinabile e' reale...anche
se manca un piccolo dettaglio: il tutto vale per applicazioni rivolte al
consumer o piu' in generale agli utenti di personal computer.
Java in realtá potra' cambiare le carte in tavola nelle aziende !! {non solo
per i network computer}.
:Le motivazioni che porta sono valide (in particolare l'ultima, ovvero: Bill
:Gates) ma voglio *sperare* che la sua visione sia distorta dal fatto di
essere
:un esperto di MFC (e quindi di vivere di Win).
:Voi cosa ne pensate?
penso che per applicazioni end-user la scelta Windows sia un must!
Ma per le applicazioni mission-critical, sistemi embedded & C, esistono
molte altre soluzioni: Java é una, SmallTalk ed Eiffel se pur nicchie non
sono da scartare.
::2) E' direttamente multipiattaforma..
con tutti gli svantaggi che questo comporta: multipiattaforma vuol dire
inusabile.
A parte immagini che camminano, pagine web che si muovono e altri gadget,
java (da un punto di vista end-user) non ha offerto molto.
Le applicazioni grosse che ho visto (distribuite e in preview) si sono
rivelate inutilizzabili per motivi di performance.
:3) E' un linguaggio ben standardizzato e privo di dialetti.
non esiste ancora uno standard del linguaggio ! Cio' comporta delle
incompatibilitá tra le varie JVM presenti attualmente. {in altre parole la
tua applicazione gira  a casa tua, ma la porti su un altro sistema e puó non
funzionare correttamente}.
:6) Il supporto del multi-threading è molto semplice ed intuitivo (almeno
per chi
:ha masticato un po' di informatica...)
sicuramente ...
:C'è da aggiungere che, se proprio si vogliono prestazioni più spinte, si
può
:sempre compilare il bytecode per generare codice per la propria macchina -
e
:questo non andrebbe contro al cross-porting visto che sarebbe semplicemente
un
:passo della installazione del soft. una volta che ogni sistema sia dotato
di
:sistema del proprio compilatore.
ci ho pensato anche io 3 anni fa....
ma ancora non ho visto in giro cose del genere...
Saluti
PC

 secondo Bill".
Ed io ti ricordo cosa è successo al povero OS/2 warp, che quando è uscito supportava
Win3.11, aveva un ottimo multitasking (non mi ha mai costretto ad un Reset, nemmeno
tentando di proposito), nella shell MsDos ti lasciava 630k di ram base liberi, ed aveva
un WPS amorevole.
...vi ho rubato troppo tempo, bye
debrando

 programmare per chi già sa programmare, ma per chi come me viene dal
vecchio BASIC
Io festeggio questo anno il 20-esimo anno di programmazione, avendo iniziato
a 14 anni (su una macchina con memoria a nuclei di ferrite!).
Ho accumulato una discreta esperienza su una valanga di linguaggi e sistemi e
per motivi di lavoro (ricerca) ho dovuto confrontarmi anche con Java.
Non mi sento di dire che e' un linguaggio facile. Cioe', il linguaggio in 
se' (variabili, construtti, iteratori ecc.) e' facile, ma se uno vuol farne
un uso non elementare le cose cambiano. Ho sul tavolo i volumi 1 e 2 della 
seconda edizione delle Java Class Libraries. Insieme totalizzano circa 3600
pagine ! E' chiaro che uno non deve usarle tutte, ma dare una occhiata per 
sapere se c'e' qualcosa che puo' tornare utile e' gia' di per se' un'impresa
titanica.
Non parliamo poi delle varie incompatibilita' tra versione 1.0x e 1.1x, e il 
fatto che un programma legittimo mi girava su una piattaforma e mi 
dava un bellissimo "unknown error" su un'altra....
Insomma, dovendo fare spesso dei piccoli programmi matematici
che fanno tanti conti e sputano fuori dei numeri, senza interazioni con il
bastardissimo utente (che sarei io), allora scelgo il C.
(Che fra l'altro posso far girare in modo DOS sul PC di casa compilandolo con
djgpp e in istituto su una Sun con gcc.)
Se devo fare un programma di calcolo distribuito su internet 
con interfacce grafiche varie
scelgo (a malincuore perche' mi devo leggere > 1000 pagine di roba) Java, e
mi aspetto di dover perdere piu' tempo a trovare le varie incompatibilita'
che non a sviluppare il programma.
La banalita' finale e' che bisogna scegliere il linguaggio anche in funzione
di cio' che uno deve farci....
Ciao.Giovanni.
------------------------------------------------------------
Il mondo e' bello perche' e' avariato.   Petrolini.

 ma ancora non ho visto in giro cose del genere...
Beh... io 3 anni fa non sapevo neppure che esistesse Java... comunque mi
sembrava una soluzione pratica e non difficoltosa...Forse vivo troppo tra le
nuvole...
by, debrando

...
Personalmente Java mi incuriosisce molto, ma per ora non ho ancora avuto
occasione di usarlo seriamente.
Una riflessione che mi interesserebbe approfondire e' la seguente:
le Socket.
E' vero, come dicono, che l'uso delle socket in Java e' stato migliorato per
i segg. due fattori: 1) sono state "innalzate" all'Application layer
(riferendosi al livello ISO-OSI) mentre, ad es., le WinSock (1.1 e 2.0)
utilizzate largamente nel VC++ sono delle API che si interpongono fra il
Session ed il Transport layer; 2) gli strumenti di comunicazione (socket
appunto) sono stati migliorati dal momento che e' un linguaggio orientato al
network computing, e quindi si propone come linguaggio particolarmente
indicato per questo genere di applicazioni?
Chi ne sa' a riguardo ed ha gia' maturato esperienza tale da poterla
confrontare con altri ambienti di sviluppo, si faccia avanti.
Massimiliano

Piccole osservazioni su Java:
1) Il linguaggio é relativamente nuovo, ha raggiunto una discreta maturitá
solo negli ultimi mesi ed é per questo che vi sono ancora dei problemi di
compatibilitá con diverse verioni della JVM.
2) Le API sono cresciute rapidamente (era un linguaggio pensato per
lavatrici ed oggetti del genere ;-) vista la crescente domanda di classi
specifiche. Comunque é probabile che questo trend abbia un calo nei prossimi
mesi. (Che altro possono inventarsi???)
3) Unico neo: essendo interpretato ed usufruento solo di JIT per un serio
speedup, le applicazioni cpu-intensive ne risultano risentire. Chiaramente
se le applicazioni hanno a che vedere con una qualsiasi rete, il discorso
cambia (un generico multithreaded server non ne risente troppo).
Profezia: visto che in tutti i progetti per moderni compilatori si stanno
scrivendo front-end per Java,  visto che l'essere strongly-typed e il non
avere puntatori aritmetici porta a migliori ottimizzazioni del codice
nativo, penso che Java potrá essere il nuovo linguaggio di adozione per
supercalcolatori al posto del fortran. Inoltre sará sicuramente piú
efficiente ed usabile del C++. Chiaramente il C non puó essere sostituito (e
come li scriviamo i vari driver?? in VB o assembler :-( )
PS: Se c'e' qualcuno che usa Java solo per le applet (é meglio JavaScript)
allora sta usando una Ferrari F40 in un parcheggio con il freno tirato!!!
Alex

