Questo è un articolo che ho scritto per AmyResource

Uno degli ultimi interessanti sviluppi in fatto di programmazione è senz’altro Java, linguaggio studiato e realizzato dalla Sun. Tale linguaggio si pone, come obiettivo principale, quello di produrre codice utilizzabile senza alcuna modifica in più piattaforme, e grazie all’uso della JVM (Java Virtual Machine), ci riesce in pieno. Caratteristica del compilatore Java è infatti quella di produrre un codice in formato intermedio, destinato ad essere eseguito (interpretato) in qualsiasi piattaforma che disponga di una JVM; in parole povere, lo stesso programma può essere lanciato indifferentemente sotto CPU e sistemi operativi diversi. Diciamo pure che si tratta di una mentalità nettamente opposta a quella di Microsoft…

Nel dettaglio, la JVM è la macchina “ideale” su cui gira un programma Java, e per ideale ci riferiamo al layer puramente teorico su cui si basa un’applicazione Java; detto in soldoni, possiamo vagamente paragonare la JVM ad un emulatore.

Risulta evidente come un tale linguaggio abbia senso soprattutto se correlato ad Internet, dove vi accedono i più disparati tipi di computer: attualmente, nel Web il Java è piuttosto utilizzato tramite le famose Applets. Non mancano poi interi pacchetti basati su Java, un esempio è Corel Office for Java della Corel; una lista di interessanti compiti affidati a Java la si può trovare nel sito di riferimento della Sun, http://java.sun.com.

Le altre caratteristiche proprie di Java sono la totale orientazione ad oggetti (OOP, Object Oriented Programming), l’alta familiarità con C/C++ e l’affidabilità. A detta di molti, Java è quello che sarebbe dovuto essere il C++ sin dall’inizio.

Per quanto riguarda la GUI di un programma Java (ammesso che se ne faccia uso, visto che si può comunque usare la linea di comando), sono a disposizione del programmatore delle particolari classi che vanno sotto il nome di AWT (Abstract Window Toolkit), le quali fanno sì che pure quello che potrebbe essere uno dei maggiori ostacoli alla portabilità di un programma, l’interfaccia appunto, sia intelligentemente aggirato. L’AWT in particolare prescrive che la descrizione dell’interfaccia sia logica e non definita a priori; possiamo fare un raffronto con quanto avviene con la MUI sotto Amiga.

Ovviamente, le classi di Java non si fermano qui: ce ne sono anche di dedicate al networking (Internet in primis), gestione di applets, utilità varie, eccetera. La Sun dà il più totale supporto agli sviluppatori, che possono gratuitamente prelevare il developer kit con tutto il necessario per creare un ambiente di lavoro.

JVM SU AMIGA

I due principali progetti di creazione di una JVM su Amiga sono MOca della Finale Development (www.finale-dev.com) e MERAPI della Haage & Partner (www.haage- partner.com). Tuttavia, nessuno dei due è ancora disponibile nè al momento si hanno notizie certe sul loro rilascio. E` in ogni caso presente il porting di Kaffe, curato da ADE (Amiga Developer Environment, progetto di Fred Fish, il cui sito principale è http://www.ninemoons.com), che seppure carente di alcune caratteristiche (in particolare è assente il supporto all’AWT, Abstract Window Toolkit), ci permette di “fare” Java anche su Amiga (pur tuttavia in maniera magari meno elegante rispetto ad altri sistemi). Purtroppo, nella versione Amiga Kaffe non permette la compilazione JIT (Just In Time, ovvero solo di quelle parti che servono al momento ed in codice nativo, aumentando notevolmente la velocità).

Ulteriori informazioni su Kaffe si possono trovare nel sito principale, http://www.sarc.city.ac.uk/~tim/kaffe, dove sono anche indicate alcune interessanti mailing list dedicate interamente a Kaffe.

INSTALLAZIONE DI KAFFE

E` opportuno evidenziare che l’esecuzione di codice JAVA è un compito piuttosto impegnativo per la CPU ed a maggior ragione lo è la fase di compilazione del sorgente; ne consegue che per poter sviluppare ed eseguire codice Java senza lunghe attese è necessario disporre possibilmente di un 68040/060. L’occupazione di spazio nel disco rigido non è molta, infatti in meno di 2Mb ci sta tutto il necessario, principali classi comprese. In questo numero di AmyResource abbiamo incluso il porting di Kaffe di ADE: limitatevi a copiare il cassetto Java presente nella directory della rivista in un posto a vostra scelta del vostro hard-disk e, se vi risulta comodo, create un assign Java: alla directory appena creata. Va poi impostata la variabile ambiente CLASSPATH, che contiene appunto il percorso delle classi:

setenv Java:share/kaffe/classes.zip;.

dove Java: è il path della directory (il punto finale è compreso). Per comodità, si 

dovrebbero anche settare questi due alias:

alias javac Java:bin/kaffe sun.tools.javac.Main []
alias java Java:bin/kaffe []

Infine, per evitare degli stack overflow (comunque Kaffe vi avverte se non c’e` sufficiente stack), ponete lo stack a 50.000 o 100.000:

stack 100000

UTILIZZO DI KAFFE

Una volta installato tutto, per compilare ed avviare un proprio progetto Java è sufficiente utilizzare gli alias che sono stati precedentemente impostati; in particolare, per compilare è sufficiente battere:

javac programma.java

Per eseguire il programma, basta invece dare:

java classeprincipale

dove in questo caso classeprincipale rappresenta il nome della classe (senza l’estensione .class) che contiene la main().

ESEMPIO DI PROGRAMMA IN JAVA

Ecco il più classico dei programmi di esempio, un “Ciao mondo!”:

class ciaoMondo
{
	static public void main( String args[] )
	{
		System.out.println( "Ciao mondo!" );
	}
}

Come potete notare, anche una semplice chiamata ad una funzione di output su console evidenzia come il linguaggio sia pesantemente object oriented tramite l’utilizzo di classi; è anche da notare la somiglianza con il C/C++.

Purtroppo, come già accennato la AWT non è ancora presente sotto Amiga (attendiamo impazienti il rilascio di Merapi e MOca) e Java risulta essere ancora un avvenimento marginale per quanto ci riguarda; in ogni caso, l’importante è che anche su Amiga esiste Java, e possiamo senz’altro star sicuri che ben presto anche noi potremo sfruttare al massimo questo flessibile ed interessantissimo linguaggio. Appena si avrà un ambiente di sviluppo decente e soprattutto saranno disponibili le classi più utili, potremo tra l’altro eseguire applicazioni come il già citato Corel Office for Java.

COREL OFFICE FOR JAVA

Un paio di righe le riserviamo anche a questo interessante pacchetto di produttività in diretta concorrenza con Microsoft Office; la principale differenza concettuale tra queste due suite risiede nel fatto che Corel Office adotti una filosofia di client leggero (Thin Client), ovvero che nel pacchetto di base sono incluse soltanto quelle funzioni che sono realmente utilizzate dalla maggioranza degli utenti: ciò non significa assolutamente che le funzioni più avanzate non siano disponibili, infatti tutte le “estensioni” che si dovessero rivelare necessarie sono prelevabili tramite Intranet (da ciò si deduce che Corel Office for Java è incentrato sul lavoro di gruppo) dal server principale.

CONCLUSIONI

Da quanto detto, risulta chiaro che Java è una notevole innovazione nel campo dell’informatica, e l’Amiga non può affatto permettersi di non parteciparvi; non v’è dubbio che vi siano ancora delle ombre su Java, ma siamo sicuri che il futuro riserverà interessanti sorprese, e parte della sopravvivenza della nostra piattaforma sarà dovuta sicuramente anche a questo linguaggio.


Leave a Reply

Your email address will not be published.