Newsgroup: it.comp.java
Titolo: Benvenuto Java 6...però....

.....senza voler essere polemico: non è che Sun si sia messa a correre un 
po' troppo ? Non ho ancora finito di digerire come si deve la 1.5 che già è 
pronta la 1.6 :-)
Saluti,
    Scorpio. 


Allora mi sa che devi sbrigarti perché la 7 è già in lavorazione :-P
Davide che sta leggendo blog su blog per cercare di decidersi se sia 
favorevole o meno all'aggiunta delle closures... :-S
pole
-- 
ammentos - a lightweight persistence framework for JDK5
http://ammentos.biobytes.it
Flash tutorial: 
http://ammentos.biobytes.it/quickstart/quickstart.html

 favorevole o meno all'aggiunta delle closures... :-S
Scusa lìignoranza: cosa intendi per "closures"?
Ciao,
Giulio

 writes:

http://en.wikipedia.org/wiki/Closure_(computer_science)
Stanno LISPizzando sempre di più Java, ottima cosa, ottima cosa...
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software

 writes:

http://en.wikipedia.org/wiki/Closure_(computer_science)
Non ho ancora  visto cosa vogliono fare di nuovo  in Java, ma leggendo
la pagina  di Wikipedia di cui  sopra mi vien da  pensare che vogliano
fare un qualcosa di più elegante di quanto fatto in C e Cbemolle con i
"metodi anonimi"  ed i puntatori  a funzione, pur offrendo  i maggiori
benefici in termini di performance.
In questo esempio (dalla pagina di cui sopra)
    // The expression "new Runnable() { ... }" is an anonymous class.
    Runnable runner = new Runnable() {
            void run() {
                // It can access final local variables:
                calculate(uri);
                // It can access private fields of the enclosing class:
                // Always update the Graphic components into the Swing Thread
                SwingUtilities.invokeLater(new Runnable() {
                     public void run() {
                     btnSave.setEnabled(true);
                     }
                });                   
            }
        };
runner ha un riferimento ad un _oggetto_ e l'invocazione di run (che è
un metodo di una classe anonima) è l'invocazione di un metodo virtuale
che è "pesantina"  (le invocazioni di metodi virtuali  pesano circa il
doppio delle  invocazioni dei metodi  non virtuali [final],  almeno in
Java).
Se ho immaginato bene cosa  dovrebbe la closure in Java, l'invocazione
di un metodo  (virtuale o no) dovrebbe essere  sostituita con il salto
ad  una funzione,  cosa  che  dovrebbe "far  piacere"  ad sempio  alle
prestazioni dei programmi che fanno largo uso di callback (i.e. GUI).
Sarà che per me una cosa del tipo
     (mapcar 
        (lambda (a) (fai-qualcosa-su a))
        '(tanti bei valori da elaborare))
è una  cosa di uso frequente  che non mi  genera particolari "problemi
psicologici"  (o  almeno non  più  [1]),  direi  che questa  ulteriore
"lispizzazione"[2] di Java è la benvenuta.
Anche se un linguaggio che cambia troppo spesso... 
[1] A dire il vero,  quando P. Molaro (Novell, implementatore di Mono)
mi parlava dei metodi anonimi, non  mi ero reso conto del vantaggio in
termini  di prestazioni  e mi  "spaventava" una  apparente  perdita di
orientamento agli oggetti. Riguardandola, non ce la vedo.
[2] Gosling e Steele (coautore della JVM) sono (erano ?) LISP hacker.


 
http://csvtosql.sourceforge.net
Vendiamo oro, incenso e mirra in cambio di tre nomi da cristiani e non da
pirla. Firmato: Gaspare, Melchiorre, Baldassarre. -- Michele Serra

 prestazioni dei programmi che fanno largo uso di callback (i.e. GUI).
Capisco.
Sono migrato - non senza un iniziale dispiacere - da Java a C# da meno 
di un anno ed in questo periodo ho sempre reputato Java come 
"deficitario" proprio per la mancanza di un sistema come questo che 
limita fortemente la flessibilità/immediatezza nell'uso degli eventi 
(che vanno definiti con una implementazione esplicita dell'Observer 
pattern, giusto? Magari nella versione 7 aggiungono pure un sistema di 
gestione degli eventi un po' più "smart").
Ciao,
Giulio

 distribuzioni linux .. ma è solo una cosa commerciale ..
Cosa sarebbe successo con le distribuzioni di Linux ?


 gestione degli eventi un po' più "smart").
In Java più che altro  richiedevano che venisse passato un oggetto che
implementa  una interfaccia,  e  questo garantiva  la  presenza di  un
metodo.
Personalmente  non lo  ho mai  sentito  limitante. Mi  spiego: per  me
definire  al volo  una  classe anonima  è  come definire  al volo  una
funzione anonima  con (lambda ()  ...) in LISP,  non vedo dove  sia il
problema. 
Rimane, e  questo è  oggettivo, la differenza  di prestazioni,  tra il
poter fare un salto a metodo e una chiamata virtuale.


 poter fare un salto a metodo e una chiamata virtuale.
Eehhe, infatti a mio parere dipende proprio da "cosa" si vuole ottenere 
attraverso una data applicazione...
A volte non si ricercano le prestazioni ed allora un metodo (o funzione) 
anonimo puņ far risparmiare tempo...
Pensiamo ad esempio agli ActionListener, sono comodi dentro le classi 
interne, ma non č che "variano" la loro funzione, in fin dei conti molti 
applicazioni GUI hanno in comune molti ActionListener, e perchč quindi 
non crearli come oggetti definiti (e non anonimi) e poi "infilarli" 
nella GUI?
Si torna sempre al solito concetto le vie della programmazione sono 
INFINITE...
Ciao,
jRed

 metodo. Personalmente  non lo  ho mai  sentito  limitante. 
Ma ti riferisci ad ActionListener? E se un oggetto scatena eventi 
differenti, questi attivano sempre tutti i listener?
ciao,
Giulio

 writes:

Se è  un evento, lo  faccio gestire da  un listener, altrimenti  è una
chiamata a metodo, che probabilmente viene invocato su un oggetto. Non
so se userei una classe anonima.


 "infilarli" nella GUI?
Beh, a naso potrai farlo anche con le closure, se permetteranno di fare
come in LISP :) (ma lě č piů facile, che il tipo viaggia col valore).



Io sinceramente vi ammiro per tutte queste informazioni che riuscite a 
trovare e, soprattutto, a vagliare. E questo è detto senza ironia, 
s'intende. Mi piacerebbe attingere alle vostre stesse fonti :)  Per quel che 
mi riguarda, questa "corsa" di Java non mi piace. Temo, ad esempio,che vi 
sia uno scollamento tra J2SE e J2EE (versioni di appserver commerciali full 
J2EE 1.5 compliant non ne conosco), e , personalmente, non vedo come potrei 
approfondire come si deve (intendo: arrivare a poter *rivoltare come un 
calzino* un aspetto di Java) le nuove caratteristiche di Java se le major 
release si succedono così in fretta....
Quanto a .NET... beh, secondo me la battaglia si gioca sul campo del 
supporto che i vendor Java sapranno offrire rispetto a Microsoft, più che 
sulle caratteristiche di piattaforme che tendono ad assomigliarsi 
(soprattutto C# ...).
Scorpio. 

 
http://csvtosql.sourceforge.net
Regola d'Oro delle Arti e delle Scienze: Chi ha l'oro detta le regole.

 
Beh...non è proprio così. Il ravvicinato avvicendarsi di distribuzioni non è
dovuto a questioni commerciali ma semplicemente da dalle roadmap per il 90%
prefissate che ad intervalli regolari non tanto lunghi vanno via via ad
uscire. L'avvicendarsi di versioni linux in breve tempo è dovuta
dall'enorme quantità di sviluppatori che ogni giorno evolvono e correggono
il sistema operativo al contrario di microsoft che detta i tempi di release
in base a precise strategie commerciali.
gp
-- 
ln -s /dev/brain /dev/null

 
http://csvtosql.sourceforge.net
Lo stato di alcuni Un*x commerciali e' piu' insicuro di qualunque Linux box
privo di password di root... -- Bernd Eckenfels

 
http://csvtosql.sourceforge.net
Lunedi', s.: Nei paesi Cristiani, il giorno dopo la partita di baseball. --
Ambrose Bierce, "The Devil's Dictionary"

 poliemiche.
[CUT]
A me, personalmente, non spiacerebbe leggerle.
Io .NET non l'ho mai usato, se non per giocherellare un po' con 
VB.NET
 e C#. 
Se devo essere sincero, la pluralità dei linguaggi del framework può essere 
una buona idea. Da ex-utente ed appassionato di C++, però, cose come il 
Visual C++ .NET mi fanno venire i brividi... Trovo invece eccezionale 
l'ambiente di sviluppo Visual Studio: anche qui, gli ho dato un'occhiata, ma 
come velocità mi sembra  IMHO  superiore agli IDE per Java.
Scorpio. 

 
http://csvtosql.sourceforge.net
La nef de Ginee la piendis ul granee. -- Antico proverbio della Brianza

 
http://csvtosql.sourceforge.net
Le donne cominciano a parlare della propria eta' solo quando sarebbe saggio
ignorarla.

 siano della stessa opinione ..
Non ti preoccupare. Non mi sembra che vi siano dubbi sulle tue intenzioni, 
appunto quelle di esprimere un punto di vista, evitando - giustamente ! - 
sterili polemiche.
Scorpio. 

 Scusa lìignoranza: cosa intendi per "closures"?
Sulla definizione di closures ti hanno già risposto bene. Riguardo le 
proposte di modifica al linguaggio c'è un bell'articolo riassuntivo qua:
http://www.artima.com/weblogs/viewpost.jsp?thread=180638
Personalmente concordo con alcune idee della SSCO (Shorter Syntax for 
Common Operations), anche se il concetto delle closures è più ampio.
Sono anche d'accordo con quanti di voi dicono che troppe modifiche 
troppo in fretta rischiano di snaturare il linguaggio. Credo che sia 
forse davvero giunto il momento di vagliare la creazione di un nuovo 
linguaggio per la JVM che sia in grado di abbracciare tutte queste nuove 
proposte. Mi chiedo anche però se il supporto allo scripting introdotto 
col JDK6 non sia già un grosso passo avanti in questa direzione.


 allora la suse la fa uscire anche lei, queste cose qui insomma :)
O.K., chiaro.
javaOneDotSixInDebianTestingFree.wait();


 dicevo loro lavorano sulla quantità,
Magari fossero solo loro...
Quanto agli ambienti di sviluppo... Anche lì vedo molti spechietti per
le allodole. Wizard  o non wizard, arriva il momento  in cui il codice
lo devi  scrivere e modificare. E  allora ci vuole un  buon editor per
far fare  alla macchina ciò che  è meccanico. E non  ho ancora trovato
una IDE che batta un buon editor in questo, non parliamo del Vero Solo
Editor :) :) :) :)
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software
// Quanto all'integralista, fatevi una  ricerca su Church Of Emacs per
// capirlo appieno.

 J2EE 1.5 compliant non ne conosco)
Beh, riscrivere un application server non e banale. E non focalizzarti
su quelli comerciali, quelli liberi hanno un uso molto molto ampio.


 Editor :) :) :) :)
vi forevah! :D

 writes:

vi vi vi, l'Editor della Bestia, vade retro, sixer! :) :) :) :)
D'altro  canto  St.   IGNUcius  ha  detto  a  tutti   che  "usare  una
implementazione libera di vi non è un peccato, è una penitenza!" :) :)
:)
;; Si può  continuare per secoli,  ma non va  fatto in un  newsgroup a
;; meno  che non  sia alt.religion.emacs  o analogo  per  vi. Un'altra
;; valida alternativa è
;;
;; $ cd /pub
;; $ more beer # :)
cfr: 
http://en.wikipedia.org/wiki/Editor_war


 Se è  un evento, lo  faccio gestire da  un listener, 
cioè ad un'istanza di una classe che implementi ActionListener?
Ciao,
Giulio

> Se è un evento, lo faccio gestire da un listener,
Giulio> cioè ad un'istanza di una classe che implementi
Giulio> ActionListener?
Con  l'implementazione attuale,  si. Con  le closures  dipenderà dalle
necessità del momento.


 necessitą del momento.
Quindi Gian Umberto, correggimi se sbaglio, una closure č molto simile 
ad una classe "anonima" che viene gestita in maniera diversa dalla JVM 
oppure potrebbe essere implementata in java in un altra maniera...!?
Premetto che il LISP non l'ho conosciuto di "persona", sono giovane per 
quell'anziano signore, ma l'intuito non ci porterebbe a dire:
"eredita i pregi e non i difetti?"
Quindi siamo sicuri (con tanti ???) che le closures potrebbero essere 
una features in armonia con l'environment java oppure potrebbe essere 
solo una "comoditą"?! :D
Ciao,
jRed

> necessità del momento.
jRed> Quindi Gian Umberto, correggimi se sbaglio, una closure è molto
Senza m tra U e b :)
jRed> simile ad una classe "anonima" che viene gestita in maniera
jRed> diversa dalla JVM oppure potrebbe essere implementata in java in
jRed> un altra maniera...!?
Dai un occhiata a
http://en.wikipedia.org/wiki/Closure_(computer_science)
e
http://mindprod.com/jgloss/closure.html
 
Quest'ultimo, spiegando cosa è  (attualmente) disponibile in Java dice
indirettamente cosa viene aggiunto.
In  pratica  Java  finora  ha  permesso  closures  (inner  class)  che
facessero riferimento  solo a valori costanti locali  a metodi. Questo
probabilmente per efficienza.
jRed> Quindi siamo sicuri (con tanti ???) che le closures potrebbero
jRed> essere una features in armonia con l'environment java oppure
jRed> potrebbe essere solo una "comodità"?! :D
Beh, non solo una comodità. Hai un qualcosa in più che prima non potevi
avere. 


 J2EE 1.5 compliant non ne conosco)
L'unico appserver JEE5 commerciale nel senso che e' testato e usabile a
livello industriale e' JBOSS.
La jboss ha partecipato alla stesura delle specifiche con Sun e quindi ha un
po' di vantaggio.
a mesi ( giorni ) arriveranno tutti.
Non so cosa intendi per commerciale, Jboss e' il piu' diffuso al mondo ( poi
IBM, e pi Bea ) ed ed e' sul Nasdaq.
Nicola
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 avere.
Perchè non spariamo qualche esempietto della effettiva utilità di uno 
stile del genere!?
In genere quando parliamo di POJO la separazione e la protezione delle 
variabili è tale da non necessitare "scope" particolari, pensiamo alle 
gerachie, ma ad esempio nelle GUI potrebbe essere utile far modificare 
direttamente da un Listener che ha raccolto un evento, una data proprietà...
(questo non va contro l'utilizzo di getter e setter però?)
Ciao,
jRed

 proposte.
Mmm... Boo o Groovy (senza considerare Python e Ruby)?
Enrico

 ha scritto nel messaggio 
news:81Z208Z84Z51Y1...@usenet.libero.it...


Circa IBM, posso assicurarti che l'uscita di un WebSphere 1.5 full compliant 
non è propriamente "prossima".... di Bea invece non so dirti nulla.
Scorpio. 

> metodi. Questo probabilmente per efficienza.
jRed> Però volevo spendere un piccolo ragionamento sulla parola chiave
jRed> "free" della definizione...
jRed> "It consists of the inner function's code and references to any
jRed> variables in the outer function's scope that the closure needs."
jRed> Creare uno "scope" particolare, sulla base di quello che una
jRed> funzione necessità non è in stile Object-Oriented ma è proprio
jRed> di un linguaggio che è procedurale, che parla a funzioni...
Non procedurale, funzionale.
In realtà una  closure puoi riuscire ad ottenerla  anche con le classi
anonime, ma è laborioso.
jRed> Fatto sta che è tutto un gioco di ambienti di validità delle
jRed> variabili, emerge che il problema delle inner class sta proprio
jRed> nel non riuscire a modificare le variabili del blocco in cui
jRed> esse sono dichiarate...
Più che questo, sta nel fatto che le inner class anonime possono avere
metodi  eseguiti quando la  vita del  metodo è  terminata e  l'area di
memoria eseguita dallo  stack frame è stata riutilizzata  anche più di
una volta.
Java  ante v6  permette  di accedere  solo  ai dati  costanti per  una
questione di efficenza: per accedere ai dati presenti sullo stack devi
salvare,  ergo copiare,  questi  dati. Le  costanti  stanno lì,  basta
mettere il riferimento giusto una volta per tutte.
jRed> Perchè non spariamo qualche esempietto della effettiva utilità
jRed> di uno stile del genere!?
jRed> In genere quando parliamo di POJO la separazione e la protezione
jRed> delle variabili è tale da non necessitare "scope" particolari,
jRed> pensiamo alle gerachie, ma ad esempio nelle GUI potrebbe essere
jRed> utile far modificare direttamente da un Listener che ha raccolto
jRed> un evento, una data proprietà...
Più  che il listener  agire su  un valore,  serve a  parametrizzare il
listener.
Adesso che abbiamo le closure,  non dobbiamo andare a cercare problemi
da risolvere con le closure ma aspettare un problema che le richieda.
Qualcuno questi problemi li ha già incontrati, altri no.
Attenzione, le soluzioni in cerca di problemi sono una mina vagante.



Ciao.
Ho seguito parzialmente questo thread e ti vorrei chiedere, visto che usi
LISP, cosa NON si puo` fare con LISP rispetto a Java2. Suppongo che le
interfacce, per esempio, facciano parte di questo insieme.
Grazie.

 Nicola
Quindi dici che studiarsi quello Sun Application Server 9 ha poco senso? A dire 
il vero mi ci sto impratichendo... Cosa pensate di questo AS?

 writes:
Marco> Ho seguito parzialmente questo thread e ti vorrei chiedere,
Marco> visto che usi LISP, cosa NON si puo` fare con LISP rispetto a
Marco> Java2. Suppongo che le interfacce, per esempio, facciano parte
Marco> di questo insieme.  Grazie.
Guarda, usicchio il  LISP (EmacsLisp) ma riesco a  rendermi conto dove
Java mira ad esso, appena ho tempo mi leggo il libro di Steele.
Il  LISP  nasce  come  implementazione  di  un  formalismo  dimostrato
equivalente alla macchina  di Turing, quindi quello che  alla fine non
si può fare non penso sia molto :) :).
Le interfaccie non ti so  dire, probabilmente ci sono nella estensione
ad oggetti.
Tra Stallman  ed il gruppo  che lavora su  XEmacs c'è una  diatriba in
corso tra l'uso di oggetti astratti/interfacce o no, ma non ti so dire
se la cosa è relativa al lato C oppure al lato EmacsLisp del progetto.


 writes:
Corrado> poco senso? A dire il vero mi ci sto impratichendo... Cosa
Corrado> pensate di questo AS?
E` una reference implementation che sappia...


 writes:
jRed> Perchè non spariamo qualche esempietto della effettiva utilità
jRed> di uno stile del genere!?
Cavoli, ne avevo uno sottomano e non me ne sono accorto.
Le classi che estendono org.apache.struts.actions.LookupDispatchAction!!!
Nel  costruttore potrebbero  popolare  la Map  invece  che con  coppie
chiave  - valore  di sole  stringhe (di  cui il  valore è  un  nome di
metodo) con coppie stringa - closure.


 Attenzione, le soluzioni in cerca di problemi sono una mina vagante.
Già e se non si fa attenzione ---> Boom! Si inciampa sulla mina!
Cmq si ora le cose sono un po' più chiare, probabilmente il modo con cui 
verranno implementate in java sarà tale da renderle "compatibili" a 
livello prestazionale...con le classi anonime, cosi da poter lasciare 
libero il programmatore di "impiccarsi" a suo piacimento...!
Ciao,
Valerio

 E` una reference implementation che sappia...
Ma e' la stessa cosa di GlassFish ?
Comunque fino a oggi non mi pare che la Sun abbia mai dichiarato che intende
entrare nel mercato AS.
Quindi per ora si deve considerare gli AS della Sun appunto come reference
implementation.
NIcola


 implementation.
Lo spacciano come il first Java EE 5 fully compliant, robust, commercial-grade 
AS, e cmq si e' basato sul codice di glassfish... La scelta di "studiarmi" 
questo e' dovuta semplicemente al fatto che il tutorial di ..sole.. 1300 pagine 
che mi sto facendo si basa su questo, in piu' mi sono lasciato convincere dal 
fatto che sia cmq prodotto dalla stessa gente SUN, e mi ha dato boh sicurezza. 
Spero solo che le cose che apprendo siano poi riutilizzabili su altri AS come 
JBoss che spero di vedere presto.
Ogni parere-consiglio e' ben accetto, se si va OT apro un thread eh ;)
Cmq una curiosita'. Per reference implementation, si definisce un qualcosa che 
implementa solo le specifiche giusto? E quindi non si addentra in gadget come 
clustering o cose avanzate? Per questo sono preferibili altri AS? Scusate la 
probabile banalita' della domanda me ne rendo conto.
Ciao
Co

 probabile banalita' della domanda me ne rendo conto.
Molto semplice :
JEE nasce per dare "casa" alle applicazioni Server Side delle mega Aziende,
da qui la "E" di Enterprise.
Quindi l'obiettivo principe e forse unico e' che funzioni il tutto in tuttte
le sedi, in tutte le LAN, in tutte le situazioni di carico e di disastro,
che sia pronto per migrazioni fisiche da una filiale all'altra, e da un
Sistema Operativo all'altro.
Reference implementation vuole dire che mentre si *pensa* si *architetta* o
semplicemente si scive il codice serve un AS cavia che viene usato per
testare le libreire che vengono mano a mano scritte.
Quindi studiare il JEE su glassfish e' perfetto e sei in una botte di ferro.
poi se si vuole andare in produzione serve il testing oltre che di
correttezza di carico.
il testing di Software di base richiede uno sforzo paragonabilre alla
scrittura stessa del SW e quindi per farlo servono dei ritorni economici
diretti notevoli.
Quello e' il motivo per cui BEA o Websphere, e negli ultimi anni soprattutto
JBoss, vengono poi messi in produzione nelle situazioni reali con carichi
enormi.
la correttezza di Glassfish nei confronti delle specifiche e' ovviamente
6mesi/1 anno avanti, ma Sun fino a oggi non fa alcuno sforzo di portarli a
livello di produzione, un po' perche' non e' il suo business, anche se
potrebbe esserlo, e soprattutto perche' ci sono accordi di collaborazione
per cui ci si spartisce i ruoli.
JBoss, comunque ha partecipato con Gavin King alla stesura delle specifiche
del 5 e quindi e' avanti agli altri, pur essendo ormai completamente un AS
di produzione da quando con la red hat e' finito sul Nasdaq.
nicola


n.n ha scritto:
..[cut]..
Sei stato chiarissimo, ti ringrazio.
Co

 writes:
n> Molto semplice : JEE nasce per dare "casa" alle applicazioni Server
n> Side delle mega Aziende, da qui la "E" di Enterprise. 
Nasce a  dire il vero  come ambiente transazionale, che  permettono ad
esempio di  avere transazioni -con commit e  rollback, per intenderci-
distribuite (esattamenete come il  CICS dei mainframe IBM) su ambienti
eterogenei , e guardacaso solo  grosse aziende hanno bisogno di questi
ambienti.
n> Reference implementation vuole dire che mentre si *pensa* si
n> *architetta* o semplicemente si scive il codice serve un AS cavia
n> che viene usato per testare le libreire che vengono mano a mano
n> scritte. 
Più precisamente per dire: volete vedere come si deve comportare un AS
che rispetti certe specifiche ? Guardate qui.
n> poi se si vuole andare in produzione serve il testing oltre che di
n> correttezza di carico.  il testing di Software di base richiede uno
n> sforzo paragonabilre alla scrittura stessa del SW e quindi per
n> farlo servono dei ritorni economici diretti notevoli.
Oppure una base di testing  *molto* ampia e motivata. 
Perdonami, ma ci sono progetti  liberi con sorgenti anche da decine di
megabyte  che smentiscono ampiamente  l'ultima affermazione.  Anzi, la
motivazione economica non sempre da risultati tecnici all'altezza.
n> Quello e' il motivo per cui BEA o Websphere, e negli ultimi anni
n> soprattutto JBoss, vengono poi messi in produzione nelle situazioni
n> reali con carichi enormi.
JBoss è uno dei prodotti liberi di cui sopra.
n> pur essendo ormai
n> completamente un AS di produzione da quando con la red hat e'
n> finito sul Nasdaq.
JBoss era di production quality ben prima della quotazione in borsa.
Debian è da produzione (IBM vende server certificati per Debian) anche
de non sarà mai quotata in borsa. 
Un prodotto, per essere "da produzione" ha bisogno di convincere due
tipi di figure:
* i tecnici,  che vengono  convinti dalle caratteistiche  tecniche del
  prodotto che lo rendono adatto alla produzione.
* i  manager, che  vengono convinti  da qualcuno  (esterno)  pagato in
  pratica per prendersi la responsabilità del buon funzionamento (aka
  fornire supporto)


 JBoss era di production quality ben prima della quotazione in borsa.
Jboss 1 mi pare che nacque nel 1999. Ai tempi era del livello di Glassfish
di oggi.
HA impiegato tantissimi anni a diffondersi e solo negli ultimi 2 o 3 ha
definitivamente convinto i tecnici ( prima ) e gli IT manager amanti dei
Magic Quadrant di Gartner, in cui guarda caso e' finito proprio questo anno
Jboss e cioe' da quando e' in borsa. Coincidenza ?
In pratica concordo appieno con quello che dici, ma alla fin oggi Gli
appserver realmente in ballo nel 99% delle scelte di mercato sono
1. Jboss
2. IBM
3. BEA
4. Oracle, che piace poco a molti tecnici
Questi hanno comunque dei modelli di business e dei rientri economici
diretti che permettono loro gli investimenti necessari all'implementazione
reale delle specifiche soprattutto del balancing, del tolerance, dei
componenti proprietari come cache, librerie, frameworks, estensioni e tutto
quello che poi fa la differenza fra un prodotto "industriale" e un Software
troppo libero che fa un po' di tutto, ma alla fine non lo installa nessuno e
quindi nessuno ha voglia di fare da cavia :-)
Comunque parlare di JBOSS come SW libero, a livello filosofico e' molto
complesso. Visto che non credo proprio che diventano committers cani e
porci, inoltre la JBOSS oggi ha un giro di soldi tale che non credo non
retribuisca in alcun modo i committers. Aggiungici che Sun-IBM-Oracle hanno
sempre finanziato in modo diretto tramite donazioni dichiarate pubblicamente
la Apache, Jakarta, Jboss ( una volta) e parecchi centri di ricerca Open
Source su piattaforma Java
QUindi diventa una questione di lana caprina trovare la differenza fra
Software Libero e open source e Software chiuso e a pagamento.
Detto questo rimarco che oggi sono completamente "sposato" con la Jboss, nel
senso che uso una caterba di loro prodotti quotidianamente e Gavin king e
anche Roy Russo sono i miei idoli informatici :-))
AS - oviamente
Seam - il framework piu' elegante che ho utilizzato in vita mia, e che ora
uso anche solo per fare hello world
Portal- un po' ostico con le portlet jsr 168 ma prima o poi lo vorrei
sfruttare meglio, fra l'altro si integra con Seam, anche se un po' a calci
:-)
Remoting per Ajax fatto da dio
Hibernate, quando si lavora col vecchio J2EE
IDE ovviamente che e' un gioiellino
ciao a tutti e auguri
Nicola


 writes:
n> Questi hanno comunque dei modelli di business e dei rientri
n> economici
Certo che  i produttori di SW  Libero e proprietario  hanno modelli di
businnes. SW Libero non vuole dire  SW non adatto al mercato, usa però
modelli di  buiness diversissimi, dove non  si vende il  codice, ma la
capacità del fornitore.
n> Comunque parlare di JBOSS come SW libero, a livello filosofico e'
n> molto complesso. 
No. Nessun sw libero di una certa portata e qualità accetta commit da
cani e porci.
Peraltro possono  accettare (o  usare) bug fix  e altri  contributi di
codice attraverso  la mediazione dei "committers"  ufficiali e possono
accettare   questi   contributi   con   varie  politiche   che   vanno
dall'"O.K.  lo hai  rilasciato  sotto licenza  XY"  a "Firmami  queste
carte" (FSF).
n> Visto che non credo proprio che diventano
n> committers cani e porci, inoltre la JBOSS oggi ha un giro di soldi
n> tale che non credo non retribuisca in alcun modo i
n> committers.
Dubbio, hai mai letto il Manifesto del SW Libero di Stallman ? 
L'unico a pensare che Free in Free software stia per "gratuito" è quel
pirla  di autore  de "la  cattedrale ed  il bazar",  un saggio  la cui
analisi si è rivelata decisamente errata.
n> Aggiungici che Sun-IBM-Oracle hanno sempre finanziato
n> in modo diretto tramite donazioni dichiarate pubblicamente la
n> Apache, Jakarta, Jboss ( una volta) e parecchi centri di ricerca
n> Open Source su piattaforma Java
Dov'è la cosa strana ?
Non è una coincidenza la quotazione  in borsa di JBoss (quella di RH è
un discorso  diverso, che origina nella fallace  illusione della bolla
della  new  economy), è  una  conseguenza, JBoss  si  è  evoluto ed  è
diventato alla fine un prodotto che può essere fonte di reddito: vado,
pago  quelli di  JBoss perché  desidero avere  a disposizione  la loro
capacità.


 4. Oracle, che piace poco a molti tecnici
Domanda da profano: in tutto questo, come si relaziona Tomcat?
Enrico

 specchietto per le allodole
Beh, e` un po' quello che succede da sempre con Java (Jython e JRuby,
solo per fare due nomi, non nascono con Java6)
Enrico

 
http://csvtosql.sourceforge.net
Il matrimonio e' il prezzo che gli uomini pagano per il sesso; il sesso e'
il prezzo che le donne pagano per il matrimonio.

 Enrico


 sopra e vedere Tomcat come una parte del tutto.
Infatti gli ApplicationServer più comuni, uniscono diverse tecnologie 
per creare un ambiente (o habitat) per far "vivere" le tue application 
in piena armonia con le specifiche enterprise (alcuni sviluppano quelle 
specifiche offendoti cose come JMS, ...)
Però dipende sempre dal problema che devi risolvere! :D
Ciao,
jRed

 abbandonare il tuo dialetto, in java non mi sembra sia cosi ...
Uh? Se non ho capito male, intendi che in .NET il fatto di avere n
linguaggi e` solo per forzarti a passare a C# in maniera meno indolore,
mentre in Java l'utilizzo di Jython o di JRuby[1] e` solo per
permetterti l'accesso alla piattaforma Java da linguaggi differenti da
Java stesso. Se e` cosi`, allora penso che sia un'affermazione
sbagliata in quanto, in tutti e due i casi, lo scopo e` farti utilizzare
la piattaforma
Enrico
[1] tengo a precisare che nomino questi due solo perche` sono l'esempio
piu` eclatante di linguaggi nati in altri contesti e portati sotto la
piattaforma Java

 
http://csvtosql.sourceforge.net
Domum servavit, lanam fecit. -- Visse in casa, filo' la lana. -- Antica
iscrizione romana sulla tomba di una matrona esemplare

> framework è uno specchietto per le allodole
Enrico> Beh, e` un po' quello che succede da sempre con Java (Jython e
Enrico> JRuby, solo per fare due nomi, non nascono con Java6)
Scusa Enrico, ma Jython e JRuby  non nascono per dare un linguaggio di
scripting  interpretato  a  Java,  che  invece  ha  il  "problema"  di
necessitare di una compilazione ?


 pronta la 1.6 :-)
No.
Le prime Beta di Java 6 Mustang furono rilasciate mesi e mesi fa non
solo per il debug, ma anche per permettere alle parti interessate di
familiarizzare con la nuova release, così come già da ora sono
disponibili i primissimi sviluppi della versione 7.
Bisogna però dire che il passo da java 1.4 a java 5 è stato
nettamente più traumatico che quello a java 6, dato che questa release
garantisce la compatibilità a livello di bytecode (leggi: nel 99% dei
casi le applicazioni girano senza modifiche, provare per credere!).
Quindi, oltre che imparare ad usare java 6 (che non è dissimile
dall'usare java 5 a parte le più eclatanti aggiunte come il supporto
per lo scripting), se usi java per lavoro non sarebbe una cattiva idea
iniziare fin da ora a seguire lo sviluppo di java 7.
Ciao!
Raffaele che purtroppo ora come ora non lavora su java...

 necessitare di una compilazione ?
beh, Python e Ruby non sono solo dei linguaggi di scripting. Per farti
un esempio, il client news che sto usando e` scritto in Python
Enrico

> necessitare di una compilazione ?
E'B> beh, Python e Ruby non sono solo dei linguaggi di scripting. Per
E'B> farti un esempio, il client news che sto usando e` scritto in
E'B> Python
Enrico, li hanno pensati per quello e si sono resi conto che sono 
molto di più :).
BTW, il client news che usi, se esponesse dei servizi python all'utente
per la personalizzazione (si, sto pensando a Gnus ;) ) ...


 per la personalizzazione (si, sto pensando a Gnus ;) ) ...
Prova a chiedere all'autore :)
Enrico