MokaByte Numero 35  - Novembre 99
JBuilder 3.0
Enterprise Edition
di 
Giovanni Puliti
Il nuovo prodotto di sviluppo in ambiente Java, rimodernato nel look presenta alcune interessanti novità: compatibile adesso con la nuova versione del JDK 1.2 (rinominato   Java 2), scritto in parte in Java, è fortemente orientato alla programmazione web, client server e di componenti distribuiti
In collaborazione con Dev


JBuilder 3 è il nuovo tool di sviluppo di Borland per Java; rispetto al predecessore (la versione 2) presenta, oltre ad una serie di funzionalità aggiuntive, una maggiore stabilità complessiva del sistema, nonché una migliore responsività alle istruzioni dell’utente. L’aver scelto Java come linguaggio per lo sviluppo del prodotto stesso, scelta che inizialmente poteva sembrare azzardata e senz’altro coraggiosa, inizia adesso a dare i suoi copiosi frutti. Se infatti nelle versioni passate si notava una certa carenza in quanto a prestazioni e stabilità, adesso possiamo finalmente disporre di un ambiente di sviluppo in cui il codice Java prende vita e si forma nel momento stesso in cui viene creato. La presenza della Virtual Machine sempre in funzione dietro l’IDE infatti permette una maggiore flessibilità e valutazione del codice prodotto.

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
 


  
 

MokaByte rivista web su Java

MokaByte ricerca nuovi collaboratori
Chi volesse mettersi in contatto con noi può farlo scrivendo a mokainfo@mokabyte.it