Corso di Java

Introduzione a Java: caratteristiche fondamentali

 

Java è un linguaggio di programmazione estremamente semplice e potente, che racchiude in sé tutti i vantaggi della programmazione orientata agli oggetti, assieme alla possibilità di creare facilmente applicazioni che funzionano con Intenet.
Con esso è infatti possibile scrivere due tipi di applicazioni: applet e programmi stand-alone.
Le applet sono una delle novità più interessanti introdotte da Java; la loro caratteristica peculiare è quella di poter essere eseguite all’interno di un browser web abilitato, in un punto qualsiasi di una pagina html.
I programmi stand-alone sono quelli che conosciamo comunemente e che non necessitano di un ambiente software esterno per poter girare.
La principale promessa di Java è l’indipendenza dalla piattaforma, ossia la capacità dello stesso programma di essere eseguito su piattaforme e sistemi operativi differenti, cosa del tutto nuova rispetto ai tradizionali linguaggi di programmazione.

Con questi ultimi, l’operazione di compilazione di un file sorgente porta ad un file binario specifico per la macchina sulla quale il codice sorgente è stato compilato (fig. 1).

Compilare un file sorgente Java significa generare un formato speciale, detto bytecode, che potrà essere interpretato da un apposito interprete della piattaforma utilizzata (fig. 2).



Il bytecode è simile al codice macchina prodotto da altri linguaggi, ma non è specifico per alcun processore, per cui, una volta compilato il programma, il file ottenuto (avente estensione .class) potrà essere spostato da una piattaforma all’altra senza dover essere ricompilato.
In questo modo si aggiunge un livello tra sorgente e codice macchina.

L’interprete di bytecode è noto col nome di Java Virtual Machine; per un’applet essa è fornita da un browser abilitato per Java, mentre per un’applicazione stand-alone occorre che ne sia installata una sul sistema che dovrà farla girare.
Ciò costituisce un enorme vantaggio per noi programmatori, che non dovremo preoccuparci di creare versioni differenti dei nostri programmi per ogni piattaforma :-)).
Tuttavia i piaceri si pagano, e questa interessante proprietà ha un costo: questo ulteriore livello intermedio introduce un ritardo che, soprattutto per grosse applicazioni, può risultare perlomeno sgradevole.
Infatti trattandosi di un linguaggio interpretato, Java necessita di più tempo per eseguire le proprie operazioni.

Diverse sono le soluzioni pensate per risolvere questo problema, tra le quali la realizzazione di un processore capace di eseguire direttamente il bytecode (una virtual machine tutt’altro che virtuale), vanificando però la tanto sbandierata indipendenza dalla piattaforma.
Java eredita dal C++ gran parte della sintassi e della struttura OOP, ma Sun Microsystems (l’azienda che ha sviluppato Java) ha ben pensato di escludere alcune caratteristiche ambigue del buon vecchio C++, cosicché chi già lo conosce e lavora con esso da tempo, sebbene non troverà difficoltà ad imparare a programmare in Java, tuttavia potrà trovarsi spiazzato dall’assenza di alcune funzionalità del vecchio linguaggio, come i puntatori e l’ereditarietà multipla (ne parleremo meglio nelle prossime lezioni).
Particolare attenzione è stata posta dai progettisti di Java al problema della sicurezza, così tanto sentito nell’era di Internet e dell’e-commerce, soprattutto nelle applet.

Queste ultime, infatti, hanno delle limitazioni intrinseche, appositamente volute per assicurare che nessun programmatore malizioso possa creare applet che eseguano operazioni dannose o indiscrete a danno dei client che aprano una determinata pagina web.
In particolare, un’applet non può:
Leggere o scrivere file sul sistema dell’utente (di conseguenza nemmeno eseguire programmi su di esso o prelevarne informazioni di alcun tipo)
Comunicare con un sito Internet diverso da quello su cui viene distribuita la pagina web che include l’applet
Nonostante gli sforzi compiuti da Sun in questo senso, non si può essere sicuri al 100%, e su Internet non è difficile trovare informazioni sulle cosiddette “hostile applets”.

Ora che conosciamo Java più da vicino, passiamo ad esaminare lo strumento di sviluppo distribuito gratuitamente da Sun, il Java Development Kit.

Alla prossima.

 

Torna all'indice Generale del corso di Corso di Java di Software Planet