Newsgroup: it.comp.java
Titolo: Che senso ha Java?

Ciao ragazzi,
io sono un programmatore C++ e VB che vorrebbe imparare Java poiche' molto
richiesto sul mercato del lavoro, elegante, e avente la gestione della
memoria automatica. Putroppo pero' cercando un po' di informazioni in giro
mi viene davvero da chiedermi "Che senso ha Java?". Non voglio generare
flame o essere considerato un troll, voglio chiedere a coloro che sono
esperti e magari ci campano con Java. 
Io sviluppo in Windows e a me sembra che Java sia:
1) lento da morire
2) non ci sia un IDE - RAD serio per Windows (tipo Visual Studio .NET per
intenderci)
3) I gestionali son fatti in VB, le applicazioni critiche in asm,c,c++...
che posto trova il Java?
Se volessi sviluppare per il Web, ci sono 
ASP.NET
 e PHP4 (tra poco 5) che
sono molto piu' leggeri ed efficienti rispetto alle servlet (un vero
mattone).
Sul fronte web service ammetto che e' una bella disputa con i web service
net.
Quello che vi chiedo allora e', a parte web service e qualche
applicazioncina che deve essere portabile, quale e' il senso di Java? Io
ho bisogno di incoraggiamento prima di iniziare a perdere mesi di studio
sopra ad un linguaggio, per cui non vorrei mettermi a studiare un
linguaggio/piattaforma che sembra lento, privo di ambiente di sviluppo
come si deve, e per nulla usato per sviluppo di grosse applicazioni
desktop.
Grazie dei contributi.
Ciao,
Lo.
Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
I robottini della NASA su marte hanno cuore che gira su run-time java
-)))))))))

Ciao, Lorenzo!
Il giorno 26/06/2004 alle ore 20:11 hai scritto:
 LS> Non voglio generare flame o essere considerato un troll
Me lo auguro...
 LS> Io sviluppo in Windows e a me sembra che Java sia:
E gia' parti male: sviluppi in Windows. Una delle piu' grandi potenzialita'
di Java e' quella di essere un ambiente veramente multipiattaforma. Scrivi
la tua applicazione su Windows e funzionera' senza modifiche anche su Linux,
Solaris, MacOS-X e svariate altre piattaforme *nix.
 LS> 1) lento da morire
Con i processori da oltre 3GHz non credo che questo sia veramente un
problema.
 LS> 2) non ci sia un IDE - RAD serio per Windows (tipo Visual Studio .NET
 LS> per intenderci)
Non so dove hai cercato, ma il Borland JBuilder nella versione Enterprise
mette a disposizione tutto quello che serve e anche di piu'. A occhio e
croce mi sembra che le possibilita' siano identiche a quelle che mette a
disposizione 
VS.NET
 (anche se non posso esprimermi piu' di tanto visto che
personalmente detesto i RAD).
 LS> 3) I gestionali son fatti in VB, le applicazioni critiche in
 LS> asm,c,c++... che posto trova il Java?
Qualsiasi programma puo' essere realizzato in Java (vabbe' magari non i
videogiochi con grafica 3D piu' avanzati...), basta solo mettersi sotto a
farli. I gestionali sono molto adatti per via della spiccata tendenza al
client-server e al multipiattaforma (pensa solo a fare un gestionale in VB
per un'azienda che oltre a Windows ha anche dei Mac).
 LS> Se volessi sviluppare per il Web, ci sono 
ASP.NET
 e PHP4 (tra poco 5)
 LS> che sono molto piu' leggeri ed efficienti rispetto alle servlet (un
 LS> vero mattone).
Java e' solo una delle tante alternative. Poi che 
ASP.NET
 sia piu' efficente
di Java e' comunque tutto da dimostrare.
 LS> Sul fronte web service ammetto che e' una bella disputa con i web
 LS> service net.
Su questo punto ho trovato molto semplice realizzare il webservice in Java
(sempre con JBuilder) ma decisamente complicato realizzare il client. Di
contro i client in .NET si realizzano in un attimo (per i webservice non ho
ancora provato seriamente).
 LS> Quello che vi chiedo allora e', a parte web service e qualche
 LS> applicazioncina che deve essere portabile, quale e' il senso di Java?
Non e' bello rispondere con un'altra domanda, pero': mi spieghi perche'
ritieni che con Java si realizzino solo "applicazioncine" ? Java purtroppo
e' un linguaggio che e' stato lungamente sottovalutato per il fatto che
inizialmente veniva utilizzato solo per le animazioncine nelle pagine web,
prima dell'avvento di flash. Da allora di strada ne ha fatta parecchia,
basta vedere ad esempio l'impegno di IBM (con Eclipse) e di moltissime altre
aziende.
 LS> Io ho bisogno di incoraggiamento prima di iniziare a perdere mesi di
 LS> studio sopra ad un linguaggio, per cui non vorrei mettermi a studiare
 LS> un linguaggio/piattaforma che sembra lento, privo di ambiente di
 LS> sviluppo come si deve, e per nulla usato per sviluppo di grosse
 LS> applicazioni desktop.
Innanzitutto smetti di pensare che non sia usato per grosse applicazioni
perche' non e' affatto vero (non confondere le applicazioni da "scaffale"
con quelle che girano nelle aziende). Poi ti quoto:
 LS> io sono un programmatore C++ e VB che vorrebbe imparare Java poiche'
 LS> molto richiesto sul mercato del lavoro, elegante, e avente la gestione
Se e' molto richiesto sul mercato del lavoro vale la pena impararlo.
 LS> Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
Cosa intendi per applicativi seri ?
Bye
-- 
Try not. Do, or do not. There is no try.
http://www.maccasoft.com

 Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
Jboss.

 Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
SAP Enterprise Portal, SAP non e' l' ultimo arrivato e il fatto che 
abbia deciso di integrare un j2EE server nei suoi application server ti 
dovrebbe far pensare al senso di Java.
Per gli altri tuoi dubbi , un giro su google

Avendo letto le altre risposte, do la mia in "aggiunta"
- Java è un linguaggio bello, permette di creare programmi solidi e
formalmente buoni. Mal che vada ti trovi con un "NullPointerException" e
l'applicazione cade, ma non si porta dietro tutto il sistema operativo,
cosa che in ambienti enterprise è di vitale importanza, anche a monte dei
costi di una applicazione più lenta e pesante.
- Java, sebbene di proprietà della Sun, è praticamente aperto. Okay, non
hai accesso al sorgente ma chi ne ha bisogno? L'importante è che ho totale
libertà di scelta del sistema operativo e dell'ambiente di sviluppo. Non ho
oneri di licenza per il processo di sviluppo e posso tranquillamente
portare il mio codice dove voglio.
- Non ci sono applicazioni "a pacchetto" scritte in Java perché mal si
presta a questo tipo di ambiente
  - è facilmente decompilabile
  - è difficile fare un "installer" (che deve per sicurezza includere la
JRE...)
  - per sua natura si integra difficilmente con la shell del sistema
operativo ospite.
- Se Java è poco presente sul desktop dell'utente medio-piccolo, ti
garantisco che le più grosse aziende stanno migrando a soluzioni 100% Java:
banche, supermercati, assicurazioni...
- Java ingloba tutto in maniera "nativa": i servizi di rete, la GUI
grafica, le librerie matematiche, grafiche, 3D, audio, riconoscimento
vocale, nonché XML e derivati, accesso a database e altre fonti di dati.
Gestisce poi ottimamente processi paralleli e meccanismi di accesso a
risorse condivise
:-)
Alex
-- 
___________________________________________________________
a p bertolini
(
www.webwarrior.org
)

 farli.
Scusa Marco... riguardo ai giochi 3d, posso avere il piacere di
contraddirti?
http://www.wurmonline.com/
è ancora in versione alpha, ma promette molto bene...
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
  ---  
http://xenu.freewinds.cx
(per rispondere personalmente leva IlDitoDalCulo)

 hai accesso al sorgente ma chi ne ha bisogno?
(Scusate la nota non del tutto pertinente)
NE HO BISOGNO IO!!!!!!
Io che ho installato giusto oggi linux-ppc su un vecchio mac per 
scoprire che _non_esiste_ (= che non sono riuscito a trovare) una 
versione di JDK 1.4 per quella piattaforma!
Qualcuno sa di qualcosa di meglio che JDK 1.3 per linux ppc?
(se a qualcuno interessasse, può trovare jdk1.3 per linux-ppc qui: 
ftp://ftp.tux.org/pub/java/JDK-1.3.1/ppc/FCS-02c/
)

 versione di JDK 1.4 per quella piattaforma!
Accidenti, gli amici di 
blackdown.org
 hanno perso lo smalto!? Che
fregatura! Mi pare di aver capito che il progetto blackdown sia stato
assorbito da Sun, col vantaggio che ora il JDK di Linux è "ufficiale" ma
con la conseguente perdita della piattaforma PowerPC. Il tuo Mac è troppo
vecchio per OSX, vero?
Alex.


 vecchio per OSX, vero?
Pare di sì :(
Ma 
blackdown.org
 è/era un progetto open source?
Comunque mi son letto un po' di news, e c'è stato un po' di fermento sul 
fronte open source per java: pareva che sun volesse rilasciare i 
sorgenti di JVM e JDK - poi purtroppo la stessa Sun ha smentito.
http://www.nwfusion.com/news/2004/0604sunnode.html
Quanto a me, non mi resta (mi sa) che aspettare che qualche evengelista 
e CEO di sun rinsaviscano, oppure che qualcuno (magari apache?) si 
decida ad iniziare una JVM indipendendente :(
Ah, su freshmeat ho trovato un progetto (kava o kawa - non ricordo) che 
riguardava lo sviluppo di una JVM open source: purtroppo pare 
abbandonato da qualche anno... :(
Giorgio

 sorgenti di JVM e JDK - poi purtroppo la stessa Sun ha smentito.
C'è parecchia pressione da parte di IBM perché Sun liberi il codice.
La mia interpretazione è che IBM è convinta che la Sun sparisca nei
prossimi 5-10 anni e che, nel farlo, svenda il sorgente a qualche azienda
meno condiscente (Microsoft?).
Renderlo open-source permetterebbe (finalmente!) ad IBM e soci di integrare
la JVM nel sistema operativo (Linux?), dandole un bel balzo in termini di
velocità e flessibilità.
Il rovescio della medaglia è che case diverse potrebbero decidere di
sviluppare evoluzioni di java semi-proprietarie...


 Sapreste dirmi i nomi di qualche applicativo serio sviluppato in Java.
La pubblica amministrazione in piemonte nel campo dell'agricoltura può
bastare, come inizio? Applicativo mandato in produzione a gennaio, primo
modulo di sette, lavoro assicurato (salvo decisioni di "rimpatrio" da
parte della mia ditta nativa) per altri 3-4 anni almeno. Si prevede di
migrare tutta la pubblica amministrazione in piemonte su applicativi web
basati su java.
Poi ci sono gli stessi ambienti di sviluppo per java, ad essere scritti in
java. Borland JBuilder, Eclipse, Sun One Studio, sono scritti in java.
E se cerchi un pò su internet, troverai tanta altra roba. Fai anche
attenzioni agli url che visiti: se vedi .jsp, lì dietro ci sta giava.
Raffaele

 mattone).
???????????????????
Inviato da 
www.mynewsgate.net

 sviluppare evoluzioni di java semi-proprietarie...
MA IBM (e anche BEA e probabilmente qualcun'altro) non realizzano
gia' delle JVM loro?

 ditta.
Occhio che se ti legge qualcuno di it.lavoro.informatica inizia a
ululare... :D

 gia' delle JVM loro?
Non lo so, ho ricevuto notizie contrastanti nel tempo quindi forse le
realizzavano ma ora non più. Oppure viceversa.
Cmq se uno crea la sua JVM, alla fine però deve farci girare le "core"
classes di Sun? Secondo me è qui il motivo della lobby...
Alex


 classes di Sun? Secondo me è qui il motivo della lobby...
ma non lo so, mi pare che ci sia anche un consorzio java che decide
cosa mettere cosa non mettere nella jvm...
cque che io sappia le fanno ancora quelle jvm, ibm la distribuisce
x es. scaricando WebSphere (ma si dovrebbe poter scaricare anche
"manualmente") mentre x Bea Rockit non saprei...
Ricordo degli articoli su Eclipse in cui si diceva come usare
un'altra jvm (tipo quella IBM)

 mi viene davvero da chiedermi "Che senso ha Java?".
In assoluto, e' un linguaggio di programmazione + un modello di esecuzione, 
con pro e contro. Se ha senso o no dipende se nel caso specifico i pro sono 
o meno piu' rilevanti dei contro.
Pragmaticamente, che mi pare quel che conti per te: cause tempo di arrivo, 
marketing, hype, politica, eccetera, Java e' oggidi' uno dei 
linguaggi/ambienti preferenziali per applicazioni enterprise: da portali a 
integrazione. Il motivo e' che piu' un'azienda e' grande, piu' ha una 
varieta' di sistemi e piattaforme dove la portabilita' diventa essenziale.
Molte "applicazioni critiche", per qualche tempo fatte in C++, oggidi' si 
fanno in Java.
Ovvio che per fare il gestionale del fioraio (o anche della piccola banca) 
VB va benissimo.
Per quanto riguarda ambienti, performance etc ti hanno gia' risposto. 

 raffaele castagno ha scritto:


uh...perchè?
Raffaele
-- 
Raffaele Castagno


 uh...perchč?
xche' il fatto che una societa' ti mandi dopo un corso relativamente
breve a far consulenza in una ditta esterna non e' indice di grande
serieta', visto che 3 giorni dopo aver fatto un corso non puoi
aver maturato questa grande esperienza no?
Discorso diverso e' se ti mandano "fresco di formazione" insieme a un 
gruppo di altre persone con una certa esperienza... (magari questo
e' il caso, tu non hai specificato)
Di storie tipo "stagista mandato/a allo sbando direttamente dal cliente"
se ne leggono svariate su quel NG e ovviamente i partecipanti non 
apprezzano, soprattutto quando le aziende mandano i propri consulenti
spacciandoli come "esperti" quando invece esperti non sono e non san
neanche bene cosa andare a fare (ovviamente e giustamente aggiungerei)
PS quanto scritto *non* e' x mettere in dubbio la tua capacita',
non conoscendoti, non posso sapere :), e' semplicemente una 
considerazione generale

 considerazione generale
Ahhh, capito.
Comunque, non sono stato preciso. Ero infatti con altri due sviluppatori,
uno senior, e uno junior (ma solo perchè al momento dell'"assunzione"
dall'altra ditta non era ancora laureato).
Ad ogni modo, una volta nell'altra ditta abbiamo fatto un altro mese e
mezzo di formazione, prima di passare al lavoro vero e proprio.
Per il resto, no problem! Le mie conoscenze sono tutt'altro che
complete!!!!


 impieghi cinque volte di più rispetto al c, se ci guadagni in sicurezza?
Questo francamente è un osservazione sbagliata e forviante.
Se il server impiegasse 3 secondi invece di 0.2 non ci sarebbe tempo di 
latenza che tenga, sarebbe un disastro completo. Il fatto è che le cose 
non stanno per nulla così: un application server, indipendentemente dal 
linguaggio/tecnologia usato, ha la peculiarità di ottimizzare la 
distribuzione del codice altrimenti non avrebbe senso. Accorgimenti che 
garantiscono fra l'altro anche la scalabilità. Da questo punto di vista, 
la differenza che può esserci fra un application e l'altro non ha certo 
questi rapporti di performance, mentre il rapporto fra le performance di 
un application server java e la semplice esecuzione di un programma C 
compilato ad eseguibile è a netto favore del primo.
Il fatto è che quando hai N accessi diventa molto più incisivo avere un 
sistema di caching, un pool di istanze, un pool di connessioni, etc... 
piuttosto di ridurre (per esempio) le istruzioni-macchina per fare un 
ciclo for o un addizione.

 cosa mettere cosa non mettere nella jvm...
Ti riferisci al JCP (
http://jcp.org
) Java Community Process.
Diversamente da come può sembrare, non è AFFATTO un'iniziativa open 
source - Sun sta perseguendo la strada degli "open standards", in cui si 
decidono interfacce standard, aperte, e "free" (nel senso che nessuno mi 
vieta di implementarle), ma NON C'E' condivisione di codice sorgente.
Come esempio di "open standard" si può prendere servlet/jsp: sono 
interfacce (non prendetemi alla lettera quando dico interfacce: intendo 
nel senso di boundary) aperte che mi permettono di sviluppare 
applicazioni di cui posso poi fare il deploy su bea piuttosto che jrun 
piuttosto che jboss, su linux piuttosto che su solaris - però non è 
l'open standard che mi da la libertà di far girare le mie applicazioni 
dove voglio: sono alcuni progetti open source (tomcat) che mi danno 
questa libertà - e non mi riferisco solo al fatto che tomcat è gratis.
Lo stesso discorso vale per l'API "core" di java: è sicuramente una cosa 
"aperta" (posso scarocarmi il sorgente), ma non è open source, non è 
software libero: non posso modificarlo (migliorarlo) e ridistribuirlo - 
non posso nemmeno ridistribuirlo senza modifiche. (E questo senza 
entrare nel merito della JVM - di cui non ho nemmeno i sorgenti e di 
cui, quindi, non posso fare il porting su linux-ppc).
Penso sia un grosso rischio per la comunità (e non intendo soltanto 
quella open source - intendo la comunità dell'IT in generale) confondere 
una filosofia aperta con la filosofia open source - le separa un abisso 
- non lasciamoci ingannare: sviluppando in un'ambiente aperto abbiamo 
tutti assaporato alcuni dei vantaggi del software libero, ma non è tutto 
qui - non deve essere solo "panem et circenses".
Cosa intendo con rischio? Immaginate che Java diventi il windows del 
futuro - uno standard de facto, un monopolista della tecnologia - e 
immaginate chi produrrà JVM:
chi pensate produrrebbe una JVM per uno unix di SGI? - SGI
chi pensate produrrebbe una JVM per AIX? - IBM
chi per Solaris? - Sun
chi per Windows? - Microsoft
(ricordate, stiamo immaginando una situazione molto diversa da quella 
attuale)
chi pensate lo farebbe per linux?
Già adesso Apple produce il suo JDK per dare java a MacOS...
Ognuno porta java sulle piattaforme che lo interessano, con la 
differenza che Sun, oltre che per Solaris, fornisce JVM per windows e 
linux (che, guardacaso, sono i due sistemi operativi da tenere "sotto 
controllo").
E nè microsoft nè la comunità open source ne hanno di proprie.
Morale: ci serve una JVM open source, se vogliamo essere liberi.
	Giorgio
PS: Accipicchia! - ho trasformato questo post inizialmente in-topic in 
un comizio a favore dell'open source... non vogliatemene, ma non sono 
riuscito a tenermi! :p

 Questo francamente è un osservazione sbagliata e forviante.
Erano numeri a caso, per sottolineare che su un application server ci sono
altri fattori più importanti della semplice velocità del codice, come
appunto il bilanciamento, il caching, e via di seguito.
Raffaele
-- 
Raffaele Castagno


 riuscito a tenermi! :p
Accidenti mi sono infervorato! Oh, ti candidi alle prossime?

 vieta di implementarle), ma NON C'E' condivisione di codice sorgente.
io rispondevo alla persona che diceva se le varie JVM dovevano far
girare delle classi "core" di SUN.
A me pareva invece che il consorzio decidesse cosa mettere o non mettere
in una JVM e poi spettasse al singolo "implementor" inserire del codice
con quelle funzionalita'. Non mi pare che il tuo discorso neghi questo
fatto, no ? :)

Ciao, Giorgio!
Il giorno 29/06/2004 alle ore 02:37 hai scritto:
 GG> E nè microsoft nè la comunità open source ne hanno di proprie.
 GG> Morale: ci serve una JVM open source, se vogliamo essere liberi.
Vorrei solo farti notare che le specifiche della JVM, nonche' tutta la
documentazione sul formato dei class file, del bytecode, ecc. e' disponibile
gratuitamente a chiunque. E' vero che, a differenza di quanto accade per
.NET, le specifiche non sono ratificate da un "ente supremo", ma sono pur
sempre disponibili e quindi chiunque puo' leggersele e scriversi una propria
JVM senza alcun problema, cosi' come e' stato fatto con Mono.
Quindi se vuoi realizzare la tua JVM per PPC puoi farla benissimo e
rilasciarla alla comunita' opensource.
Bye
-- 
Hard to see, the Dark Side is.
http://www.maccasoft.com

 rilasciarla alla comunita' opensource.
public class JVM{
	public static void main(String args[]){
		//...
^_________^

 Accidenti mi sono infervorato! Oh, ti candidi alle prossime?
LOL!
Te lo immagini poi quanto difficile dev'essere convivere coi politici?
Poi io non sopporto i fanatici del cinema italiano... :)

Giorgio Gallo <giorg...@RMVoverlord.it> wrote in news:cbsaos$c27$1
@
grillo.cs.interbusiness.it
:

Piu' probabilmente:
int main(int argc, char *argv[], char *envp[]) {
 JVM jvm;
 return jvm.run();
}
:)

 questa libertà - e non mi riferisco solo al fatto che tomcat è gratis.
Cosa intendi? Se hai le specfiche, e queste sono sufficientemente chiare, 
puoi costruire un'implementazione che gira dove vuoi.
O intendi un'implementazione *gia fatta*? Speriamo di no, altrimenti 
andiamo tutti a fare i panettieri.. ;)
Interessanti al riguardo sono un paio di cose di Gosling, in particolare
http://www.computerworld.com/developmenttopics/development/java/story/0,108
01,82109,00.html