Le novità
funzionali
Complessivamente,
fra miglioramenti apportati e novità introdotte, con la versione
3 attualmente JBuilder dispone di:
-
Un ambiente realmente
visuale per la programmazione Pure Java 2;
-
Programmazione visuale
in modalità 2WayTool, modalità che adesso è stata
migliorata eliminando l’utilizzo di ogni tag marker proprietario;
-
Bean Express per
una più semplice creazione di componenti Java Beans , ed Enterprise
Java Beans ;
-
Nuove funzionalità
di interfacciamento con i database basate su JDBC con DataExpress;
-
Lo sviluppo di programmi
database-oriented si avvale anche di AppGenerator e DataModeler.
-
Lo sviluppo di applicazioni
web server side basate su servlet è più semplice, soprattutto
in fase di debug (vero tormento per i programmatori di servlet);
-
Remote Debugger
con supporto per JDK multipli (dalla versione 1.1.7 alla 1.2)
-
Programmazione di
oggetti distribuiti basata su CORBA grazie a VisiBroker (prodotto in passato
da Visigenic, società acquisita adesso da Borland); la programmazione
CORBA si avvale anche di CORBA Express per la realizzazione di applicazioni
distribuite.
|
Figura
1 - Il dialog di about di JB3: come si può notare riporta
il logo 100% Pure Java Compatible
L’interfaccia
grafica
Sicuramente
l'aspetto che più prediligo dell'ambiente di sviluppo è il
cosiddetto AppBrowser che permette di tenere sotto controllo con un'unica
finestra tutte le componenti del progetto (file .java, immagini, html,
.class) con una flessibilità molto spinta. Addirittura selezionando
file .class si può avere una visualizzazione generica del sorgente
decompilato. La comodità di questo strumento è la possibilità
di editare direttamente anche oggetti non direttamente coinvolti nella
programmazione Java, come i file html nel caso di servlet e applet, file
jar per i Beans, o semplici file di testo di configurazione.
L'AppBrowser
permette inoltre di gestire il progetto sia in forma testuale che visuale.
Nel mare dei
potentissimi strumenti di cui ormai tutti gli ambienti dispongono (da compilatori
incrementali, a debugger remoti) ritengo questo oggetto molto semplice
ma eccezionalmente efficace.
|
Figura
2 - La toolbox con i vari componenti swing utilizzabili
all’interno di un progetto.
JDK Multipli
Come è
noto, Java dalla sua apparizione con il JDK 1.0 si è evoluto molto,
fino ad arrivare all'ultima versione, quella del JDK 1.2, che per motivi
di immagine e marketing è stata rinominata Java2.
Benché
il processo di evoluzione della tecnologia sia stato abbastanza indolore
(tanto che è stata mantenuta quasi sempre la compatibilità
all'indietro), le varie piattaforme (JDK 1.xx) sono in genere piuttosto
differenti fra loro.
Per questo motivo,
sempre più spesso diviene utile poter disporre della possibilità
di cambiare (in maniera semplice e veloce) la piattaforma target: con una
semplice procedura basata su interfaccia grafica, è possibile definire
anche modalità di compilazioni differenti (scegliendo compilatore,
set package ed altri parametri).
Two-Way-Tool
pure Java
La programmazione
visuale sarebbe poca cosa se non fosse disponibile un qualche meccanismo
di sincronizzazione fra la parte di progettazione grafica e quella testuale.
Serve infatti un qualche strumento che permetta di mantenere allineato
il codice e la sua rappresentazione grafica ogni volta che viene effettuata
una modifica in maniera visuale, e viceversa (cioè ogni cambiamento
al codice deve essere automaticamente gestito in modo che l’interfaccia
grafica della applicazione sia sempre aggiornata).
Questo meccanismo
è stato introdotto ormai da tempo nei maggiori tool visuali di programmazione
e ne rappresenta un elemento fondamentale.
Quello che però
spesso lascia piuttosto a desiderare è la modalità con cui
il codice viene prodotto in automatico: per permettere infatti che il parser
comprenda cosa c’è scritto nel codice e ne dia una rappresentazione
grafica (cioè ad esempio per capire dove un determinato pulsante
deve essere posizionato in una finestra, o come deve reagire al verificarsi
di un certo evento), spesso i vari tool di sviluppo introducono una sintassi
proprietaria, composta di formalismi e marker particolari.
Si tratta sempre
di codice Java vero e proprio, che però è scritto in modo
particolare. Se questo non pregiudica affatto la portabilità del
codice bytecode (sempre che sia prodotto Pure Java), comporta alcune difficoltà
relativamente alla interpretazione del codice in ambienti differenti da
quello di origine (accade molto spesso che il formalismo di produzione
del codice sia differente fra due prodotti, come ad esempio JBuilder o
Visual Café).
Nella versione
3 di JBuilder questa problematica è stata in parte ridotta, dato
che il codice che si ottiene al termine della generazione di una interfaccia
grafica è molto meno dipendente dal tool: sono infatti stati eliminati
marker proprietari, tutto a beneficio della chiarezza e pulizia del codice
(anche se ancora non si raggiunge la perfezione assoluta).
Probabilmente
fra poco tempo potremo disporre di strumenti molto più eleganti
in grado di "capire" il codice senza bisogno di trucchi strani o cose del
genere.
E' vero però
che JBuilder dispone di un'arma in più rispetto alla concorrenza:
il fatto che nell’ambiente IDE di JBuilder ci sia una JVM sempre in esecuzione,
anche se da un lato rallenta l’esecuzione delle operazioni, porta miglioramenti
proprio in questo senso. Infatti la VM opera come un vero e proprio interprete
del codice e non come un semplice parser che tenta di dedurne la struttura.
Java Beans
ed Enterprise JavaBeans
Quella della
programmazione per componenti è ormai diventata una modalità
di lavoro molto diffusa, tanto che i maggiori ambienti di sviluppo la integrano
in profondità al loro interno: JBuilder come molti altri permette
di utilizzare JavaBeans sia in modalità testuale (come se si trattasse
di normali classi Java) sia in fase di progettazione visuale.
All’interno
di JBuilder 3 sono stati introdotti circa 300 componenti fra JFC/Swing,
JBCL (i bean prodotti dalla casa), dbSwing. Per molti di tali oggetti è
possibile disporre del codice sorgente, cosa che permette ai più
curiosi di andare a sbirciare al loro interno per imparare cose nuove,
ed ai più esigenti di personalizzare il comportamento dei vari oggetti.
La presenza
di DataExpress ed altri wizard inclusi nel prodotto per la realizzazione
di bean ex novo è molto semplificata, potendo partire da una base
di codice sorgente creata in automatico.
EJBExpress invece
permette di realizzare in modo semplificato componenti Enterprise JavaBeans:
tali oggetti stanno diventando sempre più importanti anche grazie
al loro coinvolgimento nella tecnologia JavaServer Pages (JSP) e rappresentano
i mattoni elementari per la realizzazione di applicazioni web based.
|
Figura
3: Il code completion entra in funzione non appena si preme il punto
e permette di scegliere il metodo o la proprietà per l’oggetto in
questione. La
funzionalità è disattivabile
Database
Strettamente
legato al concetto di componenti Beans troviamo quello della gestione database:
i vari componenti disponibili, unitamente alla presenza di alcuni driver
JDBC offrono la possibilità di interfacciarsi con i maggiori database
commerciali disponibili adesso in commercio, come Oracle, Sybase, Informix,
DB2, Interbase (che è fornito nel pacchetto e che rappresenta un
ottimo punto di partenza per realizzare le prime applicazioni).
Sempre in tema
di database, troviamo il JdataStore: si tratta di un componente utilizzabile
come un piccolo database scritto in Java. Questa caratteristica, tra le
altre cose, permette di risolvere l’annoso problema della portabilità
dei dati: se infatti una applicazione Java è nella maggior parte
dei casi portabile con poco o nessun lavoro aggiuntivo, ciò non
è vero per i dati.
E’ un aspetto
molto sentito in tutti quei casi in cui si decide di cambiare piattaforma
sia per motivi di prestazioni, che per passare dalla fase di progettazione/sviluppo
(tipicamente effettuata su Windows NT) a quella operativa (molto spesso
Unix).
JdataStore è
compatibile con SQL-92 e JDBC 2.0 Type-4.
CORBA RMI
IIOP
La programmazione
per componenti distribuiti è ormai una realtà sempre più
utilizzata nelle applicazioni di livello avanzato: parole come CORBA-ORB,
RMI e IIOP sono infatti sempre presenti nei vari progetti, specie quelli
orientati alla rete, Internet o intranet.
JBuilder, la
cui casa di origine ha una tradizione piuttosto forte in tal senso, permette
di produrre applicazioni client server in maniera molto più semplificata
rispetto a quanto si era abituati in precedenza, il tutto in maniera visuale.
JBuilder consente
lo sviluppo lato server di tecnologia CORBA compatibile sia con lo standard
ORB di VisiBroker che di OrbixWeb.
Grazie ad Application
Generator e DataModeler, creare applicazioni distribuite, a partire dal
lato server, fino al client html con cui invocare i vari servlet in esecuzione
sul server può essere effettuato in automatico. Anche le eventuali
funzioni di mappatura scritte utilizzando un linguaggio IDL possono essere
prodotte automaticamente.
Debugger Remoto
Il debugger
è stato notevolmente migliorato, sia per aumentare le prestazioni
(che nella versione precedente erano un poco scadenti) sia per introdurre
nuove funzionalità. Adesso è supportato sia il debug in funzione
della piattaforma scelta (JDK 1.1 o 1.2), sia quello di oggetti distribuiti
e remoti.
Inoltre, in
modalità distribuita, è possibile controllare processi attivi
su piattaforme differenti come Solaris e Windows NT.
Non solo Windows
Appena di rientro
dalla conferenza statunitense JavaOne, dedicata a Java, ed anche quest’anno
organizzata a S.Francisco, ho avuto modo di parlare direttamente con alcune
persone del team Borland presente alla manifestazione.
Ebbene, proprio
in questi giorni oltre alla versione 3 di JB, è stato annunciata
anche una versione per Solaris, e si vocifera di una per il sistema Linux.
Queste nuove versioni dei prodotti non saranno dei semplici porting, ma
delle vere e proprie versioni nuove adattate alla filosofia del sistema
operativo ospitante.
A completare
la serie di novità presentate in questi giorni, troviamo anche il
nuovo magazine JBuilder Journal. La pubblicazione, che ho avuto modo di
leggere proprio alla conferenza, rappresenta senza dubbio un utile strumento,
non solo per imparare i trucchi del tool di sviluppo di Borland, ma per
approfondire alcune tecniche di programmazione di recente introduzione.
Sul primo numero, ad esempio, c’era una mini panoramica sulle classi Swing
e sulla programmazione di Java Server Pages (JSP) ed Enterprise Java Beans
(EJB).
Il magazine
è consultabile all’indirizzo www.JBuilderJournal.com.
Pro
Sicuramente
la possibilità di tenere sotto controllo tutto un progetto utilizzando
una sola finestra, l’application browser appunto, è una delle caratteristiche
che da sempre mi hanno attratto e che a parer mio gli conferiscono qualche
pregio in più, facendo passare in secondo piano certe pecche di
gioventù, apparse nelle versioni precedenti.
Adesso che JB3
ha eliminato tali carenze, mi sembra davvero un ottimo prodotto, la cui
caratteristica principale sia la sintesi di lavoro.
Le nuove funzionalità
introdotte o potenziate (CORBA, EJB, debugger distribuito) unitamente alle
prestazioni migliorate, ed alla maggiore stabilità del sistema,
ne fanno un ottimo strumento di sviluppo, forse il migliore.
Contro
Non mi convince
ancora del tutto la sezione di programmazione visuale, che però
ha subìto notevoli miglioramenti rispetto alla versione precedente.
Si tratta in ogni caso di problemi non così gravi da assegnare punti
di demerito al prodotto, anche perché la battaglia per il prodotto
migliore per lo sviluppo Java, non si giocherà certo sulla generazione
di interfacce grafiche ma sulle funzionalità client-server e object
distributed, settori in cui JBuilder3 si distingue nettamente.
Per ulteriori
informazioni sul prodotto rivolgersi a:
ISS - INTERNATIONAL
SOFTWARE SERVICES
Via Valera 31/16
20020 Arese (MI)
Tel 02-93582260
Fax 02-93582280
E-Mail: info@isservices.com
http://www.isservices.com
http://www.inprise.it
|