MokaByte 55 - 7mbre  2001
Foto dell'autore non disponibile
di
Andrea Gini
Mac OS X e
Java Standard Edition 1.3

 
Questo mese diamo un'occhiata all'ambiente Java SE 1.3 presente nella distribuzione standard di Mac OS X. La piena integrazione di questo ambiente nel nuovo Sistema Operativo è un vero e proprio invito alla comunità degli Sviluppatori Java a lanciarsi sulla nuova piattaforma, dal momento che la Apple propone proprio Java come linguaggio ufficiale per le applicazioni future. Come avremo modo di vedere, si tratta di un invito molto ben confezionato.

Interfacciamento traMac OS X e il Runtime Java: l'architettura di Sistema
Mac OS X include il supporto a Java a partire dagli strati più bassi del Sistema Operativo, in modo da rendere l'integrazione quanto più efficiente possibile. La Virtual Machine e i packages di base (java.lang, java.util, java.io e java.net), poggiano direttamente sul Kernel, ed usufruiscono delle primitive di Input/Output presenti a questo livello. Il Runtime supporta il Multi Processing, cosa che garantisce l'accelerazione hardware alle applicazioni Java Multi Thread su macchine biprocessore. I package più avanzati, come quelli che forniscono il supporto ad AWT e Swing, poggiano al di sopra del runtime Carbon, che fornisce l'accesso alle funzionalità più avanzate del Sistema, come l'ambiente grafico Aqua.


Il Runtime Java è strettamente integrato con il Sistema Operativo

Attraverso i package com.apple.cocoa.foundation e com.apple.cocoa.application, è possibile accedere direttamente all'interfaccia di programmazione Cocoa, qualora si desideri utilizzare Java come linguaggio per sviluppare applicazioni specifiche per Mac Os X. Ricorrendo a meccanismi di livello più basso, tipo JNI (Java Native Interface) o Apple JDirect, è possibile raggiungere un interfacciamento ancora più spinto con il Sistema Operativo, a discapito della piena portabilità del codice che caratterizza la distribuzione standard di Java.

 
Alcune librerie proprietarie permettono di realizzare in Java applicazioni 
Cocoa, rinunciando alla portabilità 

L'API Quick Time for Java, già trattata in un precedente articolo, offre la possibilità di realizzare applicazioni multimediali portabili tra piattaforma Windows e Mac. Per maggiori informazioni, e per scaricare gratuitamente la versione per Windows, è possibile consultare la pagina http://www.apple.com/quicktime/qtjava/install.html. 
 
 
 

Una vasta scelta di Strumenti di Sviluppo
Come ogni distribuzione di Unix che si rispetti, Mac OS X è corredato da un gran numero di Strumenti di Sviluppo: grep, awk, cc, make oltre ad una rassegna dei migliori editor a console, come Emacs, Vi o Pico. Per lavorare con Java sono disponibili tutti gli strumenti standard a riga di comando, come javac, jdb, java, appletviewer e javadoc. 

 
Tra i tools di Sistema non poteva mancare il leggendario Vi


Per chi invece fosse refrattario all'ambiente a caratteri tipico del mondo Unix, è disponibile gratuitamente un ambiente di sviluppo grafico, denominato Project Builder, che offre un facile accesso alle funzionalità del compilatore, del runtime e del debugger, oltre a facilitare la supervisione di progetti di una certa dimdensione.
 




Project Builder è un completo ambiente grafico di sviluppo


 

Nel CD Developer, fornito a corredo del Sistema Operativo, troviamo un gran numero di programmi di esempio e di tutorial, che permettono di prendere rapidamente confidenza con i nuovi tools: da segnalare il tutorial per la realizzazione di applicazioni Java-Cocoa e le specifiche per uniformare le proprie applicazioni alle linee guida dettate dall'ambiente grafico Aqua.

Le applicazioni Java, normalmente composte da una collezione di files .class e da uno script di shell che esegue lo startup, possono essere pacchettizzate con l'utility grafica MRJAppBuilder, che produce files eseguibili con un doppico click del mouse. I programmi pacchettizzati in questo modo potranno quindi essere trattati alla stregua di programmi nativi per la piattaforma Machintosh realizzati con altri linguaggi.


MRJAppBuilder permette di pacchettizzare le applicazioni Java, 
in modo da facilitarne il deployment 



Swing e il Look & Feel Aqua
L'ambiente grafico Aqua, senza dubbio l'aspetto più accattivante del nuovo Sistema, è stato integrato sia in AWT che in Swing, dove, grazie al caratteristico Pluggable Look & Feel, diventa immediatamente disponibile a qualunque applicazione preesistente. La demo SwingSet2 permette di evideziare le differenze tra i vari Look & Feel: da segnalare l'implementazione Aqua di JFileChooser, che batte di una buona misura l'implementazione Metal di Default, e che ridicolizza la versione Motif.
 


JFileChooser in versione Aqua......
 
 


.... in versione Metal......
 


.... e nella tristissima versione Motif>>


Una particolarità del Look & Feel Aqua particolarmente gradita agli utenti Mac è che i JMenu, che solitamente vengono posizionati in cima al JFrame, vengono invece visualizzati nella barra in cima allo schermo, in maniera conforme alle specifiche del Sistema. Curiosamente questo comportamento viene riscontrato solamente nei programmi pacchettizzati con l'utility MRJAppBuilder, segno che in questa particolare condizione viene fatto ricorso a librerie non standard.
 


I JMenu vengono visualizzati in cima allo schermo, come avviene nelle 
applicazioni standard Machintosh 


La demo Java 2D dimostra il pieno supporto all'API 2D fornito dall'implementazione Mac di Java 1.3. Le buone prestazioni del sistema sono garantite sia dall'integrazione con il motore grafico Quartz, che dall'accelerazione Multi Processing disponibile sulla macchina di prova.
 


La potenza dei motori grafici di Mac OS X garantisce un buon 
livello di prestazioni all'API Java 2D

 Il sistema grafico è gradevole ed estremamente responsivo, segno di un'implementazione realizzata con cura. Purtroppo non mancano alcuni problemi di visualizzazione: tra i difetti riscontrati abbiamo il componente JSlider, che se disposto in verticale, viene visualizzato in maniera difettosa durante la manipolazione; e l'espansione a pieno schermo delle finestre, che non esegue automaticamente un refresh del contenuto del Frame alla nuova dimensione.
 



Gli Slider verticali mettono in luce alcuni difetti di visualizzazione
 


L'espansione a pieno schermo non è stata implementata correttamente


Prove di Compatibilità
L'ambiente Java presente su Mac OS X è completo e presenta un buon grado di prestazioni. I demo della Sun, forniti a corredo, dimostrano il pieno supporto di tutte le funzionalità Java 1.3, in particolare quelle multimediali, come la grafica 2D, 3D e il sonoro.


La demo Sound mostra il pieno supporto all'API Java Sound

Purtroppo sono emersi anche alcuni problemi di stabilità, dal momento che i programmi di test sono andati diverse volte in crash in circostanze non chiare, cosa che non è stata riscontrata su versioni di Java 1.3 presenti su altre piattaforme.

Per avere un ulteriore riscontro informale sulla compatibilità, abbiamo provato a lanciare Magic Draw 4.1, un'applicazione commerciale realizzata completamente in Java: anche in questo caso è stata riscontrata una forte instabilità, che ha mandato in crash l'applicazione dopo pochi minuti di utilizzo. L'esito di questo test non deve allarmare, dal momento che l'applicazione non è stata ancora testata e certificata per Mac OS X, cosa peraltro evidente, dal momento che tra le opzioni selezionabili dal Pannello di Controllo manca del tutto la possibilità di impostare il Look & Feel Aqua.


E' possibile lanciare Magic Draw, un'applicazione Java non certificata per Mac OS X


Questi problemi mettono in luce il fatto che l'attuale implementazione necessita ancora di un certo collaudo: dalla sede della Apple giunge comunque la notizia che i problemi riscontrati dovrebbero essere risolti con il primo bugfix, previsto entro la fine dell'estate.
 
 
 

Conclusioni
Il nuovo Mac OS X è un Sistema  molto promettente per il programmatore Java, grazie alla sua sintesi tra la potenza della Shell Unix e la praticità di un ambiente grafico semplice, elegante e responsivo. Il giudizio resta per ora sospeso, a causa delle anomalie riscontrate: vale comunque la pena di tenere d'occhio questo nuovo prodotto della Mela Iridata, con la certezza che presto venga raggiunta la piena maturità.

Vai alla Home Page di MokaByte
Vai alla prima pagina di questo mese


MokaByte®  è un marchio registrato da MokaByte s.r.l.
Java®, Jini®  e tutti i nomi derivati sono marchi registrati da Sun Microsystems; tutti i diritti riservati
E' vietata la riproduzione anche parziale
Per comunicazioni inviare una mail a
info@mokabyte.it