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: 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.
  1. Java e' un linguaggio di programmazione generale orientato agli oggetti prodotto dalla Sun e fornito gratuitamente su Internet.
  2. 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.
  3. 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.
  4. Java e' indipendente dalla piattaforma e quindi portabile sia come sorgente che come binario(il binario di Java si chiama bytecode).
  5. 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

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:
INDIETRO a Materiali del Corso HTML e Java


Ultimo aggiornamento: