La difficoltà che spesso attanaglia il programmatore risiede nella necessità di realizzare un’applicazione che, nella sua vita, potrà essere eseguita sulle diverse piattaforme software ed hardware disponibili in commercio. Java nasce proprio con tale esigenza che si manifesta nell’impegno di realizzare un ambiente di programmazione che si dimostrasse totalmente indipendente dalla macchina.
Nei linguaggi compilati, il codice sorgente, attraverso l’utilizzo di un particolare software detto appunto compilatore, è trasformato nel corrispondente codice in linguaggio macchina che può essere, così, eseguito dal processore. Tale processo lega l’esecuzione dell’applicazione all’ambiente in cui il codice sorgente è stato compilato.
Nei linguaggi interpretati, invece, il codice sorgente non necessità di un compilatore che lo trasformi in codice eseguibile bensì è l’interprete che si occupa di tradurre le istruzioni in linguaggio macchina. Così un programma destinato a girare su una particolare piattaforma potrà essere eseguito anche su un altro tipo di piattaforma, basterà che in entrambi i casi sia installato l’interprete.
Java si pone a metà strada tra queste due tecniche nel senso che è sia compilato che interpretato; allora il codice sorgente è prima compilato in un formato intermedio che prende il nome di byte code (codice binario), che è quindi interpretato dalla Java Virtual Machine (JVM), che assume il compito di interpretare le istruzioni presenti nel bytecode e di convertirle in istruzioni eseguibili dal processore.
Attraverso l’impiego di tale tecnologia introduciamo la possibilità di controllare eventuali errori del codice sorgente, nella fase di compilazione, ed allo stesso tempo produciamo programmi leggeri, grazie al fatto che il bytecode assume dimensioni ragionevoli. L’ambiente di sviluppo di Java comprende quindi due parti: un compilatore ed un interprete.
La portabilità di Java, si realizza appunto con l’impiego della Java Virtual Machine (JVM). Nel caso delle applet, l’interprete del bytecode è già integrato in qualsiasi browser compatibile con Java (nel caso non fosse presente risulta facilmente scaricabile ed installabile): le applet allora sono eseguite in modo automatico.
Per le altre applicazioni Java, è necessario avere installato l’interprete sul proprio sistema; questo può essere ottenuto come parte di un ambiente di sviluppo, liberamente scaricabile dal sito del produttore ed installabile sulla propria macchina in maniera semplice e veloce.