Newsgroup: it.comp.java
Titolo: Riflessioni su java e sua utilità

Premetto che questo non vuole essere un flame o un tentativo di flame
ma solamente un dubbio che mi è sorto in questo periodo.
Facendola breve mi sono avventurato con degli amici nello sviluppo di
un gioco web-based stile ogame o travian però leggermente più
complesso a livello di gestione di eserciti, classi e simili.
L'idea iniziale è stata subito quella di utilizzare java + mysql per
la creazione di un piccolo server di gioco che si preoccupa di tutte le
elaborazioni come combattimenti, gestione costruzioni e altro. Per la
parte client speravo di potermi rivolgere a java ma li mi sono
bloccato! Tra JSF, Struts, Spring, volendo farlo anche in Ajax magari
guardare il DWR ma c'è veramente tantissima roba e sinceramente un po'
di confusione me la sono fatta sinceramente.
Finora ho sempre programmato in java ma non applicazioni web, sempre
progettini per l'università e poco altro. Per lavoro sviluppo in php
ma finora non si è mai trattato di grosso siti o di grosse
web-application quindi php faceva, e fa tutt'ora bene il suo lavoro ma
si tratta solamente di qualche query al DB e visualizzazione di liste
di risultati, niente a che vedere con una web application complessa
come potrebbe essere un gioco di questo tipo.
Sicuramente qui tra di voi ci sarà gente che sviluppa web-application
"complesse" in java e saprà darmi qualche dritta, anche un lascia
perdere java, meglio usare altro è ben accetto.
D'altro canto leggendo su molti blog (JRoller per esempio, ma anche
TherServerSide) ci sono molti sviluppatori java che si stanno spostando
su Ruby, Python o altri linguaggi che dicono riescono a semplificare lo
sviluppo di web application rispetto ad utilizzare java e tutti i suoi
framework esistenti.
A voi la palla dunque :)
grazie per le risposte.
ciao
Rex

 A voi la palla dunque :)
Se adottare una tecnica ti complica il problema anzichè semplificarlo
vuol dire che c'è qualcosa di sbagliato. E di solito lo sbaglio
consiste nell'adottare una tecnica senza sentirne un reale bisogno.
Spring, Struts, Hibernate, JSF, sono framework o tecniche che
introducono un certo livello di complessità all'architettura del
progetto: la prima valutazione da fare è se il progetto ci guadagna,
la seconda (non meno importante) è se non ci rimette lo sviluppo. Se
si vuole essere produttivi e arrivare in fondo ai progetti bisogna
sempre adottare tecniche che il gruppo di lavoro conosce.
Nel dubbio, quindi, è meglio se lavori in PHP.

per continuare in php non ci sono problemi, solo ho paura che la
complessità del progetto mi costringa a dover mollare tutto a metà e
riscrivere perchè mi ritrovo ad un punto in cui non posso andare
avanti in php e dover riscrivere tutto in java.

Rex ha scritto:
  > A voi la palla dunque :)
mi associo alla risposta che ti ha dato Vincent.
per applicazioni web con php ti consiglio di dare un'occhiata a
http://seagull.phpkitchen.com/
oppure
http://wasp.sourceforge.net/content/


di confusione me la sono fatta sinceramente.
volevo solo precisare che "farlo in AJAX" come dici tu non significa fare 
una scelta escludendo i framework che hai citato, visto che per quanto mi 
riguarda AJAX non e' altro che codice javascript.

 guardare il DWR ma c'č veramente tantissima roba e sinceramente un po'
Stai dicendo che siccome ci sono troppi strumenti preferisci usare il 
php che ne ha uno solo?
Certo che se devi decidere quale tecnologia usare (e se usarla, come 
dice Vincent) del tempo lo devi impiegare nella scelta.
Se ti interessa, io utilizzo delle semplici jsp senza aggiuntivi (struts 
jsf ecc) anche per un progetto piuttosto complicato, come strato di 
visualizzazione; dato che tutto o quasi il codice č fuori dalle jsp, 
secondo il mio modestissimo parere andare a usare un "framework" solo 
per non scrivere 3 righe di codice dentro una jsp mi sembra un tantino 
eccessivo.
In ogni caso, ti converrebbe, secondo me, fare cosě:
delineare meglio quello che si vuole ottenere (visualizzazione, 
interazione con l'utente ecc., mi basta l'html e poco altro o devo 
riempire le pagine di javascript, voglio che appena l'utente pensi 
qualcosa il sistema reagisca ecc. )
Dopo decidi cosa usare, certamente anche con la "nostra" collaborazione. 
Come hai visto ci sono nmila alternative, ma non bisogna scoraggiarsi :-)
bye
DKano
PS E per la parte server?

si si infatti intendevo farlo in ajax e quindi dare un occhio anche a
dwr che è in java + javascript, quindi tutto il lato server della cosa
va fatto in java.
Diciamo che lo spirito del post era anche votato a capire e fare un po'
di chiarezza su quale di questi framework è valido e soprattutto
quando è conveniente usarli (tralasciando l'ovvia conoscenza di java
che uno deve avere). Mi spiego meglio: perchè devo sbattermi la testa
su JSF (per esempio) per fare una webapp quando magari in python o php
ci metto la metà del tempo perchè lo sviluppo è più semplice?
Chiaro che qui non pretendo che qualcuno mi dica "Certo che è meglio
python" alla fine è un NG java, però da completo ignorante su questo
aspetto di java cercavo di chiarirmi le idee.
ciao
Rex

per la parte server è un modulo in java che gira come demone e viene
connesso ai vari client tramite socket oppure tramite webservice.

aspetto di java cercavo di chiarirmi le idee.
Ad esempio se decidi di usare JSF ci perderai molto tempo prima di poter 
essere produttivo, come invece lo saresti stato usando magari le JSP, oppure 
PHP. Ma se hai intenzione di riutizilizzare la conoscenza che acquisisci 
magari ti puo' andar bene investire un attimo di tempo adesso.

Ok ho preso una decisione :P
Ringrazio tutti quelli che mi hanno risposto in questo post, alla fine
ho deciso di restare con java per vari motivi tra cui:
1) Maggior potenza del linguaggio rispetto a php
2) Possibilità di acquisire conoscenza che sicuramente mi servirà in
futuro
Per il framework ho optato per Spring, qualcuno lo ha già utilizzato?
Impressioni, bestemmie o pregi rilevati nell'utilizzo?
Grazie ancora a tutti, ci sentiamo presto per aiuto :P

 
per iniziare con spring ti consiglio
http://www.springframework.org/docs/MVC-step-by-step
seguilo e ti farai subito un idea

una piccola nota su mysql: a me risulta che i driver jdbc per mysql 
siano rilasciati sotto due licenze: gpl e commerciale. se non intendi
rilasciare i sorgenti del tuo gioco, allora devi comprare la versione
commerciale.
in alternativa puoi usare altri db opensource con driver jdbc non gpl
(ad esempio postgresql oppure firebird).