Seminario tenuto al Dipartimento di Fisica di Bari il 15 Gennaio 1997.
La struttura di questo seminario:si puo' insegnare Java in un'ora?
Questo seminario e' una ideale continuazione di un
seminario su Internet
tenuto 2 anni fa e basato sull'HTML. Cioe' e' un aggiornamento su Internet
e sui materiali interattivi aggiunti ad essa da Java.
Purtroppo Java a differenza dell'HTML e' un linguaggio di programmazione ed e' impossibile da insegnare in un'ora.Come sanno i programmatori di professione occorrono mesi se non anni. Ed allora? Questo seminario e' dedicato anche a chi non e' esperto di programmazione e l'approccio usato e' quello di un ingegnere che mostra come si costruisce un ponte o altra opera di ingegneria in un'ora usando dei modellini o dei pezzi lego. Anche chi non e' esperto potra' apprezzare come questa costruzione avvenga e magari dopo il seminario potra' cominciare a giocare con questi modellini iniziando magari una carriera di programmatore.
Questa parte in cui insegnero' a scrivere programmi in Java si basa su un applet (programma) di una certa complessita'. Ma per arrivare a questo ,che e' il cuore del seminario, ci sara' una breve introduzione "storica" e la spiegazione di come si fa ad utilizzare i materiali Java scritti da altri. Questa prima parte non richiede alcuna conoscenza di programmazione.
Circa 2 anni fa Internet aveva un problema,vedremo fra poco quale,e la Sun
da parte sua aveva speso un sacco di soldi per questo nuovo linguaggio per
"tostapani" o altri gadget, senza riuscire a ricavarne niente. Java poteva
risolvere questo problema di Internet e Sun pensa bene di regalarlo alla rete.
E' cominciata da allora la fortuna di Java.
Per utilizzare un applet non e' necessario copiarlo su proprio disco.
Anzi non e' nemmeno consigliabile perche questo di solito vi puo' creare
dei problemi. Solo se l'applet deve usare
dei files sul vostro disco (ad es. un applet che anima una serie di gif)
allora siete costretti a copiarlo(almeno per ora,per questioni di
sicurezza, un'applet puo' accedere solo ai files sul computer di provenienza).
Caricate il Java Development Kit sul vostro computer(e' questo il linguaggio
ufficiale fornito gratis dalla Sun).Lo trovate in rete ma anche su parecchi CD
allegati a libri e riviste.
Installatelo.
Ora fate partire un editor di testi (Wordpad o Notepad vanno benissimo). Tagliate il
programma sorgente e incollatelo nella finestra di Wordpad.Salvatelo come
file di testo nomeapplet.java.
Date il comando(dalla finestra MSDOS) javac nomeapplet.java
A questo punto create un piccolo HTML con l'unico comando:
Caricate questo documento in Netscape(con Java abilitato) e il gioco e'
fatto!
Prima provate senza modificare il programma. Quando vi siete familiarizzati
con queste operazioni,cominciate a fare con l'editore di testi alcune semplici
modifiche e sperate per il meglio!
Vi ho detto che la programmazione e' difficile:un carattere in piu' o in meno
e il programma non funziona.
Non spaventatevi per la marea di nuovi termini introdotti. Specialmente la
programmazione ad oggetti,da questo punto di vista, e' terribile.
Due soli termini e' importante conosciate con esattezza:nel gergo Java un programma
si chiama applicazione. Per questo motivo, un programma con interfaccia grafica
che gira all'interno di Netscape si chiama applet o applicazioncina.
Un applet ha di piccolo solo il nome perche' in genere e' molto piu'
complicato e difficile da fare di un'applicazione. Per cominciare un'applicazione
non ha bisogno di un html col comando <applet> per eseguire, ma basta
il comando (scritto a mano in una finestra MSDOS):
Tornando alla programmazione, ci sono 3 gradi complessita' che bisogna
affrontare. Nel primo gradino abbiamo programmi(applicazioni) dove ci sono
dei dati che vengono trattati da sottoprogrammi o subroutines.
Nel secondo gradino abbiamo sempre applicazioni fatte ora da "oggetti"
che comunicano inviandosi dei "messaggi":e' la famosa programmazione ad oggetti.
Infine abbiamo nel terzo gradino gli applet che sono scritti in modo
tale da funzionare all'interno di Netscape con una moderna interfaccia grafica
che risponde ad azioni dell'utente come premere un pulsante.Detto questo,
non spaventatevi e procedete a ritagliare i programmi che seguono.
Chi invece conosce il C o il C++ puo' essere interessato a queste
informazioni. Da notare che non e' necessario conoscere
C o C++ o qualsiasi altro linguaggio per imparare Java. Anzi al momento
Java nelle universita' sta rimpiazzando i linguaggi suddetti come primo
linguaggio da usare per imparare la programmazione.
Ora con Java abbiamo un'unica piattaforma.
Java inoltre rende possibile una semplificazione dell'attuale PC e di conseguenza ne permette una costruzione a prezzi ridotti.In futuro avremo PC senza
dischi,CDROM e dischetti ma con il solo collegamento in rete e come
sistema operativo Netscape o il suo equivalente. Avete bisogno di un
word processor? Cliccate su un link e il programma viene caricato via rete.Lo
usate e alla fine lo gettate via come ora fate con i documenti in rete.
Un'altra alternativa e' la tecnologia
Shockwave di Macromedia utilizzabile attraverso "plugin". Questa soluzione
ha lo svantaggio di essere proprieta' esclusiva di Macromedia e per poter creare
delle pagine interattive dovete comprare l'apposito programma(Director).
Negli ultimi anni Macromedia ha immesso sul mercato un nuovo programma
chiamato Flash per produrre animazioni di rete. Questo programma ha
avuto un'enorme successo e inoltre essendo le specifiche dei file Flash
standard , e' possibile produrre materiali Flash anche con altri programmi
disponibili gratis.
Quando si parla di Java viene subito fuori il discorso su Javascript.Ebbene
Javascript (a parte il nome) non ha niente a che fare con Java e con l'argomento di questo seminario.Se proprio volete saperne di piu' su Javascript leggete qui.
VRML non e' invece un'alternativa a Java perche' permette solo di costruire
pagine 3D e mondi virtuali.Ne parliamo perche' nel futuro di VRML Java e'
importante. Infatti nella versione 2 di VRML e' possibile associare a "hot
spots" VRML (i punti sensibili ) di un mondo 3D degli applet Java. Questo
permettera' la creazione di, per esempio, giochi 3D di rete.
Un po' di storia:come mai Java e non Visual Basic (o C++ ,etc)?
Java e' un moderno linguaggio di programmazione,buono ma non certo eccezionale.Qui ne parliamo
solo perche' dietro c'e' Internet.La fortuna di Java e' stata solo di trovarsi
al posto giusto al momento giusto.
Qual'e' il problema che Java ha risolto?
Il problema da risolvere 2 anni fa era quello di come rendere un ipertesto
interattivo.Questo e' in teoria facile. Basta attaccare a un link un programma.
Il problema su Internet e' che:
Questo problema e' stato dapprima risolto in maniera molto imperfetta con
i cosiddetti CGI script:programmi che girano sul computer remoto eliminando i
due problemi ma creandone due nuovi:
I programmi in Java eseguono sul vostro computer e risolvono i 2
problemi prima visti della indipendenza dalla piattaforma e della
sicurezza in maniera brillante nel modo seguente:
Internet il supermercato degli applet:come trovarli,come usarli.
Java ha realizzato il sogno della programmazione ad oggetti di avere dei programmi riutilizzabili. Spiego per chi non e' un programmatore, che la programmazione riguarda la soluzione di problemi col computer.
Ma spesso la soluzione di un problema non richiede arcane abilita' di programmatore
ma solo fare una rapida ricerca su un motore come AltaVista ,trovare un applet
gia' pronto e utilizzarlo seguendo queste regole.
Internet e' diventata un supermercato di applet utilizzabili da parte di tutti
qualsiasi sia il tipo di computer, cosi' come ora utilizzate immagini,suoni e
altri materiali dalla rete.In questa tabella
di motori di ricerca trovate alcune righe di risorse dedicate alla
sola ricerca di applet. Come per il Web in generale anche per gli applet
avete cataloghi di applet (il piu' famoso e' Gamelan) che classificano gli
applet in maniera sistematica oppure potete utilizzare i normali motori.
In quest'ultimo caso fate ricerche in pagine Web che hanno applet al loro
interno.
La programmazione taglia e incolla quando e' disponibile il sorgente
Di molti programmi e' disponibile anche il codice sorgente che potete
copiare e ricompilare magari con modifiche per adattarlo alle vostre
necessita'.
Questo porta a quello che chiamo programmazione "taglia e incolla" le cui
istruzioni do qui a beneficio di chi non sa come programmare.<applet code=nomeapplet.class width= height= >
</applet>
Imparate Java in un'ora
Per "imparare" Java in un'ora applicate la programmazione "taglia e incolla"
a questa serie di circa 10 programmi scelti in modo
da farvi rifare in pochissimo tempo il percorso che il programmatore fa in mesi
o anni procedendo dalle cose piu' semplici a quelle piu' complesse.
L'esempio piu' complesso che troverete e' l'applet che disegna il grafico di
una serie di numeri dati a mano.
java nomeapplicazione
Perche' Java interessa tanto i programmatori di professione?
Java,oltre a risolvere il problema di avere pagine interattive, ha introdotto
un nuovo concetto che sta rivoluzionando il mondo della programmazione ed
ha influenza anche sui normali programmi tipo word processor o foglio
elettronico. Il concetto e' quello di avere dei programmi indipendenti
dalla piattaforma che una volta scritti funzionano su ogni computer presente
o futuro.Finora un lavoro enorme veniva fatto solo per adattare il programma
scritto ad ogni nuovo computer. L'evoluzione di Java
Come l'HTML, Java e' sottoposto a una veloce evoluzione.Il materiale qui presentato
e' stato sviluppato con jdk 1.02 e poi modificato per il jdk 1.1.Ma esiste gia' un jdk 1.2 (rinominato Jdk 2 che pero' non e' ancora implementato nei browser). Quindi,in pratica, 3 Java diversi! Infatti nel passare dalla 1.02 alla 2
sono state fatte alcune modifiche e moltissime aggiunte.
Tra queste la possibilita' per un oggetto di essere salvato
su disco (in gergo serializzazione) assieme col suo stato . L'oggetto
cosi' salvato puo' essere inviato a un qualsiasi computer in rete.
Questo permette
tutta una nuova serie di applicazioni inclusa la definizione degli Javabeans che sono dei componenti Java pensati per essere usati a scatola chiusa
per costruire applicazioni complesse con sistemi di sviluppo visuali.
O ancora la gestione di base di dati distribuite e il richiamo di metodi
su un computer remoto. E' stato introdotto un nuovo modo di gestire gli eventi.
Al posto di awt (che e' il minimo indispensabile per sviluppare interfacce
grafiche) si puo' usare "swing" molto piu' completa. E cosi' via...
Alternative a Java ovvero cos'e' questo dotNet (.Net) e perche' ormai compare dappertutto
Le principali alternative a Java sono ActiveX e Shockwave.Activex e' la
proposta Microsoft per avere pagine interattive. Activex non e' un linguaggio
come Java ma una specifica di "componenti" che possono essere realizzati
usando qualsiasi linguaggio(da questo punto di vista esso andrebbe
confrontato con i Javabeans). Esso e' stato introdotto per questioni di
"efficienza" anche se Java non sembra essere tanto
inefficiente.Il problema maggiore con Activex e' che
funziona solo su macchine Wintel. Inoltre sembra avere maggiori problemi
di sicurezza rispetto a Java.
Anche la Microsoft con l'iniziativa .NET sta cercando di riacquistare
il territorio delle applicazioni online dove Java regna ora incontrastata.
Facendo questo 5 anni dopo l'introduzione di Java puo' beneficiare
delle lezioni imparate con Java e cercare di non ripetere gli stessi
errori.
Ha reinventato Java che ora si chiama C# (C sharp), la macchina virtuale
Java (CLR- Common Language Runtime) e il byte-code (formato MSIL).
Non solo C# ma tutti i linguaggi Microsoft(Vb, C++,JScript) hanno ora
un compilatore MSIL. Ogni linguaggio con compilatore MSIL puo' creare
componenti che possono eseguire su CLR magari utilizzando componenti
di altri linguaggi. A cosa serve tutto questo? A permettere in futuro
a telefonini, palmari, computer, dispositivi intelligenti (tutti
con software Microsoft) di scambiarsi dati e programmi tra di loro.
Come Java anche .NET vuole realizzare un sistema operativo di rete.
Chi vincera' tra i due? Al momento attuale (2002) .NET e' ancora
qualcosa su cui stanno lavorando migliaia di persone ma senza prodotti
concreti. Java invece e' ormai una tecnologia matura. Purtroppo
essa e' nelle mani di Sun mentre Microsoft con .NET ha avuto
la furbizia di far diventare subito C# uno standard e basare tutto
il resto su standard acquisiti (come XML). Il risultato e' che
anche il mondo Linux si sta muovendo a realizzare un .NET sulle
proprie macchine... Vedremo come andra' a finire...
Conclusione
Anche se Java non si imporra', due nuovi concetti rivoluzionari sono stati da esso
introdotti,cioe':
Questi 2 concetti sono ormai stati acquisiti e saranno in un modo o nell'altro
realizzati.La professione di programmatore e' stata per sempre cambiata da
Internet.Ma anche altre professioni che usano i programmi di computer
come quella degli insegnanti di fisica
hanno subito intravisto le possibilita' offerte
da Java e stanno sviluppando un materiale immenso in rete.
Ultimo aggiornamento: