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à. |