Java 2 e il suo uso nella simulazione di esperimenti di Fisica
Questo seminario e' l'ideale proseguimento di La
programmazione al tempo di Internet:seminario su Java tenuto 3 anni fa.
Come il precedente si prefigge di presentare l'ultima versione di Java con un'applicazione non banale come quella di simulare un esperimento di fisica.
Con una differenza essenziale:che mentre il precedente seminario voleva
mostrare come si risolve un problema in Java,qui vogliamo invece spiegare
alcune caratteristiche avanzate di Java cercando di rispondere per ognuna
di queste:per quale motivo e' stata introdotta?
La scelta delle caratteristiche descritte e' legata al problema affrontato.
Giuseppe Zito
Questo documento viene usato al corso avanzato su Java che si tiene periodicamente al Dipartimento di Fisica di Bari. Suggerimenti e commenti sono benvenuti. Mandateli a info@zitogiuseppe.com
Al seminario
sono collegati i gruppi di esercizi 1,2,3,4,5,6,7 .
Materiale usato al seminario disponibile.
Indice
Java 7 anni e 5 versioni dopo.
In pochi anni Java ha avuto 5 versioni principali 1.0 , 1.1 , 1.2,1.3 e 1.4 .Ma dalla versione
1.2 si usa parlare di Java 2 per indicare che da questa versione
Java ha raggiunto la maturita'.
Le librerie di classi java sono nel frattempo aumentate di moltissimo.La Sun distribuisce Java ormai in 3 differenti edizioni:Standard,Enterprise e Micro.La seconda ampliata con servlet,etc. La terza invece con una macchina virtuale piu' piccola per applicazioni tipo cellulari.Inoltre queste distribuzioni provvedono anche a installare la macchina virtuale come plugin nel browser(la macchina virtuale fornita da Microsoft nel suo browser e' obsoleta).
Anche se Java non
ha rimpiazzato Windows, e' diventata (assieme a Visual Basic e C++) uno dei tre linguaggi piu' popolari. In alcune applicazioni e' insostituibile, ma anche
nelle applicazioni piu' tradizionali sta rimpiazzando linguaggi affermati.
Ormai il linguaggio e' diventato maturo e si conoscono bene i suoi punti
forti e quelli deboli.Ad esempio al Cern, anche se il linguaggio ufficiale
dei nuovi esperimenti e' il C++, alcuni compiti sono programmati in Java.
La fortuna di Java e' dimostrata anche dal fatto che la Microsoft
non potendo fare suo il linguaggio(Java e' di proprieta' della Sun) ha
creato un nuovo linguaggio C# (C sharp) quasi identico a Java. La Macchina Virtuale Java
e' diventata il CLR (Common Language Runtime) e il bytecode Microsoft e' il
formato MSIL.L'approccio Microsoft funziona ovviamente solo su macchine Windows
ma tutti i linguaggi di programmazione Microsoft possono compilare per
la macchina virtuale, non solo C#. Questo approccio viene indicato complessivamente come .NET (dotnet) e spiega perche' tutte le tecnologie Microsoft hanno
acquistato questo misterioso .NET alla fine.
La struttura di questo seminario
Java 2 ha ormai una libreria immensa di classi e si presta a moltissime
applicazioni:per questa presentazione dovevamo in qualche modo fare una
scelta di argomenti avanzati da presentare.Questa scelta e' stata fatta
considerando il problema della simulazione di un esperimento di Fisica
e le caratteristiche di Java piu' utili per questa applicazione.
Il problema si presta anche a una comprensione immediata da parte di
non esperti in quanto puo' essere presentato in maniera visiva.
Quando un ricercatore fa un esperimento reale, come misurare
l'accellerazione di gravita' facendo cadere ripetutamente un oggetto,per
interpretare i dati raccolti, deve simulare l'esperimento. Questo significa
non solo simulare il fenomeno , ma anche
l'apparato di misura e la presa dati. In pratica un server Web specializzato
,ad ogni richiesta, deve far pervenire una serie di misure simulate.
Questi dati sono analizzati da un programma che li rappresenta graficamente .
Per far questo ci sono utili queste caratteristiche di Java:
- La possibilita' di descrivere l'esperimento e il rivelatore come una serie
di oggetti.
- La possibilita di usare la multiprogrammazione:l'oggetto che cade e il
rivelatore sono in azione nello stesso momento.
- La possibilita' di costruire interfacce grafiche interattive per mostrare
un'animazione dell'oggetto che cade e per rappresentare i dati raccolti.
- La possibilta' di trasferire dati in rete sfruttata dal server che fornisce
i dati sperimentali e dal programma che li analizza su un qualsiasi altro
computer di Internet.
Queste caratteristiche di Java sono presentate in 7 lezioni che permettono di
"imparare Java in una settimana". La parte piu' importante di queste lezioni sono i numerosi esempi di programmi presentati.A ogni lezione sono inoltre assegnati degli esercizi pratici di programmazione. Alla fine del corso dovreste essere
in grado non solo di capire il programma di simulazione ma anche di costruire programmi simili.
Cos'e' Java?
Per chi,in questi ultimi anni, si fosse trovato isolato nelle giungle del Bormeo, ecco alcune cose su Java
ormai risapute da tutti.
- Java e' un linguaggio di programmazione generale orientato agli oggetti
prodotto dalla Sun e fornito gratuitamente su Internet.
- Java e' un linguaggio compilato come il Fortran o il C++ e non ha niente a che vedere con Javascript (nonostante il nome) che e' un linguaggio interpretato
e usato per scopi particolari.
- Java, nato 10 anni dopo il C++, ha potuto beneficiare dell'esperienza
fatta ed e' percio' grosso modo un C++ semplificato.A livello microscopico
di sottoprogramma ha una sintassi identica al C.
- Java e' indipendente dalla piattaforma e quindi portabile
sia come sorgente che come binario(il binario di Java si chiama bytecode).
- Java e' sicuro, nel senso che potete scaricare tranquillamente un
programma Java scritto per Internet(il cosiddetto applet)
sicuri che non danneggera' il vostro computer. E' quello che fanno
ogni giorno i browser milioni di volte e il fatto che Internet ancora
funziona e' la migliore dimostrazione di questa caratteristica di Java.
Le ultime due caratteristiche di Java (portabilita' e sicurezza) sono realizzate
attraverso il particolare modo di operare di Java.
Il programma Java e' compilato non per un
computer particolare ma per un computer generico:la
cosiddetta Java Virtual Machine. Ogni piattaforma e anche ogni browser
ha il suo simulatore della macchina virtuale java.
L'esecuzione avviene attraverso questo programma detto in gergo
interprete che esegue i programmi Java in una sand box accertandosi
che non facciano danni. Queste regole sono molto rigorose per gli applet
ma vengono attenuate per i normali programmi detti applicazioni.
Imparate Java in una settimana!
Per imparare Java in una settimana procedete a provare questa serie di circa 50 programmi presentati in 7 lezioni che vi
permetteranno di capire le piu' importanti
caratteristiche di Java. Dopo aver letto le 7 lezioni
non dovreste avere difficolta' a capire
questo esempio di simulazione di esperimento di fisica.
Java, python e jython
Python e' un linguaggio ad oggetti interattivo (cioe' interpretato) . Esso e' stato implementato in Java nel linguaggio jython. Cioe' potete pensare a jython come un python specializzato
per essere usato da programmatori Java. Python e quindi jython e' un linguaggio interessante
per se stesso, e una buona scelta per principianti, in quanto piu' semplice anche di Java.
Al tempo stesso molto potente almeno in alcune applicazioni. Ma per chi impara Java
jhyton permette di lavorare in maniera interattiva con le classi Java accelerando di molto
l'apprendimento.
Informazioni su jython
Come esempio mostro l'applicazione 15 della lezione 3 realizzata in jhyton:
jython
Jython 2.1 on java1.4.2_05 (JIT: null)
Type "copyright", "credits" or "license" for more information.
>>> from java.lang import *
>>> from java.util import *
>>> v = ArrayList()
>>> v = add("uno")
1
>>>v.add(Integer(2))
1
>>>v.add(new Double(3.))
1
>>>v.add("quattro")
1
>>>v.add("cinque")
1
>>>v.add("sei");
1
>>>v.size()
6
>>> iter = v.iterator()
>>> for i in range(6):
... print iter.next()
...
uno
2
3.0
quattro
cinque
sei
Aspetti di Java non trattati
- RTTI(Run-Time Type Identification) e Reflection : come ottenere informazione
sugli oggetti all'atto dell'esecuzione del programma.
- La realizzazione di componenti riutilizzabili JavaBeans e la programmazione visuale con Java
- Connessione a database con JDBC
- Uso di oggetti remoti con RMI e Corba
- Protezione,certificati elettronici e crittografia.Creazione di applet sicuri.
- Stampa con Java.
- Il trattamento di immagini.
- Java 2D e grafica avanzata.
- Java 3D e VRML
- Trattamento multimedia.
- Uso di Java per scrivere servlet, cioe' programmi che girano richiamati
da un server Web.
- Enterprise Java Beans
- Jini
- Uso metodi nativi.
- Sviluppo di applicazioni per PDA,telefoni Web,etc.
- Uso di Java per realizzare pagine DHTML e XML.
Conclusione
La rivista Communication of ACM in un numero speciale dedicato a Java,si chiedeva:Perche' continuiamo a usare Java?
Voleva dire:Perche' continuiamo a usare Java ora che i suoi limiti sono ben conosciuti,ora che non e' piu' sui titoli
dei giornali,ora che molti progetti della prima ora sono falliti (vedi Corel),
ora che la rivalita' Sun-Microsoft minaccia di soffocare il linguaggio.
La mia risposta:
- Usiamo ancora Java perche' in alcuni casi non abbiamo alternative.
- Usiamo ancora Java perche' e' gratis e possiamo sviluppare un programma
a casa, in ufficio e su qualsiasi computer ci capiti sotto mano.
- Usiamo Java perche' il programma sviluppato e' immediatamente disponibile
su Internet e puo' essere usato su qualsiasi computer(anche non collegato a Internet).
- Usiamo ancora Java perche' abbiamo a disposizione su Internet una mole
enorme di documentazione e di esempi.
- Usiamo Java perche' possiamo usufruire del supporto della piu' estesa
collettivita' di programmatori online.
- Usiamo ancora Java perche' ,dal punto di vista didattico, e' il miglior modo
per imparare la programmazione ad oggetti prima di passare a un linguaggio come il C++.
INDIETRO a Materiali del Corso HTML e Java
Ultimo aggiornamento: