MokaByte Numero  42  - Giugno 2000
JavaOne 2000
Missione impossibile?
di 
Giovanni Puliti
Puntuale anche quest'anno il resconto dalla conferenza mondiale su Java  tenutasi a San Francisco

Anche quest’anno, a S.Francisco, Sun ha organizzato JavaOne, la conferenza mondiale su Java.  Anche quest’anno, noi della redazione, fedeli come non mai, eravamo presenti per fare il nostro bravo resoconto.

Definizione 1
Java  è un linguaggio di programmazione ad oggetti la cui evoluzione si misura con particolare unità di misura temporale, detta Era Java. Ogni Era Java ha la durata di un anno e corrisponde al tempo che intercorre fra due JavaOne. 

Definizione 2
JavaOne è un evento storico che attrae la popolazione mondiale degli appartenenti alla specie degli  sviluppatori Java, detti JavaProgrammers. Tale specie dopo un periodo iniziale in cui si minacciava la sua estinzione,  è adesso in rapida crescita, grazie anche alla operosa azione di ambientalisti fedeli alla benefica azione delle radiazioni del sole.
 

Quesito 1
Possono 23.000 rappresentanti della stessa specie, radunati nello stesso luogo, condividere la medesima opinione?

No. Secondo le più recenti teorie evoluzionistiche, oltre che sulla base della legge dei grandi numeri, alcuni ricercatori hanno infatti provato  che è strutturalmente plausibile che un numero consono con la dinamica dell’insieme, si  trovi  in disaccordo con il pensiero globale della popolazione.
 

Quesito 2
Data una tecnologia estremamente innovativa, è necessario il continuo aggiornamento e l’aggiunta di nuove feautures per la assunzione che sia una tecnologia vincente?

No, proprio in base al normale sviluppo evoluzionistico, se la tecnologia è realmente efficace, dopo un periodo di rapida crescita, essa tenderà a raggiungere il plateau asintotico di stabilità.
In tale situazione, la mancanza di aggiunte e novità deve essere considerata come il risultato della maturità, fase in cui l’introduzione di nuovi elementi ha minore importanza rispetto alla utilizzabilità del mezzo.
 



 
 

Commenti
In chiave ironica l’introduzione di questo articolo (introduzione che potrebbe far preoccupare  sulla salute mentale dell’autore),  ricalca abbastanza fedelmente le sensazioni che ho provato quest’anno alla JavaOne 2000, la famosa conferenza organizzata ogni anno da Sun in quel di San Francisco.
Anche quest’anno, con Fabrizio Giudici importante collaboratore di MB, ero presente alla conference, che a detta di tutti rappresenta il momento culminante di un anno passato a seguire l’evoluzione di Java e della tecnologia annessa.
La prima impressione, come ormai accade ogni anno, è quella dello smarrimento, data la folla presente al Moscone Convention Center: quest'anno erano ben 23.000 le persone radunate nella area sotterranea del centro congressi. 
La sensazione di essere parte di qualcosa di importante è reale, anche se in ogni istante si ha la consapevolezza di non riuscire a cogliere tutti gli aspetti dell’evento.
A parte questa sensazione iniziale, devo dire che la mia primissima valutazione della conferenza  è stata in un certo senso negativa: niente di eccezionalmente innovativo, nessun annuncio di rilievo, niente che un buon JavaProgrammer non sapesse già. 
Avevo fatto dodici ore di aereo per niente?
Effettivamente di spunti interessanti ce ne sono stati molti, e non pretendo di conoscere Java a tal punto da non aver più bisogno di studiare o di provare nuove API o tecnologie varie.
Data l’importanza dell’evento mi chiedo se non sto dando una valutazione non corretta dell’evento. 
Ci penso un po’ ed in effetti rivalutando meglio le cose mi rendo conto di due fattori importantissimi: il primo è che è praticamente impossibile organizzare una conferenza come questa  che sia di interesse per la totalità dei partecipanti, soprattutto nel caso in cui questi siano in numero così elevato.
Il secondo aspetto, forse ancora più importante è che una tecnologia per essere realmente utile e concreta non deve necessariamente sfornare novità ogni 15 giorni. 
Java, e tutto quello che ruota intorno ad internet, da questo punto di vista ci aveva abituato male: è vero che ognuno  di noi si è spesso lamentato della velocità vorticosa con cui le novità si sono susseguite, ma è altrettanto vero che la maggior parte degli addetti ai lavori ha una innata passione per il passatempo del paparazzo tecnologico, alla ricerca costante di una nuova API o di un nuovo prodotto.
JavaOne da questo punto di vista, quest’anno è stata una specie di raccolta di quello che c’è già adesso disponibile, e di come lo si possa finalmente utilizzare concretamente.
Le quattro giornate della conferenza infatti sono state una specie di full immersion sullo stato attuale dell’arte, con numerosi richiami ai suoi possibili utilizzi.
Rivalutando l’evento da questo punto di vista, considero questo momento importantissimo per la tecnologia di Sun: non più un “ci sarebbe anche questo per fare meglio questa cosa”, ma piuttosto “abbiamo visto cosa abbiamo a disposizione, applichiamolo”.
Un esempio su tutto? RMI che  non è stata quasi mai nominata, e non tanto perché passata ormai nel dimenticatoio (tutto EJB si basa su RMI), ma piuttosto perché ormai la si può considerare consolidata e funzionante. 
Questo non è cosa da poco, specie se si pensa ai  molti problemi iniziali di tale architettura. 
Infine si deve fare una ulteriore considerazione: l’aumento della platea di Java: l’anno passato alla conferenza erano presenti circa 14.000 persone, un numero nettamente inferiore, come inferiore era ad esempio il numero di lettori di MokaByte, praticamente raddoppiati negli ultimi sei mesi.
Questo significa che, a meno che i nuovi arrivati non abbiamo già tutto in testa (cosa molto improbabile), allora il numero degli appartenenti alla specie dei JavaProgrammers è cresciuto di molto.
 
 
 

Cosa si è detto
Gli argomenti più inflazionati alla conferenza sono stati praticamente tutti quelli legati alla piattaforma J2EE. A partire dagli interventi sulla programmazione avanzata di  servlet, passando per JSP, EJB fino ad arrivare alla integrazione di Java CORBA ed EJB, ultimo grido in fatto di “adesso faccio qualcosa di veramente complesso e sono contento”.
XML e Jini sono forse state le sigle più utilizzate nella 4 giorni americana, e sicuramente non credo che questo stupisca  più di tanto. 
In particolare il fatto positivo era che i molti interventi su  XML erano molto meno avvampati da un clima di magico mistero circa i prodigi miracolosi di questo potente linguaggio di script. 
Interessante invece il maggiore interesse intorno alla programmazione per Pattern: diversi sono stati  gli interventi proposti in tal senso e tutti volti a far comprendere che la tecnologia èimportante, ma che è altrettanto importante comprendere l'indispensabilità di una buona progettazione del software. 
I pattern da questo punto di vista ci insegnano  che è importante progettare bene sia per aggirare le limitazioni di una determinata tecnologia, ma anche per comprendere che spesso quelle che crediamo delle limitazioni sono il frutto di una precisa volontà progettuale della tecnologia. 
Si può prendere a tal proposito l’utilizzo del pattern Factory con RMI (vedi [1]). 
Per chi volesse approfondire questi argomenti può prendere spunto da [2].
 
 
 

Novità
A parte le considerazioni fatte nella prima parte dell’articolo, qualcosa di innovativo effettivamente è stato presentato alla conferenza. Fra le varie cose su cui potremmo focalizzare l’attenzione vorrei citarne  alcune che a parer mio mostrano realmente qualcosa di importante.
La prima è sicuramente la presentazione di Web Start, un plug in per browser la cui funzionalità e estremamente interessante. Web Start infatti, in maniera molto simile al classico Java Plugin per Netscape ed Internet Explorer, permette l’utilizzo di applicazioni lato client scaricate via internet semplicemente grazie ad un click su una pagina HTML. 
La differenza fondamentale è che in questo caso si tratta di una applicazione e non di una applet: il browser funziona quindi  come semplice strumento per effettuare il download del codice (ma non solo).
Una applicazione viene quindi scaricata per mezzo di browser, salvata sul disco del client, permettendo quindi di effettuare caching e sincronizzazione del codice.
Da un punto di vista tecnologico si tratta di una cosa piuttosto banale (alla fine si tratta di una specie di proxy che controlla il versioning dei vari .class  e .jar, più   un runner  di JVM), ma estremamente utile. 
Le specifiche dichiarano la possibilità di una pacifica coesistenza di versioni differenti sulla stessa macchina, ma questa promessa miracolosa devo ancora verificarla e mi lascia al momento piuttosto perplesso.
Infine si tenga presente che una volta scaricata l’applicazione è del tutto indipendente dal browser, che può essere chiuso, dato che la JVM utilizzata è esterna.
Infine se per il funzionamento della applicazione è specificata una JVM differente da quelle installate al momento sulla macchina client, Web Start ne permette il download da remoto anche  del JRE, e la sua installazione automatica.
Quello che al momento lascia un po’ di dubbi sulla reale utilizzabilità del prodotto è la presenza delle due versioni (una per IE, l’altra per Netscape) ed  il fatto che alla fine si tratta pur sempre di un plug-in da installare nel browser, anche se questo problema dovrebbe essere risolto con le prossime versioni di Netscape (per Internet Explorer si dovrà attendere gli effettivi sviluppi della questione legata allo smembramento di Microsoft). 
Al momento Java Web Start è una Early Access, per cui non ha molto senso spendere troppe parole sulla stabilità compatiblità ed altro, rimandando commenti più completi ad un futuro più certo.
L’altro evento degno di nota è stato l’annuncio di un progetto dell’esercito americano circa l’utilizzo di Jini come tecnologia di base per la realizzazione di sistemi distribuiti fault tolerant. 
Unitamente a Jiro,  suo diretto discendente,  in questo momento intorno a Jini vi è  un gran parlare ed  è  convinzione comune che si tratti di un’ottima invenzione, potente ed estramente versatile. 
Il dubbio che tutti si pongono è se effettivamente avrà successo, dato che si tratta di un sistema proprietario, la cui adozione, a detta di molti,  potrebbe rappresentare il passo verso l’instaurazione di un nuovo massiccio sistema monopolistico: Java evrywhere al posto di Windows evrywhere.
Non so se queste paure siano giustificate oppure no, probabilmente vi è un fondo di verità, anche se reputo il Java evrywhere meno pericoloso specie se sapremo fare tesoro delle esperienze passate e soprattutto attuali.
A parte queste considerazioni di “fanta-tecno-politica”, e considerando Jini effettivamente per quello che  è, ovvero una tecnologia per la gestione automatizzata di network collaborativi, l’adozione da parte dell’esercito americano è sicuramente una notizia molto interessante.
Se si pensa che una motivazione analoga (ovvero creare un sistema distribuito di comunicazione  fault tolerant) ha spinto l’ente governativo a dar vita al famoso progetto ARPA, progenitore di internet, è probabile che anche per Jini si prospetti un futuro di diffusione di massa.
Sulla carta questo annuncio è piuttosto importante, anche se ovviamente deve essere inquadrato nell’ambito in cui è stato fatto, JavaOne,  la più importante cassa di risonanza mondiale su Java. 
Per sapere se si tratta solamente di propaganda oppure di qualcosa di più non resta che attendere. 

Il terzo aspetto  su cui vorrei far puntare l’attenzione è  la crescita complessiva del settore commerciale legato a Java. Se fino a qualche tempo Java era visto come un promettente sistema in crescita, ma ancora lontano da rappresentare il punto focale della IT mondiale, adesso molti sono gli indizi che fanno pensare l’inizio di una inversione di tendenza. 
Alla conferenza di S.Francisco fra i molti segnali di crescita di Java, uno mi è parso particolarmente interessante e riguarda il settore dell’editoria. Riviste come Java Developer’s Journal o come JavaPro sono cresciute molto, sia per quanto riguarda i contenuti, sia e soprattutto per le dimensioni. 
La prima in particolare, che  esce regolarmente ormai da 5 anni, nel numero di giugno 2000 offre più di 200 pagine fra articoli ed inserzioni pubblicitarie esclusivamente legate a prodotti per Java: la presenza sempre crescente della pubblicità, se da un lato può infastidire il lettore, è un segnale importante della crescita esponenziale del settore.
 
 
 

Conclusioni
Al rientro in Italia, dopo un periodo più lungo del solito passato a smaltire il fuso orario differente,  mi chiedo ormai accade ogni volta dopo un Java One se ne sia valsa la pena, se effettivamente è stato interessante, se avrò qualcosa da raccontare un giorno ai miei  nipoti.
Probabilmente molte delle cose dette potevano essere trovate con un po’ di fatica su internet, ma certamente essere presente direttamente nell’hot spot della tecnologia è stato molto importante per misurare lo stato di salute di Java&C. 
Dovendo fare una sintesi dell’evento si potrebbe dire che il settore sia letteralmente esploso, che Java è ormai indiscutibilmente considerata una realtà di fatto, realtà utilizzata concretamente in ambiti strategici come eCommerce e programmazione distribuita.
Il taglio che è stato dato a JavaOne quest’anno era di una specie di SuperMegaCorso dal taglio medio avanzato su Java e sulla tecnologia annessa, ad indicare che c’è moltissima richiesta da parte di nuovi arrivati. 
Se sei un JavaGuru e non eri presente alla manifestazione, probabilmente potrai continuare ad essere un JavaGuru ancora per molto. 
Se invece il tuo livello è medio allora molto utile sarebbe stato poter partecipare all’evento.
Per tutti quelli che non ci sono stati, probabilmente potranno aver modo di recuperare l’occasione mancata leggendo i prossimi numeri di MB dove parleremo ancora di Java One e delle novità presentate.
 
 
 

A proposito del  titolo
Perché ho scelto “Java One missione impossibile” come titolo dell’articolo? Un motivo vero non c’è, forse perché per il secondo anno consecutivo non sono riuscito a fare foto alla conferenza,  questa volta a causa di  un guasto meccanico alla mia macchina fotografica; oppure perché in quei giorni in USA usciva Mission Impossible 2, ed il battage pubblicitario si faceva pressante; oppure infine forse perché suona bene e fa molta scena.
 
 

Bibliografia
[1] “Fattorie remote” di Giovanni Puliti, MokaByte rubrica MokaHints
http://www.mokabyte.it/mokahints

[2] “The Server Side” – sito orientato alla programmazione lato server con alcuni interessanti spunti sulla programmazione per  pattern con EJB – http://www.theserverside.com
 

Chi volesse mettersi in contatto con la redazione può farlo scrivendo a mokainfo@mokabyte.it