Data la modesta quantità di pagine HTML che si vogliono presentare si è presupposto che il lettore abbia almeno qualche conoscenza base del linguaggio C.
Il linguaggio è nato dal linguaggio OAK, usato inizialmente dalla SUN MicroSystem per la gestione di hardware come la TV via cavo. Il progetto fu però abbandonato per scarse richieste hardware e la SUN, pensò di sfruttare allora il linguaggio in ambito INTERNET. James Goslin produsse le prime versioni del linguaggio Java nel 1994.
Il nome J.A.V.A. sembra sia nato in ambito MARKETING come scherzoso acronimo: "Just Another Vague Acronym".
La SUN, inizialmente, produsse il Java Development Kit (JDK), che oggi ha raggiunto le versioni 1.2.2, 1.3.1 e 1.4 commercializzate, con leggera confusione, anche col nome di JAVA 2, SDK e J2EE, questo per la volontà di intendere un cambio d'era tecnologica.
Oggi Java è un linguaggio standardizzato dall'ISO e permette di realizzare sia applicazioni Stand-alone, sia GUI che Web-based (applet, servlet).
Nel rapporto "The Java Language Environment" di James Goslin si dice che Java è "orientato agli oggetti, stabile, sicuro, neutro rispetto all'architettura, ad alte prestazioni, interpretato, multi-threading e dinamico".
In particolare le caratteristiche di portabilità e di neutralità sono i due lati di una stessa medaglia: l'ABI e l'API, che esamineremo nel seguito.
PORTABILITA'
La portabilità è la caratteristica che ha un codice SW se esso è in grado di funzionare su diverse macchine (con CPU diversa) ricompilando almeno il codice. Tale caratteristica è possibile se esistono API standardizzate per le diverse macchine. Le API (Application Programmer Interface) non sono altro che le chiamate a funzione di una libreria: ad esempio una libreria per la gestione di interfaccia utente, etc. Se le API utilizzate sulle diverse macchine sono le stesse, allora anche se le CPU sono fisicamente diverse (a 32 bit, a 64 bit etc.) è sufficiente una ricompilazione del SW affinchè esso funzioni. Java è portabile perchè ha uno stesso identico comportamento (la stessa API) su diverse piattaforme hardware. Java, inoltre, utilizza il set di caratteri UNICODE a 16 bit, che è una estensione del codice ASCII a 8 bit ed è fissata la rappresentazione degli interi a 32 bit, dei double a 64 bit.
In realtà con Java cambiando la piattaforma hardware non occorre neanche ricompilare, grazie alla caratteristica di neutralità!
NEUTRALITA'
In generale tutti i compilatori sono creati basandosi sull'ABI (Application Binary Interface), ovvero a partire da:
Questo è anche il motivo per cui esiste anche hardware compatibile o clonato: INTEL, AMD, proprio perchè le CPU create dalle varie aziende sono tali che tutto il SW che rispetta le stesse specifiche ABI funziona in modo identico.
Java è neutrale rispetto all'architettura perchè il codice binario ottenuto; (bytecode) è eseguibile su qualsiasi CPU e qualsiasi Sistema Operativo. Questo è possibile perchè non è compilato, ma interpretato! L'idea non è nuova e già sperimentata con scarsa fortuna con l'UCSD Pascal. Il codice Java viene difatti compilato per ottenere non l'obj classico, ma un formato binario intermedio standard - definito bytecode -, ovvero che rispetta sempre la stessa ABI (ABI unica).
Ogni piattaforma ha una propria "Virtual Machine" (VM), ovvero un interprete di bytecode, che mappa l'ABI sulla CPU a disposizione ed esegue l'applicativo.
VANTAGGI DI JAVA E SUE PRESTAZIONI
Il dubbio amletico che ha sempre assillato i linguaggi interpretati è : "E' veloce o lento? ".
Java, in realtà, è nato in un momento in cui la tecnologia è molto matura:
La diatriba è simile a quella che un tempo esisteva tra chiarezza del SW per la manutenzione e l'efficienza dell' applicativo. Il linguaggio Java è molto chiaro e riusabile grazie all'Object Oriented ed è più solido rispetto ad altri linguaggi. Quando si opera su INTRANET/INTERNET si opera secondo un'architettura distribuita del tipo Client/Server. Quello che accade tra Client e Server è la seguente fase di colloquio:
Le librerie Java sono di piccole dimensioni come codice, in modo di ottimizzare i tempi di trasferimento FTP e le prestazioni. Per le applicazioni INTRANET/INTERNET, Java ha costituito un passo in avanti rispetto al solo HTML (HyperText Markup Language) che è statico, ma anzi permette animazioni, filmati, registrazioni audio etc. Ovvero è un linguaggio dinamico.
SOLIDITA' DI JAVA
James Goslin ha creato il linguaggio Java molto simile al C++ ma con semplificazioni ai fini della solidità del linguaggio:
Ogni programma deve essere obbligatoriamente organizzato secondo classi, non come il C++ che può essere usato come C;
SICUREZZA DI JAVA
L'utilizzo maggiore di Java è in ambito INTERNET/INTRANET e questo potrebbe sconfortare gli utenti ai fini della sicurezza. Invece JAVA è SICURO!!
Il linguaggio è tale che, nel caso di applet per utilizzo su INTERNET o INTRANET, esse non possono, principalmente:
Java non è che sia migliore del C++. Nessuno può seriamente affermarlo!! Tuttavia ci sono cose che il C++ non può fare: la possibilità di operare su INTERNET grazie a librerie insite nel linguaggio. Java è più solido ed obbliga all'uso dell'Object Oriented.
Iniziare con Java permette anche di imparare a scrivere programmi in C++ obbligando il programmatore ai dettami Object Oriented. Vale la pena di conoscere e saper usare entrambi i linguaggi. COME INIZIARE CON JAVA Oggi esistono certamente molti tool RAD (Visual Cafè, WorkShop, etc.) che permettono di realizzare applicativi o applet in Java in modo molto rapido. Tuttavia è consigliabile iniziare col JDK, distribuito dalla SUN gratuitamente, che permette di apprendere le basi del linguaggio.
Clicca qui per collegarti alla SUN e ottenere il JDK => Sito-SUN-MicroSystem
Ad oggi solo Netscape Communicator e HotJava della SUN sono veramente Java compatibili. HotJava è scritto totalmente in JAVA.
Internet Explorer, ad esempio, è basato su Java su tecnologia ActiveX, sfruttante gli OCX . Microsoft, tra l'altro, sta cercando di crearsi un mercato parallello con C# e cercando di imporre la metodologia DCOM: non si vede però come riuscirà a risolvere la problematica della neutralità rispetto all'architettura!
La maggior parte dei browser fanno oggi riferimento a diverse versioni Java:
INSTALLAZIONE DEL JDK
Il JDK è installabile solo sulle seguenti piattaforme:
Lanciate con Gestione Risorse l'eseguibile ed accettate tutto ciò che vi propone; in genere vi propone di installare il tutto sotto lo directory c:\jdkxyz , dove x=1, y=1o2o3o4. (Va bene anche un altro hard disk)
Dopo è necessario modificare l'autoexec.bat del PC: farne prima un backup. Alla fine per verificare se funziona occorre riavviare il PC.
Nell'autoexec.bat è necessario inserire CLASSPATH e modificare PATH.
Esempio di porzione di autoexec.bat per JDK (Valido per Windows 98/2000/NT/XP:
.........
SET PATH=C:\JDK131\BIN;D:\MieiApplicativiJava;%PATH%
rem ### Inizio Parte Java JDK ###
SET CLASSPATH =.;C:\JDK131\LIB\jre\lib\rt.jar;D:\MieiApplicativiJava
rem ### Fine Parte Java JDK ###
........
Nel CLASSPATH si è aggiunto '.' per indicare la posizione corrente, il percorso della libreria che risulta zippata (non aprirla con WinZip o altro) ed il percorso dove intendiamo sviluppare i notri applicativi (D:\MieiApplicativiJava).
Nel simbolo PATH va, invece, aggiunto dove sono gli eseguibili da attivare come: javac, java, javadoc, appletviewer, jar, etc.