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
|