Newsgroup: it.lavoro.informatica
Titolo: Framework più richiesti

Salve ragazzi, stavo cercando un pň in giro, per sapere qual'č il framework 
piů richiesto in ambito lavorativo, in ambito java/j2ee. Secondo voi qual'č 
il piů richiesto, tra i seguenti framework, Bea, Struts, Cocoon, Websphere.
------------------
# Msn 
lello...@katamail.com
# Icq 84624356
# Yahoo ilpuntatore 

 Cocoon, Websphere.
Forse hai le idee un pò confuse.
WebSphere e Bea (immagino tu intenda WebLogic) sono degli Application 
Server.
Fra i framework, probabilmente, attualmente sul mercato è più richiesta la 
conoscenza di Struts.

 ha scritto nel messaggio 
news:43db6e2b$0$329$5fc...@news.tiscali.it...

Hai ragione ho le idee un pò confuse, per motivi di lavoro mi è stata 
richiesta la conoscenza di Struts e Bea, allora stavo cercando un pò di 
documentazione per capire meglio questi prodotti. Tu sapresti dirmi che 
differenza c'è tra un Application Server e un Framework? 

 differenza c'è tra un Application Server e un Framework? 
Scusa senza offesa, se non sai rispondere alla domanda che hai fatto aprendo
il thread e alla domanda qui sopra... come hai fatto ad avere una commessa su
cose che nemmeno conosci?
-- 
Lawrence - 
http://www.oluyede.org/blog
"Anyone can freely use whatever he wants but the light at the end
of the tunnel for most of his problems is Python"

 differenza c'è tra un Application Server e un Framework?
Un framework è un modo esotico per dire una "collezione" di classi
utili a un certo scopo. Si differenzia dall'application server perché
nn include un server HTTP. 
Correggetemi se sbaglio.
Lo

 differenza c'è tra un Application Server e un Framework?
Bastava semplicemente fare questo:
http://www.google.it/search?hl=it&q=cosa+%C3%A8+un+application+server&btnG=Cerca+con+Google&meta=
http://www.google.it/search?hl=it&q=cosa+%C3%A8+un+framework&btnG=Cerca&meta=


Welcome to Italy, terra di approssimazione e superficialita'. Poi ci
meravigliamo di vedere siti di aziende che sono nient'altro che scempi
e pugni negli occhi, tanto per fare un esempio.
-- 
Salvatore Iovene
http://talesfromfinland.blogspot.com

 nn include un server HTTP. 
No, aspetta.
Un framework è un  framework (banalizzando, ma per amore di semplicità 
va bene, l'idea dell'insieme di classi vhe hai dato tu può andare).
Un application server, lo dice il nome, è un qualcosa che fornisce un 
ambiente per far girare applicazioni.
Concettualmente son due cose ben differenti.
-- 
Ciao!
Luca


http://csvtosql.sf.net
Legge di Zymurgy sul Lavoro Volontario: La gente e' sempre disponibile per i
lavori gia' fatti.

 Hai ragione ho le idee un pò confuse, 
Senti, parliamoci chiaro; dire che hai le "idee confuse" è un eufemismo,
la verità è che non ne sai un tubo.
Sii onesto e digli che struts e bea tu non sai nemmeno cosa sono, se
vorranno prendere un sottojunior a sconto ti prenderanno lo stesso.


Infatti non ho potuto accettare l'offerta, perchè ovviamente non ero a 
conoscenza di questi strumenti, e proprio per questo ho deciso di studiarli, 
per così poter essere idoneo in futuro, a nuove richieste di lavoro, sotto 
questo aspetto. 

 ha scritto nel messaggio 
news:drg048$od6$1...@area.cu.mi.it...

Non mi sembra di aver detto che sono un esperto, anzi ho affermato l'esatto 
contrario, quindi non capisco tutti questi giudizi negativi, su chi ha 
ammesso di essere all'oscuro su questo argomento, e proprio per questo ha 
certato di saperne qualcosa di più, facendo qualche domanda. Come ho detto 
nel precedente post, non ho potuto rispondere a quell'offerta, proprio 
perchè non ne sapevo nulla di struts e bea
Dal modo di rispondere di molti, presuppongo che abbiate avuto una brutta 
settimana :-) 

 differenza c'č tra un Application Server e un Framework?
Welcome to Italy, terra di approssimazione e superficialita'. Poi ci
meravigliamo di vedere siti di aziende che sono nient'altro che scempi
e pugni negli occhi, tanto per fare un esempio.
Prima di dare sentenze, informati bene sulla situazione che guidichi... 

 questo aspetto. 
Studia cio` che ti piace finche` puoi, non rincorrere il trend del mercato o
peggio ancora di una azienda.


 ambiente per far girare applicazioni.
Che poi gireranno (nel caso) appoggiandosi ad un application server



Hai ragione, però bisogna seguire con attenzione anche le esigenze del 
mercato, per non trovarsi alla fine senza lavoro. A me è sempre piaciuto 
programmare in C/C++, ma purtroppo le opportunità di lavoro con questi 
linguaggi non sono molte, quindi per trovare lavoro è stato necessario 
studiare altri linguaggi. 

 settimana :-) 
No e` solo lo standard di questo NG. E` un posto aggressivo, sopravvivono solo
i migliori o quelli come Luc :P


 studiare altri linguaggi. 
Vero, pero` dipende da che spazio ti sai ritagliare. E` come l'universita`: si
iscrivono tutti a giurisprudenza perche` fa figo e poi si lamentano che sono
troppi e c'e` troppa concorrenza e quindi le aziende devono necessariamente
fare selezioni tra i top tra i migliori (raccomandazioni e gabole a
parte). Quindi su 100 che escono magari solo 20 finiscono a fare il lavoro che
sognavano o per cui hanno studiato. Prendi invece scienze dei materiali, da noi
pochissimi iscritti eppure c'e` una richiesta della madonna. Escono 20, assunti
20 anche se il loro livello di voti non e` over the top.
Idem per te, studia ciò che ti piace e non perche` fa figo. Il lavoro lo trovi
e poi se sei senza famiglia c'e` sempre l'estero.


 conoscenza di Struts.
Struts e' principalmente un pattern, e' anche un framwork, ma da pochissimi
servizi per renderlo degno di questo nome.
Oggi forse e' ancora il framework piu' diffuso lato front end, ma e'
letteralmente sotto assedio :
Spring / ruby on rail / Java Server faces
tutto il mondo delle 3P , Python, Perl , PHP
Tutti vogliono sosotituirlo causa anzianita'. Pero' la sua semplicita' che
e' il motivo per cui lo attaccano e' contemporaneamente la sua fortuna di
longevita'.
Per la cronaca oggi pomeriggio sto modificando la libreria Struts, per
aggiornarla ad alcune nuove tecnologie heheheheh :)
Se faccio un buon lavoro lo pubblico.
Nicola
 
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 longevita'.
Mi sa che non sai un piffero delle 3P o di Ruby perche` nessuno di loro si e`
ispirato a Struts o ne ha tenuto conto. Forse DHH ma di certo non gli altri. Si
attacca il linguaggio Java perche` legnoso, non i framework che tanto non
saranno flessibili come quelli basati su linguaggi dinamici.


 longevita'.
Penso che la critica principale sia che implementa l'MVC parecchio a
modo suo. E neanche così semplice.
D'altra parte l'MVC e un design pattern poco pattern e ognuno lo vede a
modo suo, io non lo condivido affatto.

 modo suo, io non lo condivido affatto.
Perche` mai?


 Perche` mai?
Perche e' Vincxen, passato dall'altra sponda , (.Net)  e non gli piacciono
piu' le donne
:))))))))))))))
N
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 saranno flessibili come quelli basati su linguaggi dinamici.
Hai ragione
Sul fronte Sun Struts e' assediato da
-) Spring
-) JSF
 
e su questo ne sono certo perche' ci lavoro
SUl fronte delle 3p ne so poco o senso che non li ho mai usati.
Ma ovunque trovo articoli/colleghi che dicono che si puo' buttare tutto il
mondo j2ee, front end e quindi compreso struts compreso per usare le 3p
non si puo' sapere tutto per esperienza diretta e anzi io sono per la
specializzazione, pero' quello che non si usa me lo leggo a livello di
architetture.
P.S. Il lavoro di sto pomeriggio su struts e' un capolavoro
se come sempre lo hanno gia' fatto in 10000 amen ( ma ne dubito ) e mi
varra' per i miei progetti e per studio
ma e' proprio carino. sono contentissimo :)))))


 Perche` mai?
Mi sono espresso da cani, stavo scrivendo mentre la mia compagna mi
pressava per uscire :-)
Non è vero (ovviamente) che non condivido l'MVC come sembra da quella
frase, semmai non sono fra quelli che lo riduce ad un design pattern (è
una discussione che ho avuto proprio di recente). Sul fatto che si debba
separare i tre componenti non ci piove sopra :) solo che chi lo vede
come un pattern potrebbe ritenere che Struts segue un disegno rigoroso e
corretto, cosa che IMHO non è affatto vera.

 piu' le donne
Beh, a parte che per me l'informatica resta un arcipelago di isole e di
sponde ne tocco diverse, ma ad essere precisi non pensavo nemmeno ad
Asp.Net (dove peraltro implemento comunque un MVC).

 corretto, cosa che IMHO non è affatto vera.
Ora mi piace di piu` come spiegazione :P
ps. di alla tua compagna di non disturbarti mentre scrivi sul NG hahaha


 peggio ancora di una azienda.
[...]
Se non li conosce non può sapere se gli piacciono o meno... :-)
E mi pare comunque una domanda legittima... mi sembra intelligente
cercare di capire cosa richiede il mercato - non è poi detto che uno
poi vada esattamente in quella direzione
Cordiali saluti
Marco

 mondo j2ee, front end e quindi compreso struts compreso per usare le 3p
Non ti curar di lor, ma guarda e passa... ;-)
Cordiali saluti
Marco

 poi vada esattamente in quella direzione
Io non ho mica detto che e` un'idiota, ho solo detto che e` deleterio
rincorrere il mercato basandosi sui numeri.



Concordo appieno. Il tuo e' un giusto dibattito sulla definizione di Pattern
Esistono pattern ad esempio per dare i nomi alle variabili o alle classi e
package che sono piuttosto rigorosi.
che ne so
it.fiat.contabilita.frontend.db.utils
it = nome stato
fiat = nome azienda
contabilita' = nome progetto
.....
E' un pattern abbastanza rigoroso.
Il pattern mvc dice che "sarebbe bello" avere la logica nel modeler, la
grafica nelle jsp, e il controllo nella servlet,
Poi sappiamo tutti che anche buoni programmatori scrivono codice ovunque,
basta pensare alle tld, al javascript, oa quello che volgiamo , e ogni tanto
mettono logica di presentazione negli action e quindi nel modeler eccetera.
Nei modeler spesso si fa controllo, in particolare multicanale, e invece
andrebbe messo nella servlet.


 e poi se sei senza famiglia c'e` sempre l'estero.
Peccato che anche all'estero c'e' poco lavoro per chi programma in Python
(jobserve ricerca con java 4360 lavori, python 163). Non condivido molto
il tuo discorso di non seguire il mercato. Studia cio' che ti piace
sicuramente, ma usa quello che ti viene richiesto (sempre che ci tieni a
lavorare ovvio, se lavori per hobby il discorso e' diverso). Poi comunque
non condivido i discorsi di fanatismo java contro python, unix contro
windows, ecc. ecc.. Ha sempre fregato gli informatici che avevano le
proprie idee su come doveva girare il mondo. Ma negli altri settori ti
risulta che e' cosi'? Metti ad esempio quello dei televisori. I
retroproiettori sono una buona tecnologia, economica e di buona qualita'.
Oggi pero' sono quasi in disuso. Ti risulta che il mondo delle televisioni
sia in rivoluzione per questo? No. Se ne fregano. Il commercio vuole
plasma/lcd, e noi quelli fac ciamo. In generale se una tecnologia si
afferma piu' di un'altra i motivi ci sono eccome, non e' solo una fregata
commerciale, il fatto che volendosi attaccare a tutti i possibili
paracaduti c'e' sempre un motivo teorico per cui x e' meglio di y. Peccato
che nel mondo commerciale i fattori da considerare sono migliaia e non
solo due o tre.


 ma e' proprio carino. sono contentissimo :)))))
Un buon lavoro può essere anche in Braifuck, alla fine dei conti :p
  ngw

 solo due o tre.
Certo, allora quando hai finito di considerarli tutti fammi un fischio per
quella tecnologia sara` gia` morta.


 lavoro per me :p
Il lavoro c'e' sempre per i migliori qualsiasi cosa facciano. Da quel poco
che  scrivi mi sembra che di competenze e di esperienze tu ne abbia di
buon livello su quello che fai. Purtroppo non tutti hanno ne' le stesse
capacita' ne' esperienze che hai tu per cui per loro vedo piu'
profittevole seguire le tendenze del mercato piuttosto che specializzarsi
in qualcosa che al momento e' poco richiesto (non entro nel merito del
fatto se sia giusto o meno). Poi, ovvio, se trovano un buon lavoro in
Python perche' no, anzi.. solo che seguire le tendenze del mercato non e'
un discorso cosi' sbagliato in generale, come sembrava stesse affermando
il tuo collega (credo).


 quella tecnologia sara` gia` morta.
Ovvio che come tutte le cose arrivera' una fine anche per questo. Ma per
il momento e' abbastanza lontana.


 il tuo collega (credo).
Io non intendevo dire che sia un errore aprioristicamente, dico solo che se
dovessi incominciare da zero, non farei una scelta basata sui numeri. Per
inciso son stato per un anno e mezzo nel mondo .NET e non tornerei indietro.


[cut]
non credo che si tratti di comparativi orientati alla validita' di una
tecnologia sull'altra, ma di una tecnologia ed il suo dominio di mercato,
con il quesito di come e perche' si determini tale dominio, anche e
sopratutto considerando motivi di fondazione ed evoluzione storica
imho, ritengo che Java - con tutto il rispetto che merita - stia preludendo
alla sua stessa obsolescenza perche' - anche - la sua estensione e'
determinata storicamente, ossia, quando apparve sul mercato era il mento in
cui ce n'era bisogno
la sua penetrazione di mercato nella sua pratica d'uso, e dunque di
sviluppo, ci ha portati a poter consierare altre possibili soluzioni - in
termini di maturazione nel tempo anche e non solo delle menti dell'ICT
mondiale -, proprio per il suo utilizzo ed esistenza, dunque anche di
'consumo' ma non solo, direi principalmente di studio e ricerca, con questo
voglio dire che non credo che Van Rossum abbia semplicemnte voluto fare lo
'sgambetto' ad una tecnologia che gli era presumibilmente antipatica, no?
considerare altre possibilita' e' non solo d'obbligo ma necessario, se ho -
a titolo d'esempio - particolare considerazione per una 'tecnologia' ma
direi di piu' uno stile, un approccio, una possibilita' diversi, ho anche
considerazione di cio' che potra' essere - e lo sara' sicuramente - altra
direzione che il mercato si trovera' - ma si trova gia' - ad intrapendere
chi se non noi specialisti ne dovrebbe aver visione e polso?
cio' che e' piu' importante e' non farne una questione personale, no?
anche perche' si sa' ...Python e' superiore ;-) - questa era un abattuta -
saluti
-- 
Gianluca

 anche perche' si sa' ...Python e' superiore ;-) - questa era un abattuta -
;)


 No anche perche` Python e` nato prima di Java
grazie per la precisazione
[cut]
saluti
-- 
Gianluca

 il tuo collega (credo).
Quello che sto affermando è: seguire il mercato significa anche essere
uno dei tanti. Chiaramente non affermo che chi sviluppa in Java o in C#
sia un beota incapace di distinguere la cacca dal cioccolato,
tutt'altro, ma seguire il mercato a prescindere per me non è indice di
furbizia, quando poi suddetto mercato si satura (e capita con qualsiasi
tecnologia) sono cazzi amari. Dubito che il mercato Java avrà questo
problema a breve, però lo dicevo anche per VB.
Inoltre, se fossi _io_ il selezionatore, tenderei a dare molto peso ai
candidati che mettono sul cv tecnologie che hanno studiato per loro
interesse e piacere, per me è indice non tanto di dedizione, ma di
adattabilità e capacità di formarsi autonomamente.
  ngw

 sviluppato qualcosa di utile senza sapere un cazzo di Ruby" :p
Esco dal lurking per farti una domanda un po' OT (a te e a Lawrence): è da
un po' di tempo che voglio impararmi Python e ora sono giunto quasi al
punto che non ne posso più fare a meno...però continuo a sentire parlare
bene di Ruby. Che faccio? Quale dei due è meglio imparare per primo ora
come ora? Considerato che per quel che faccio mi serve fare applicazioni
web e piccole applicazioni utente multipiattaforma.
-- 
Vide
"Rock'n'roll is just rock'n'roll" (AC/DC)
NP: Nulla

 web e piccole applicazioni utente multipiattaforma.
Per le applicazioni multipiattaforma, ancora non ho trovato
qualcosa che riesca a battere il TCL/TK.

 package che sono piuttosto rigorosi.
Beh, io parlavo dei design pattern. Un design pattern ti fornisce (in
parole povere) un "disegno" implementativo come soluzione ad un problema
ricorrente. Quando applichi un design pattern implementi *quella*
soluzione e in *quel* modo, nel modo più rigososo possibile. Per dire,
un sigleton lo implementi in quel modo e solo in quel modo, lo stesso
dicasi di un factory, decorator, eccetera.
MVC invece non è un pattern (anche se in rete si trovano molte risorse
che lo definiscono tale) bensì una definizione di architettura che
ognuno implementa come crede, basta individuare e separare
model-view-controller.
Struts a mio avviso è ben lontano dall'essere il miglior modo di
implementare un MVC.

 implementare un MVC.
Piu' volte in questo 3d appare la frase "x e meglio di y"
Struts e' del 2000 circa e implementa MVC che e' una architettura del 1970
Dal 2000 a oggi e' ovvio che tantissimi altri framwork lo hanno ampiamente
superato
L'informatica pero' ha i suoi cicli che aseconda di come la vedi possono
essere troppo veloci o troppo lenti.
Se sostituiamo le tecnologie ogni 6 mesi, cosa che per me sarebbe
divertentissima, il mondo sarebbe seduto su una gelatina informatica.
Se viceversa facciamo come le banche che hanno ancora i Sistemi del 1960,
saremmo troppo lenti.
Le tecnologie attuali stanno sui 5-10 anni ed essendo di loro natura piu'
integrabili di una volta non e' cosi' traumatico sceglierne una o un'altra.
Struts e' certamente vecchio cotto stracotto e strasuperato.
In giro c'e' ancora e quindi esiste come esistono i progetti in cobol delle
banche.


 Un buon lavoro puņ essere anche in Braifuck, alla fine dei conti :p
E' tutta la giornata che mi cihedo che e' un brainfuck
ora lo ho capito, credo:
Se non dovesse uscire nulla da sto ennesimo tentativo di fare qualcosa di
carino , male che va sara' un interessante allenamento del cazzo per la
mente
: - ))))
N


:

Guarda, io sto portando TkSQL a Python, e probabilmente finirą sotto GPL
(capito Vide ? ngw rilascia GPL :D) per volere dell'autore (che mi paga
per farlo).
Onestamente lo trovo orribile, perņ son gusti, al mio datore piace
parecchio.
In ogni caso Python a mio avviso se lo mangia, non per fare l'ultras, ma
tra la libreria di Python (_sterminata_, e parlo solo di quella standard,
non tiro nemmeno fuori i Twisted Matrix, i SqlAlchemy, i wxPython ecc.) e
il linguaggio in se, che gira realmente ovunque (tipo sul mio Nokia),
credo ci siano poche possibilitą.
  ngw

 web e piccole applicazioni utente multipiattaforma.
La risposta canonica č web -> Ruby, tutto il resto -> Python.
Non che Ruby sia male per applicazioni canoniche, č che con Python hai
moduli per *tutto*.
Pensa un po' a quello che vuoi fare e guarda il supporto a livello di
estensioni, se il tuo scopo principale č il web Ruby ad occhi chiusi
(almeno per me).
  ngw

 web e piccole applicazioni utente multipiattaforma.
Quale dei due punti e` piu` importante per te e che tipo di applicazioni
devi sviluppare? Intendo con che livello di complessita` (semplice sito
internet dinamico con qualche funzionalita` extra, oppure applicazioni
in cui il sito internet e` solo una delle interfacce con il mondo
esterno?).
Io in generale non amo l'approcio alla Rails (come dice ngw: "ho fatto
qualcosa di utile senza sapere un cazzo di ruby") ma alla massa sembra
piacere molto quindi magari tu che non sei plagiato puoi trovare
sollazzo da Rails per le applicazioni web.
Per applicazioni multi piattaforma io userei python sicuramente, ruby
non e` ancora sufficientemente maturo in tutta la sua libreria e
implementazione, lo diventera` nei prossimi anni, impararlo puo` essere
un investimento sul futuro ma al momento attuale non e` spedibile al di
fuori del web secondo me.
Io ritengo che Python sia altrettanto flessibile e potente nel web ma io
non faccio testo perche` lavoro su un framework (e sono developer) che
Guido ha citato come "...scared the Hell out of me" e lo trovo pure
naturale da usare... Pero` esistono tante altre soluzioni (ed e` questo
il problema) tipo Turbogears (sta per uscire un libro della Prentice
Hall su questo) o Django o Zope3 o via dicendo.
Controlla la mira, guarda cosa devi fare e poi scegli... Python ;P.
Ah... Tieni alla larga da Twisted Matrix ;P
-- 
Valentino Volonghi aka Dialtone
Now Running MacOSX 10.4
Blog: 
http://vvolonghi.blogspot.com
New Pet: 
http://www.stiq.it

 Ah... Tieni alla larga da Twisted Matrix ;P
Ma no, tolti quei coglioni degli sviluppatori non č cosě brutto :D
  ngw

 E' tutta la giornata che mi cihedo che e' un brainfuck
E` un linguaggio di programmazione, cerca su google.


 web e piccole applicazioni utente multipiattaforma.
Sono funzionalmente equivalenti e hanno alcune cose in comune. Python 2.4 e`
piu` maturo di Ruby 1.8, semplicemente perche` il team di sviluppo ha passato
gli ultimi 2 anni ad ottimizzare. Ruby sara` realmente interessante dalla 2.0
quando integreranno la nuova VM. Python ha una libreria piu` vasta, Ruby non ha
sto gran supporto al networking e al parallelismo. Personalmente mi piacciono
entrambi. Ruby ha Rails che trascina parecchio. Secondo me dovresti provarli
entrambi e vedere quale ti piace di piu`, tanto non ci vuole molto tempo.


 i migliori o quelli come Luc :P
= Fuoriclasse... :-PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 
-- 
__________________________
Luc (32, CO)
MS Visual Studio developer
__________________________

 inciso son stato per un anno e mezzo nel mondo .NET e non tornerei indietro.
Dato che sono in dubbio se approfondire .NET, nel senso di scriverci un
paio di cose sul serio puttosto che limitarmi a leggere articoli, sarei 
assai grato se fosse possibile articolare un pò più in dettaglio questo 
punto di vista.
Barone Frankenstein
-- 
Paranoia is a survival asset.

 punto di vista.
leggi questo thread:
http://groups.google.it/group/it.lavoro.professioni.webmaster/browse_frm/thread/972b72248242b41c/21b43d75921f15be


 Python è anche ben più vecchio, 5/6 anni almeno.
Mmmh, non credo di aver particolari esigenze...vada per Ruby allora come
primo? Cosa consigliate da Amazon?


 primo? Cosa consigliate da Amazon?
Il pickaxe: 
http://www.pragmaticprogrammer.com/titles/ruby/index.html
.
Trovi anche una versione vecchia qui: 
www.rubycentral.com/book/
. Magari
da un'occhiata prima di spender soldi, il linguaggio potrebbe farti
orrore ...
  ngw


Qui non si parla di tecnologie: Struts non e' una tecnologia. I problemi di 
Struts non sono legati all'evoluzione informatica, anzi al contrario perche' 
esso continua a evolversi ed a offrire novita'.

 -- 
Secondo me la vera pecca del .Net è che per ora è solo per windows, è vero 
che ci sono progetti come Mono per portare .Net anche su linux, ma sono 
progetti che attualmente sono troppo lontani, da far diventare .Net per 
linux una realtà seria. Ecco il motivo per cui Java ha ancora un grande 
punto a suo favore 


Ed a cosa sarebbero legati i problemi di Struts? 

 Ed a cosa sarebbero legati i problemi di Struts? 
Dico la mia opinione, che non è detto sia autorevole (prendila con le
molle).
- lavora a livello di pagina e non di componente
- non c'è una comunicazione efficace fra il model e il view, in pratica
tutto si riconduce ad un dispatch su una jsp e un passaggio di bean
tramite la request, più qualche tag a supporto. Un po' pochino.
- configurazione macchinosa
Per fare un esempio (e neanche il migliore), basta fare un confronto
diretto con le swing di java e vedere che lì identifichi subito qual'è
il view, il model e il controller. E non è affatto l'esempio migliore.
Nel web ho smanettato anche in PHP dove si trovano svariati framework,
ma dove ti accorgi che basta un buon template engine (tipo smarty) per
implementare per conto tuo un MVC più efficace di struts.
Naturalmente IMHO.

 punto a suo favore
Questa affermazione avrebbe senso se Java fosse *effettivamente* 
multipiattaforma.
Ma considerando che per applicazioni non banali il comportamento del 
programma dipende fortemente dal sistema operativo, dalla VM e 
dall'application server utilizzati, direi che il "write once, run anywhere" 
è più un'utopia che altro... mentre la lentezza di Java è una pesante 
realtà.
Massimo

 ha scritto nel messaggio 
news:drlutt$2et4$1...@newsreader1.mclink.it...

Tengo a precisare che le mie idee non nascono, da un pregiudizio verso un 
linguaggio o un altro, però per le applicazioni che ho fatto (è vero che non 
sono mai state molto complesse) non ho trovato differenze a programmare con 
java, da un sistema operativo ad un altro. Tu invece in che tipo di 
applicazione java, hai trovato queste differenze? 

 che tipo di applicazione java, hai trovato queste differenze?
Tanto per cominciare, le interfacce grafiche; gli applicativi GUI sviluppati 
con Java hanno innanzitutto una preoccupante tendenza a *non* disegnare le 
finestre come il sistema operativo su cui girano, ma usando un look&feel 
proprietario che li fa apparire come un pugno in un occhio a prima vista; ma 
questo non sarebbe nemmeno un problema tanto grave, se solo l'aspetto fosse 
coerente da una piattaforma all'altra. Ho avuto modo di verificare 
personalmente che le dimensioni e il posizionamento dei controlli in una 
finestra cambiano arbitrariamente non solo da un sistema operativo 
all'altro, ma anche da una VM all'altra, costringendo il programmatore a 
fare assurdi contorsionismi nel codice per capire su che sistema stia 
girando il programma e disegnare qualcosa di sensato.
Un altro punto dolente è lo sviluppo web e i relativi application server, 
che influenzano pesantemente il codice da scrivere. Prova un po' a spostare 
un sito da un application server ad uno differente, e poi ne riparliamo... 
ricordo ancora un sito spostato da JBoss a WebSphere che fu un vero bagno di 
sangue.
Certo, nulla a cui non si possa girare intorno e rimediare, intendiamoci. 
Ma, tanto per usare una metafora, la tanto decantata portabilità di Java mi 
sembra più simile a un mucchio di mattoni e cemento che a un edificio vero e 
proprio.
Massimo

 Massimo
Io mi riferivo ad un'applicazione java pura, senza parlare di application 
server che influenzino ovviamente il codice, e se i problemi sono solo la 
non perfetta posizione degli oggetti Swing o AWT, all'interno del form, 
penso che questo non possa presentare un grosso problema. Magari java non 
sarà portabile al 100%, però se non è così poco ci manca, di certo è più 
portabile per ora del .Net :-D 

 punto a suo favore 
Ora come ora Mono e` decisamente avanti rispetto a quello che pensi tu.
Ad ogni modo piu` passa il tempo e meno vedo motivi di usare .NET al posto di
Java (1.5)


 pesante realtà.
Java e` lento ma non cosi` lento, ci sono un gruppo di italiani che ci stanno
realizzando un gioco 3D costruito secondo i canoni dell'XP. Detto questo
commercialmente non vedo differenze tra .NET e Java ora coem ora.


 che a un edificio vero e proprio.
Esagerato...


 di certo è più portabile per ora del .Net :-D
Anche un'applicazione ".Net pura" è completamente portabile, se è per questo 
:-)
Il punto è sempre quello: quante applicazioni possono permettersi di essere 
così pure da non visualizzare nemmeno una finestrella?
Massimo

 essere così pure da non visualizzare nemmeno una finestrella?
Ti ripeto: la gui di .NET non e` portabile.


 Java (1.5)
Uno a caso: l'implementazione dei Generics di Java è quantomeno discutibile.
Ma del resto 
ADO.NET
 a volte è davvero grottesco :-(
Massimo

 commercialmente non vedo differenze tra .NET e Java ora coem ora.
Commercialmente ce n'è una bella grossa, invece: uno è di Sun ma viene 
percepito come "open", l'altro è di Microsoft e viene percepito come 
"closed". In realtà sono entrambe soluzioni proprietarie, ma il marketing fa 
miracoli, si sa :-/
Massimo

 Esagerato...
Intendevo che bisogna lavorarci un bel po' sopra, se si vuole qualcosa di 
realmente portabile e che abbia lo stesso aspetto e lo stesso comportamento 
dappertutto. Il problema è quanto ci si avvicina al limite per cui ha più 
senso sviluppare un paio di programmi semplici, distinti e ottimizzati, 
piuttosto che uno solo che deve comportarsi in modo diverso a seconda di 
dove gira, e finisce comunque per non sfruttare a fondo nessuna piattaforma.
Massimo

 Ma del resto 
ADO.NET
 a volte è davvero grottesco :-(
Direi che tutta l'API a volte sembra "overcomplicated"


 fa miracoli, si sa :-/
Certo, ma di entrambi esistono implementazioni opensource. Solo che Java ha
quei 10 anni di vantaggio in quanto a diffusione e librerie. Per me il problema
non si pone, non uso nessuno dei due da un bel po` di tempo.


 piattaforma.
Certo, ma non c'e` alternativa.


 Ti ripeto: la gui di .NET non e` portabile.
Ovvio, si basa su Windows.
Anche se non credo che sarebbe tanto difficile scrivere un wrapper intorno 
alle librerie grafiche di Linux... *se* Linux avesse delle librerie grafiche 
degne di questo nome e ragionevolmente standard.
Massimo

 Java nasce come linguaggio statico con una VM un po` lenta,
Il problema non è che è lenta la VM, è che è interpretato il linguaggio...
Massimo

 Direi che tutta l'API a volte sembra "overcomplicated"
Mai come Java, direi :-/
Massimo

 Python :D Scrivi una volta e gira dappertutto, ma sul serio stavolta
Perdona, Lawrence, mi dai qualche link a siti che danno istruzioni su 
come costruire applicazioni con interfaccia grafica? Perché io, 
incuriosito da 'sto thread, ho dato un occhio in giro, ma ho trovato 
solo istruzioni riguardanti lo sviluppo su web.
-- 
Ciao!
Luca

 Ma del resto 
ADO.NET
 a volte è davvero grottesco :-(
La mia opinione di 
ADO.NET
, la prima volta che l'ho visto, è che fosse 
troppo orientato verso applicazioni web; non ho ancora avuto modo di 
studiare le modifiche nella versione 2.0, nella quale annunciavano 
qualche passo indietro. Tu hai avuto modo? se si, che ne pensi?
-- 
Ciao!
Luca

 Ma del resto 
ADO.NET
 a volte è davvero grottesco :-(
In confronto agli strumenti di persistenza di java, 
ADO.NET
 è da
signori... o per lo meno se la giocano alla pari (verso il basso) :-)

 grafiche degne di questo nome e ragionevolmente standard.
Si chiamano GTK e sono gia` state wrappate in Mono. Credo che il loro wrapper
sia molto piu` indietro rispetto a quello di Python che ad esempio dalla 2.8
ingloba anche Cairo ;)


 Mai come Java, direi :-/
Ah ah  vero, l'IO e` osceno.


 Il problema non è che è lenta la VM, è che è interpretato il linguaggio...
Come ho gia` detto vari post sopra, esistono JIT anche per Java e ci sono
parametri da passare alla VM per velocizzare la cosa. Non me li ricordo dato
che non uso Java attivamente da eoni


 riguardanti lo sviluppo su web.
Come ho detto proprio l'altro ieri su un thread in it.comp.lang.python Python
non ha una sola GUI, ti lascia la liberta` di usare la GUI che preferisci. Tu
hai preferenze tra le gui piu` diffuse?


 passo indietro. Tu hai avuto modo? se si, che ne pensi?
A me di .NET piaceva il concetto di DataSet disconnesso, il resto mi sembrava
comunque "particolare"


 hai preferenze tra le gui piu` diffuse?
Ho appena scaricato wxPython. Adesso gli do un occhio...
-- 
Ciao!
Luca

 comunque "particolare"
In realtà potevi fare la stessa cosa coi recordset disconnessi negli ADO 
precedenti. Io personalmente ho trovato bizzarro tutto quel giro per 
dover gestire gli aggiornamenti dei dati. A quel punto conviene usare 
comandi SQL diretti.
-- 
Ciao!
Luca

 Ho appena scaricato wxPython. Adesso gli do un occhio...
Se hai problemi chiedi su it.comp.lang.python so che un po` di gente usa
wxPython e ci sono parecchi thread negli archivi. Io personalmente non uso wx


 SQL diretti.
Boh..


 degne di questo nome e ragionevolmente standard.
Da quel che so non c'è uno standard per le librerie grafiche (e anche
pensandoci non so immaginare cosa può mai contenere uno "standard" di
questo tipo).
Linux ha almeno *due* librerie grafiche "degne di questo nome", e il
wrapper di cui parli ha una decina d'anni, si chiama wxWidgets.
Putacaso, wxWidgets implementa molte delle funzionalità Gtk+/Cocoa "from
scratch" su Windows, per varie mancanze delle stesse rispetto alle
controparti Unix/OSX. Su Unix si può creare l'interfaccia usando XML _da
tempo_ (parliamo di anni), che mi pare sia una feature schedulata per 
l'uscita di Vista. Tra l'altro le Gtk+ usano un backend che può
avvalersi di diversi "output target" (Cairo), tra cui Win32, X11, ma
anche PDF e Postscript, alla OSX.
Hai sparato a caso, di la verità :)
Il motivo per cui le GUI .NET non sono portabili è che MS non ha il
minimo interesse a creare qualcosa del genere e renderlo un default, e
se anche ci fosse non verrebbe usato, come le wx.NET chiaramente
dimostrano.
  ngw

 troppo orientato verso applicazioni web;
Volendo fare un confronto con Java, 
ADO.NET
 andrebbe confrontato con
strumenti di persistenza tipo Hibernate perchè di nativo non ha nulla
di confrontabile.
Non lo definirei orientato al web. Semmai, l'uso di adapter e dataset
disconnessi fa si che trai un certo beneficio quando fai una
separazione fra presentation - business layer - data access/entity.

 Il problema non è che è lenta la VM, è che è interpretato il linguaggio...
Allora colgo l'occasione per sfatare un mito:
TUTTI i linguaggi sono interpretati.
Il punto e` chi li interpreta? Come?
C'e` qualcosa che vieta di avere un C 'interpretato' via software? No (e
infatti se hai abbastanza soldi da 'donare' puoi pure comprarti grossi
pacchetti software che vendono interpreti per il C e il C++). La
differenza e` che per motivi di efficienza si preferisce farlo
interpretare al processore dopo un passo di traduzione da file di testo
a binario (che e` sempre da interpretare).
Esistono altre opportunita` oltre a questa e quella piu` usata consiste
nel generare il codice che un compilatore crea staticamente a runtime.
Si chiama JIT e offre vantaggi e svantaggi (uno degli svantaggi e`
l'occupazione di memoria spaventosa).
Non si puo` quindi dire che e` colpa del linguaggio che e` interpretato
se e` lento perche` dipende invece da chi lo interpreta (una VM, il
processore, io a mano...). L'errore sembra lieve ma fa il paio con il
fatto che microsoft ha fatto una VM per tanti linguaggi... E` una
boiata, una tautologia. La VM e` una virtual machine, TUTTE le VM sono
per molti linguaggi, l'importante e` scrivere un parser e un compilatore
che traducano il linguaggio X in bytecode per la VM Y.
La conseguenza ovvia di questa cosa e` che bisogna considerare la
macchina su cui si lavora una VM 'materializzata' a sua volta in quanto,
a parte l'essere fisicamente esistente, e` in tutto e per tutto uguale a
una qualsiasi altra VM. Come lo si dimostra? Non esistono forse
emulatori di x86?
-- 
Valentino Volonghi aka Dialtone
Now Running MacOSX 10.4
Blog: 
http://vvolonghi.blogspot.com
New Pet: 
http://www.stiq.it

 emulatori di x86?
Tu sei tu, una fotografia, una tua riproduzione in tre dimensioni e in 
ogni particolare non sei tu.
Perdonami, ma il termine Virtuale sottende proprio il fatto che non è 
reale. Come fa una cosa a essere reale e virtuale nello stesso tempo?
Per tornare al tuo esempio, un processore x86 è reale, un emulatore x86 
è un processore x86 virtuale.
-- 
Ciao!
Luca

 un processore x86 virtuale.
E quindi?


 E quindi?
La separazione fra reale e virtuale e quale posizione occupa ciascuno 
strumento nel percorso da compiere fino all'esecuzione di 
un'applicazione credo sia una cosa abbastanza importante e da non 
confondere.
-- 
Ciao!
Luca

 stato progettato da zero. Forse dire JITter fa più figo...
C'era un tool del genere nelle prime versioni di .NET, mi sembra che sia stato
rimosso, si voleva anche la compatibilita` dell'exe prodotto.


 è un processore x86 virtuale.
Grazie per aver detto un dato di fatto. Magari ora elaboriamo un
pochettino su questo dato di fatto (e quindi otteniamo tutto cio` che ho
gia` detto).


 rimosso, si voleva anche la compatibilita` dell'exe prodotto.
Se parli di NGEN, non lo so, sinceramente non lo usavo anche prima. In 
un mondo perfetto, per come lo vedo io:
- ok un framework 'alla .NET' che mi consenta lo sviluppo utilizzando 
per i test il JITter
- quando però installo l'applicazione, o quando vengono apportate 
modifiche, viene eseguita una traduzione una tantum da linguaggio 
intermedio a codice macchina.
-- 
Ciao!
Luca

 tedesco, ho bisogno di qualcuno che me la traduca in italiano.
Dunque ne deduciamo che i circuiti _elettrici_ sono in grado di
comprendere cosa significa mov. Io credevo capissero solo di tensione
alta e tensione bassa.
Detto questo, in informatica i termini interpretazione e traduzione
hanno un significato preciso e codificato.
 
-- 
Valentino Volonghi aka Dialtone
Now Running MacOSX 10.4
Blog: 
http://vvolonghi.blogspot.com
New Pet: 
http://www.stiq.it

   intermedio a codice macchina.
Mi domando perche`.
-- 
Lawrence - 
http://www.oluyede.org/blog
"Anyone can freely use whatever he wants but the light at the end
of the tunnel for most of his problems is Python"

 elettrici? Cosa deve interpretare, allora?
E chi lo dice al processore che e` una rappresentazione di stati
elettrici?


 lungo.
Ecco, questo è il nocciolo della questione. Sviluppare una Virtual 
Machine al posto di una macchina reale è meno costoso e più veloce. 
Assolutamente non efficiente, però: io ho sottomano una macchina che è 
circa un migliaio di volte più potente della prima con cui ho lavorato. 
Dovrebbe riuscire a far partire le applicazioni ancora prima che io 
abbia pensato ad aprirle, e invece siamo ancora a discutere che .NET è 
lento, che Java è lento, ecc. ecc.....
Non so tu, io ci vedo un controsenso. Almeno si fosse riuscita a 
realizzare la portabilità al 100%, ma mi pare di capire che nemmeno 
questo è stato raggiunto.
-- 
Ciao!
Luca

 alta e tensione bassa.
OK. hai risposto alla prima questione del mio altro post. Io parlo di 
codice binario, tu parli di assembly. In codice binario MOV non esiste 
(non è proprio esatto quel che dico, ma passamela...)
-- 
Ciao!
Luca

 Mi domando perche`.
Perché se ogni volta che io eseguo un'applicazione, posto che non sia 
cambiato l'ambiente, ne eseguo la ricompilazione, sto inutilmente 
sprecando risorse.
-- 
Ciao!
Luca

 (non è proprio esatto quel che dico, ma passamela...)
Se invece di mov scrivevo 10010011101001001 cambiava zero.
Chi dice che 1010001000100110010 e` cio` che corrisponde all'operazione
X?
101001001 sono numeri non segnali elettrici. Vengono letti dall'HDD come
numeri e vengono messi in cache del processore come segnali elettrici.
Chi fa questa conversione?


 questo è stato raggiunto.
E questo cosa c'entra? Stiamo parlando della teoria dei traduttori e
compilatori e di come l'informatica sia una serie di strati uno sopra
l'altro... A me fanno schifo sia .net/C# che Java per cui e` inutile per
me parlare di come uno sia meglio dell'altro, sono orrendi entrambi.


 Chi fa questa conversione?
Di nuovo, il processore. Se non fosse cosě, che ci starebbe a fare il 
processore - e tutta la progettazione che ci sta dietro - ?
Sarebbe sufficiente una Virtual Machine (questa č una battuta...)
-- 
Ciao!
Luca

 Non una macchina virtuale ma direttamente la macchina-processore.
(Vai che ci siamo.)
E questa e` una traduzione e quindi una interpretazione.


 l'altro... 
Sai che non avevo capito che stavamo parlando di una cosa teorica e 
astratta?
Mi sa che ho bisogno di un interprete (o di una Virtual Machine) :D
-- 
Ciao!
Luca

 
Ma scusa, a livello astratto, tu hai bisogno di interpretare qualcosa 
per compiere un'azione? Cioè, se io ti dico "alza una gamba", al di la 
del fatto che probabilmente mi chiederai se sono scemo, hai bisogno di 
interpretare qualcosa?
-- 
Ciao!
Luca

 Mi sa che ho bisogno di un interprete (o di una Virtual Machine) :D
Concordo. Ma uno bravo. <g>


 Ed a cosa sarebbero legati i problemi di Struts?
Struts e'
1. Un pattern, ossia un modo di organizzare il tuo Prodotto. e segue
l'architettura MVC
2. Una piccolissima libreria di servizi
Questi comprendono
a. un micro supporto all'internazionalizzazione
b. una libreria di tld che serve per eliminare le scriptlet dalle jsp.
Ad essere sincero, e qua mi sbilancio anche io, la tld di struts fa cagare.
Oggi la cosa migliore e' non usarla e usare le jstl, che sono nettamente
migliori.
Se usi le jstl di fatto struts si riduce a 10k di materiale, cioe' una
servlet e 3 classi astratte.
Siccome l'architettura MVC comunque si adatta benissimo alle applicazioni
web, struts pur essendo cosi' scadente comunque il suo sporco lavoro lo fa.
Cio' che dice VIncent ha del vero, cioe' un altro suo limite e' che
l'architettura di struts di fatto e piu "proposta" che forzata.
Cosi' troverai in giro applicazione degradate in cui l'MVC e' andato a
puttane.
Cio' e' piuttosto grave in generale per un framwork/pattern.
Come ti ho gia' scritto tutti i limiti di struts forse sono
contemporaneamente anche il motivo della sua longevita'.
Infatti molti architetti che hanno magari un grosso peso sul lato backend,
ed e' frequente, preferiscono qualcosa di leggero e poco invasivo sul lato
front end, a differenza di molti altri framork o addirittura prodotti, cosi'
mettono struts e si sentono piu' sereni.
Nel mondo sun /java comunque al momento gli avversari piu' accreditati sono
spring e JSF che hanno pro e contro anche loro.
Da questo 3d e' uscito ( e conferma cio' che si legge in giro) che puo'
essere interessante come alternativa ruby on rail
Nicola
 
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 interpretare qualcosa?
Ovvio... Innanzitutto devo capire che quella frase e` completa e per
farlo devo individuare un oggetto e un verbo come minimo.
Poi a seconda del verbo devo devo cercare ulteriori complementi (o
provare a indovinarli).
Poi devo dare alla parola alza il significato che ha per me.
Poi alla parola gamba il significato che ha per me.
Poi dopo aver fatto questo devo abbinare il verbo e il complemento
cercando un significato logico (non posso alzare una gamba, posso alzare
il piede al massimo, ma alzare nel _mio_ vocabolario significa che lo
prendo con le mani e lo sollevo, e` piu` corretto dire solo 'solleva' il
piede perche` non lo devo afferrare ecc ecc).
Una volta che ho capito che tu vorresti che io sollevassi i piedi (e non
una gamba che ho qua di fianco, magari quella del tavolo) devo tradurre
la tua frase in impulsi nervosi ai muscoli della gamba per far sollevare
i piedi.
Oppure mi stai dicendo che tutti gli uomini capiscono la frase "alza la
gamba", anche se non conoscono l'italiano, perche` il nostro progettista
ci ha fatto in modo tale che lo sapessimo fare?


 farlo devo individuare un oggetto e un verbo come minimo.
Questa non è interpretazione. Se conosci la lingua italiana quella
frase la comprendi direttamente, non hai bisogno di interpretazione. Ci
sarebbe interpretazione se la frase fosse in un'altra lingua che non
conosci e qualcuno (o qualcosa) te la rendesse comprensibile,
l'interprete appunto.
Allo stesso modo, se delle istruzioni sono compilate in linguaggio
macchina la macchina ha già tutti gli elementi per comprendere quelle
istruzioni. L'interprete è colui che si occupa di tradurre da un
bytecode non comprensibile alla macchina verso (appunto) il linguaggio
macchina.

 sprecando risorse.
Bah a parte che non e` propriamente vero, ti porti in giro il binario come ti
ho detto. Inoltre hai indubbi vantaggix


 ha scritto:
Come e' Python in un ambiente clusterizzato in
load balancing / fault tolerance ?
Fai tutto a mano ?
Esistono degli application server ?
N


 passo indietro. Tu hai avuto modo? se si, che ne pensi?
È stato introdotto un layer di accesso astratto che sonsente di usare 
interfacce e classi base per fare un po' tutto, semplificando enormemente la 
creazione di applicazioni che supportano DB differenti. In pratica, il 
codice DB-aware si riduce a poche righe, giusto il necessario per creare ed 
istanziare una connessione; il resto si fa con interfacce.
Peccato che poi ogni provider usi dei placeholder suoi per i parametri nelle 
query, quindi una query per SQL Server diventa una cosa tipo "SELECT Pippo 
FROM Pluto WHERE Topolino=@var", mentre una per Oracle diventa "SELECT Pippo 
FROM Pluto WHERE Topolino=:var", e così via. Ci si gira intorno con un po' 
di search&replace nel testo della query, ma dovrebbe pensari il framework a 
queste cose, visto che si propone di creare un layer dati astratto dal DB!
Sono queste cose che non capisco... un ottimo progetto rovinato da una 
piccolezza che poteva benissimo essere gestita dalle librerie.
Massimo

 Il punto e` chi li interpreta? Come?
Ok, se le mettiamo sul teorico hai perfettamente ragione.
Ed è pur vero che nessuno vieta di implementare in hardware una VM Java (ci 
sono stati alterni tentativi di farlo, in effetti).
Ma *nella pratica*, un programma C diventa linguaggio macchina, uno Java no. 
Nel 99% dei casi, almeno. Questo perché l'architettura di Java si basa 
sull'idea di compilare in bytecode e poi interpretare quest'ultimo, mentre 
quella di .Net part dal principio di ricompilare il bytecode sulla macchina 
di destinazione. Poi è ovvio che entrambe le soluzioni sono implementabili d 
entrambi gli ambienti, ma la scelta progettuale alla base è stata 
differente; così come quella di sviluppare e supportare un solo linguaggio 
"ad alto livello" per la VM oppure più di uno.
Massimo

signori...
Ma infatti nutro notoriamente poca stima per le librerie Java ;-)
Massimo

 macchina.
La risposta e` no. Qualsiasi corso di elettronica con traduttori e
linguaggi e informatica teorica puo` spiegare ampiamente questo
problema.


 l'interprete appunto.
Il nostro cervello intepreta la lingua italiana in significato attuale.


 Esistono degli application server ?
Lo usano in google eh.
Comunque c'e` Twisted Matrix che viene utilizzato (e lo uso) per
costruire architetture distribuite complesse.
Un load balancer in Twisted lo scrivi in 10 righe, facciamo 12 dai.
Lo usano, ad esempio, in ITA Software 
www.itasoftware.com
 per gestire
decine di migliaia di client connessi contemporaneamente.


 "ad alto livello" per la VM oppure più di uno.
Ma questo e` un problema di come e` stata implementata la VM di Java
assieme alle informazioni che e` in grado di veicolare il bytecode.
Ti faccio un esempio:
Scheme e` un Lisp, ed e` il versante puramente funzionale dei Lisp. Una
sua implementazione Bigloo e` in grado di produrre codice estremamente
veloce (piu` veloce del C++/C compilati) pero` Scheme e` un linguaggio
dinamico con lo static typing opzionale.
Java e .Net non hanno differenze sostanziali di linguaggio. Se tu
trovassi un ambito in cui uno e` enormemente piu` veloce dell'altro
significa che uno dei due ha commesso un errore (oppure non ha fatto
abbastanza bene) il suo lavoro in quell'ambito.


 tipo di mercato.
Che c'entra, pure io se posso lo evito come la peste :-)
Discutevo solo a quali estremi può portare l'approccio Java :-/
Massimo

 ci ha fatto in modo tale che lo sapessimo fare?
No. Gli uomini, al contrario dei processori, non nascono con un 
linguaggio proprio precodificato. Gli viene viceversa insegnato nei 
primi 10 anni di età e rimane più o meno quello per tutto il resto della 
vita, a meno che non vada a risiedere in un paese differente da quello 
in cui è nato.
I processori viceversa escono di fabbrica con un linguaggio proprio da 
progetto. In effetti, la differenza fra noi e un processore è proprio la 
progettazione...
-- 
Ciao!
Luca

 frase la comprendi direttamente, non hai bisogno di interpretazione.
Tra l'altro... Ora che ci penso.
Ma se aggiungono una parola nuova all'italiano come si fa? Ci
installiamo tutti il service pack nel cervello?


 problema.
Bah, io a suo tempo l'ho fatto, ma 'sta storia degli interpreti che non 
sono interpreti e dei processori che interpretano non l'ho mai sentita.
-- 
Ciao!
Luca

 Il nostro cervello intepreta la lingua italiana in significato attuale.
Me la ridici che non l'ho capita?
-- 
Ciao!
Luca

 legge.
Non credo che una macchina sia programmata secondo la psicologia del
linguaggio :-)
Certo, l'uomo ha un cervello ed è capace di comprendere anche le
sfumature. La macchina no. Alla macchina non mandi una frase "Marco si
e` sposato ed ha avuto un figlio", ma la serie di istruzioni elementari
e univoche che la compongono. Quindi il programma compilato non
contiene la frase ma le istruzioni elementari ("Muovi Marco in chiesa",
"Muovi fidanzata di Marco in chiesa", "esegui Matrimonio", "Muovi Marco
sopra moglie", "esegui zumzum", etc...)
:-)

 
A parte che mi perdo l'ottimizzazione - a quel punto torno a ricompilare 
come prima - mi espandi quel "non è propriamente vero"?
-- 
Ciao!
Luca

 serve un traduttore e per fare questo bisogna interpretare l'1 logico. 
Ma lo so!! E' che per una volta stavo ragionando a livello astratto 
anch'io!! Oh, mettiamoci d'accordo: ragioniamo a livello pratico o a 
livello astratto?
-- 
Ciao!
Luca

 progettazione...
Il linguaggio puo` essere composto in modo arbitrario (processori
general purpose) e il processore deve essere in grado di eseguire
qualsiasi combinazione del suo alfabeto. Per fare questo bisogna
assegnare ad ogni simbolo una configurazione di porte e ogni volta che
leggo tale simbolo mi configuro nel modo che ho registrato e quindi
faccio passare corrente. Il fatto che il numero di simboli possibili sia
fisso non implica che cio` che arriva non sia interpretato (anche sotto
vari punti di vista. Dall'interpretare 1 logico in 1 elettrico,
all'interpretare che 10100100010 significa accendi l'FPU.
Per quanto riguarda la differenza tra noi e un processore io lascerei la
risposta al futuro visto che ora non sappiamo neanche come funziona il
nostro cervello...


 in effetti di dinamico c'è ben poco).
Il C++ e` il principe dei linguaggi statici. .net e` un pochino
dinamico, ma davvero poco. Lisp e` il miglior linguaggio dinamico mai
creato.


 
Beh, di fatto aggiungi una voce a una tabella... e i collegamenti logici 
a tutto il resto.... quasi un service pack, in effetti!! :D
-- 
Ciao!
Luca

 Il nostro cervello intepreta la lingua italiana in significato attuale.
Va bene. Ma ad un certo punto del processo finiranno le interpretazioni
e si potrà dire che la frase è compresa, no?
Anzi, torniamo alla macchina: quand'è che si può dire che finisce
l'interpretazione e la CPU ha finalmente capito cosa deve fare? Quì
sembra mai... :-)

 che i processori non sono in grado - ancora - di fare.
Embe`? Lo vedi cosa succede a tirare in ballo la lingua umana?! Che tu
ti confondi e non capisci dove sta il problema perche` inizi a pensare
che la traduzione implichi che qualcuno la pensi e sia impossibile
averla automatica...


 :-)
Vabbene... facciamo il tuo gioco allora:
Quale e` l'atomo del linguaggio?


 livello astratto?
Io e` dall'inizio che lavoro sull'astratto e sulla teoria. Parlando di
dettagli implementativi eh.


 uomo? Io credo di aver cambiato modo di parlare almeno 5 volte.
No, non la cancello, perché è così. Rifletti: magari cambi la 
terminologia, ma la struttura sintatticca, posto che ti sia stata 
insegnata, rimane grossomodo immutata.
Non confondere i vocaboli o il gergo col linguaggio.
Ma stiamo divagando....
-- 
Ciao!
Luca

 sembra mai... :-)
Quando i circuiti sono configurati e il clock e` alto. Come vedi e` uno
_stato_ non un processo. Uno stato. Il punto di arrivo della traduzione
e` uno stato non una stringa. (ecco perche` dicevo che bisognerebbe
parlare di traduzione informatica...)


 Ma stiamo divagando....
Un processore non puo` cambiare simboli...
Vi prego basta tirare dentro la lingua parlata per favore... Vi fa
confondere.


 Quale e` l'atomo del linguaggio?
Torniamo a parlare della macchina: il suo set di istruzioni elementari.
No?

 No?
Oh Vincent... Non puoi saltare di palo in frasca... Che senso ha
rispondere a questa domanda, nata nel contesto che tu hai tirato dentro
del linguaggio naturale, nel contesto del linguaggio dei computer? 
Ma facciamo uno sforzo comunque:
Il set di istruzioni fondamentali cosa e`? 
hint: un dizionario    UNI_E_ZERI => PORTE_APERTE_E_CHIUSE
Uff.. mi ruga che devo andare a prendere l'aereo e tocca interrompere mi
sa.


 Esistono degli application server ?
Zope (che è l'unico che ho usato, per gli altri ti risponderanno gli
altri che li usano ...) ha ZEO che è proprio quello che chiedi.
Fare sta roba a mano sarebbe una bella picconata nel culo :p
  ngw

 Me la ridici che non l'ho capita?
significa che quando io ti dico "mangia" il tuo cervello traduce mangia in
qualcosa che abbia significato. Il cosa dipende da come ti e` stato insegnato
il linguaggio, se io ti avessi insegnato che il verbo "mangia" equivale
all'azione di saltare tu salteresti con la parola "mangia"


 come prima - mi espandi quel "non è propriamente vero"?
Che non sprechi _inutilmente_ risorse.


 Discutevo solo a quali estremi può portare l'approccio Java :-/
E credi che un Oracle basato su .NET sia piu` snello?


 sembra mai... :-)
Quando passa o manca la corrente :)


 creato.
Se ti piacciono i linguaggi dinamici, usali pure :-)
Massimo

 idiota...
viva Option Explicit disattivato di default :P


 Un load balancer in Twisted lo scrivi in 10 righe, facciamo 12 dai.
Che significa "lo scrivi"
Io ho un applicazione e la voglio mettere in balanci su 10 macchine dietro
un apache e che accede a 4 oracle in cluster
Se mi appoggio a tool di 3. parti come faccio in java, tipo gli appserver,
il java comincia a contare poco o nulla e conta che tipo di supporto mi
danno le 3. parti, che framork trovovo, eccetera.
Quindi se io devo confrontare pyton con java, mi interessa sapere che
aziende ci lavorano dietro come e' la community , i pattern ,i framework
eccetera, la vera partita e' quella
In java, che ti piaccia o meno io ho una produzione di sw di base da paura,
oggi e' ikn pentola tutto l'ejb 3.0 tanto per dire
io posso usare circa 5 framork di front end, posso usare o meno ejb possso
usare miriadi di pattern, trovo prodotti di ogni genere, driver per tutti i
prodotti eccetera.
Immagino che ci sia tutto anche in pyton, pero' immagino che porta 5 anni di
ritardo e al momento immagino che indirettamaente la comuniti java/j2ee e'
alimentata da un giro di soldi maggiore.
scrifere IF o FI a me cambia nulla
 
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 del linguaggio naturale, nel contesto del linguaggio dei computer?
No, aspetta: io non ho tirato in ballo nulla :-) Sono intervenuto in un
punto in cui qualcuno (non so chi) aveva fatto questo esempio.
L'argomento base era interpretato/compilato, e tu giustamente hai
chiesto nel precedente messaggio di tornare sui binari.

 signori... o per lo meno se la giocano alla pari (verso il basso) :-)
Potresti spiegarti meglio?
A cosa ti riferisci e con che framework lo confronti?
Ciao
Mirko

 
Perdona, continuo a non comprendere.
Il JITter - tanto quello Microsoft che quello Sun - esegue la 
compilazione in memoria del codice che viene via via richiesto. al 
termine dell'applicazione tutto viene rilasciato; alla successiva 
esecuzione - diciamo il giorno dopo - il processo viene ripetuto, non 
ostante il fatto che l'ambiente di esecuzione non sia cambiato.
In che senso tu non trovi tutto questo inutile?
-- 
Ciao!
Luca

 In che senso tu non trovi tutto questo inutile?
Per i vantaggi che mi da la piattaforma e perche` non vedo sta gran
lentezza. Ripeto, io uso Python non .NET e tantomeno Java.


 alimentata da un giro di soldi maggiore.
Immagini male. Comunque esistono gia` load balancer. Esistono pure mini
distro linux basate su Twisted Matrix per fare da load balancer con la
possibilita` di implementare algoritmi di load balancing personalizzati
ecc ecc ecc.


 E credi che un Oracle basato su .NET sia piu` snello?
Non sto dicendo questo, sto dicendo che in certe situazioni la portabilità è 
un mito ed è meglio sviluppare direttamente per le singole piattaforme. Poi 
ovviamente se non ci si cura della qualità e/o delle prestazioni del 
prodotto finale, puntando solo a sviluppare una volta e basta, Java 
stravince.
Massimo

 basta, Java stravince.
E qui ti sbagli ma sono opinioni :D



Scusate l'ignoranza, ma cosa intendete per linguaggi dinamici e linguaggi 
statici? 

 statici? 
Si intende per linguaggio statico un linguaggio in cui viene fatto un
check sui tipi staticamente durante la compilazione.
Dinamico e` un linguaggio in cui questo check e` fatto mentre il
programma funziona (a runtime).
Entrambe le divisioni possono essere strong e weak a loro volta.
PHP e` debolmente tipato e dinamico.
Python e` fortemente tipato e dinamico.
C e` debolmente tipato e statico.
C++ e` fortemente tipato e statico.
Haskell e` fortemente tipato e statico.
Va detto pero` che il fortemente di python e C++ non e` lo stesso di
Haskell e` davvero forte (non ha neanche possibilita` di cast).
