MokaByte Numero 09 - Giugno 1997
Foto
 
TEST 
Visual Café 1.0
 
di
Giovanni Puliti
In prova il pacchetto di sviluppo di Symantec 

 



Dopo aver analizzato il mese scorso l'ambiente di sviluppo per Java distributo da Microsoft vediamo questo mese l'analogo prodotto di Symantec, il Visual Cafe' v 1.1



Molti di voi ricorderanno che Symantec è stata la prima, oltre a Sun naturalmente, a credere in questo nuovo linguaggio rilasciando il primo pacchetto commerciale per sviluppare per Java ai tempi di Cafè.
Solo successivamente Microsoft per non perdere troppo terreno ha deciso di uscire con VJ++, una versione derivata, anche se perfettamente funzionante, dal VC++. Nonostante la politica di MS è essere pronti su tutti i terreni della sfida tecnologica, inizialmente a Redmond non credevano che fosse poi così importante seguire anche questo settore, cercando invece di spingere la propria tecnologia ActiveX. Questo tentennamento iniziale ha di fatto favorito la concorrenza, come ad esempio Symantec che ha potuto fare esperienze ed affermarsi nel settore: oggi ci propone un ottimo prodotto di sviluppo come il VCafé. Ho deciso di partire dalla versione standard per analizzare tutti i prodotti disponibili, e quindi solo successivamente parleremo della versione PRO.
 

 

VISUALITA' ALLA SYMANTEC

Differentemente da quanto accade in MS Visual J++, in questo caso l'appellativo visuale indica una reale capacità grafica di progettazione delle GUI. ##Gli ambienti di sviluppo visuale possono essere suddivisi in due categorie: la prima in cui l'ambiente visuale è totalmente integrato nel linguaggio di programmazione, e di fatti non è possibile spearare le due componenti. Esempio tipico di tale categoria è il Visual Basic re indiscusso di tutti i prodotti visuali, che proprio grazie a questa completa integrazione fra linguaggio e ambiente, offre una elevata flessibilità di lavoro permettendo con poco lavoro di realizzare molto. Il prezzo che si deve pagare purtroppo è legato alla assoluta mancanza di portabilità del codice generato, che può essere manipolato e compilato solo con tale prodotto, contrariamente a quanto è invece possibile ad esempio un tool per Java o C++. ##L'altra categoria di prodotti di sviluppo visuale, è costituita da quegli ambienti che fanno riferimento a linguaggi evoluti come C++ o Java, non visuali, in cui il tool di sviluppo assomiglia a qualcosa che tempo fa (milleni in ere informatiche) venivano detti case tools. ##Prodotti come il Visual C++, o il Visual J++, appartengono a questa seconda categoria, e sicuramente possiamo includere anche il Visual Cafe' di Symantec. Questa categoria di prodotti in genere offre meno flessibilità e spesso non sono troppo amati dai programmatori per le scarse doti di flessibilità che essi offrono. Se l'ambiente non è progettato in modo ottimale, si rischia infatti di subire le sue decisioni, e di dover in definitiva lavorare maggiormente per personalizzare il lavoro. A tal proposito riconsiderando i molti wizard che VJ++ mette a disposizione, ricordo che in certi casi tutta quella automazione non era poi così vantaggiosa. ##Nel caso di Symantec devo dire però che le cose sono state realizzate molto bene, e l'ambiente che mette a disposizione risulta essere flessibile ma al tempo stesso propenso a seguire le direttive dell'utente.

 

2WAY Tool
 

Questo tool di sviluppo è totalmente visuale, nel vero senso della parola e non alla maniera del VJ++. Come accennavo precedentemente non è semplice accoppiare la visualità applicata a linguaggi non visuali come Java, ed è per questo motivo che VCafé è stato uno dei primi ambienti ad implementare la programmazione 2-Way: questa caratterisitca permette da un lato, durante la fase di creazione visuale di un oggetto e la successiva modifica, di generare automaticamente il codice relativo, e la creazione di una tabella delle proprietà, che in ogni istante sono allineati con quanto si vede a video (first way). ##Contemporaneamente una modifica al codice fatta mano, aggiorna automaticamente la tabella delle proprietà e l'oggetto grafico (second way). ##L'assenza della programmazione 2-Way porta a dover aggiornare a mano le varie parti del progetto con un terribile aumento dei tempi di sviluppo: lo sviluppatore si deve infatti preoccupare di quello che ha in mente e che vuole fare, ma anche di quello che l'ambiente non si incarica di eseguire. ##Con la programmazione 2-Way invece si ha quasi la sensazione di lavorare in un ambiente totalmente integrato con il linguaggio visuale, quasi come avviene quando si lavora col VB.
Devo dire purtroppo che per il resto l'ambiente grafico messo a disposizione non mi ha convinto completamente: infatti, anche se dopo un primo periodo di disorientamente si riesce a lavorare bene e a organizzare le molte finestre che sono messe a disposizione, trovo che una strutturazione più spartana e omogenea renderebbe le cose più semplice. ##Ad esempio, anche se la rappresentazione grafica è molto accattivante e piacevole alla vista, la suddivisione del class browser dalla finestra delle risorse fa' rimpiangere l'ottima finestrina presente in VJ++ che mantiene tutto sotto controllo . Per chi usa un monitor da 21 pollici le cose sicuramente sono più semplici, ma sono dell'avviso che una buona organizzazione a possa evitare di ricorrere a tali dispendiose soluzioni.
 


 

Quello che invece è molto apprezzabile è l'organizzazione delle finestre di editing del codice, che come in VB hanno la possibilità di passare velocemente con un colpo di mouse su una combo box da oggetto ad un altro e da un metodo/evento ad un altro; gli eventi vengon automaticamente aggiunti alla lista man mano che se ne aggiungono al listato e per quelli standard si ha la colorazione in neretto se sono implementati. Molto comodo, proprio come in VB: ricordo che anche in questo caso si ha un perfetto allineamento fra il codice e la lista delle funzioni, e la sincronizzazione automatica non porta ad codice o proprietà fantasma. Per qunato riguarda la gestione delle varie finestre si tenga presente che come ormai avviene in tutti gli ambienti grafici sono tutte dockable aggancibili alla toolbar principale, ma in questo caso si ha una sgradevole cattiva gestione dei vari pezzi agganciati, e molto spazio viene sprecato: non è certo questo un particolare di fondamentale importanza, ma sicuramente può dare fastidio a chi usa un monitor piccolo.

 

PROGETTAZIONE VISUALE

Dal punto di vista della progettazione visuale lavorando col mouse è possibile scegliere fra un numero molto fornito di classi per la generazione di GUI ultima generazione: oltre alle classi standard fornite col jdk infatti, è possibile utilizzare un insieme piuttosto fornito di oggetti realizzati da Symantec e liberamente utilizzabili nelle proprie applicazioni. Anche in VJ++ é possibilie estendere il set di base delle classi, ma in quel caso si tratta di oggetti ActiveX, e quindi l'uso pregiudica la portabiliità dell'applicazione. ##In questo caso invece le classi fornite sono in tutto e per tutto Java, e quindi non sussistono problemi di porting. Per il controllo degli oggetti disponibili è


 

presente una finestra molto comoda (una volta tanto) che nel look dell'Explorer di Windows (95/NT) elenca le varie classi e package raccolti in cartelle e sottocartelle. La cosa veramente utile è che con un semplice drag & drop da Explorer è possibile aggiornare tale raccolta di classi. Fra le classi aggiuntive direi che interessanti sono le cosiddette multimediali, che permettono la visualizzazione di immagini ed animazioni in modo molto semplice, anche se con qualche richiesta di troppo in termini di requisiti di sistema.
 
 
 
 

 

Sempre legato al concetto di programmazione visuale è presente un wizard per la stesura in automatico del codice necessario per la gestione degli eventi: utilizzando questo strumento è possibile in modo grafico scegliere i due oggetti da far interagire fra loro e con una procedura step-to-step simile a quella dei vari setup-wizard, decidere la sequenza di eventi e le operazioni conseguenti. Per la verità questo wizard è un po' troppo magico e lo consiglio solo a chi è alle prime armi e non ha voglia di imparare, o nel caso in cui si debba realizzare una applicazioncina in 4 minuti. E' infatti un po' troppo automatizzato e non lascia troppa libertà al programmatore, in controtendenza con il resto dell'ambiente di sviluppo (ed infatti fa parte del pacchetto ma non è integrato con l'ambiente).
 
 
 

 

COMPILATORE

Il compilatore utilizzato da Symantec rispecchia la notorietà che la casa si è fatta sul campo con i vari C e C++. Devo dire che se qualche pecca si può trovare relativamente alla parte di interfaccia dell'ambiente, non mi sento di criticare minimamente il compilatore che si è dimostrato velocissimo e preciso nell'analisi sintattica del codice.

Da alcune mail apparse in JAVA-IT qualcuno ha chiesto se e come sia possibile utilizare il JDK 1.1 con VCafe': ebbene è possibile programmare per tale piattaforma, ed in questo il VCafè si è dimostrato un ottimo ambiente integrato nel linguaggio, ma capace all'occorrenza di svincolarsi da certi vincoli. ##Per utilizzare il jdk 1.1 basta impostare l'opzione use Sun's compiler e settare il path di sistema in modo che alla chiamata del compilatore risponda il javac.exe della 1.1, preoccupandosi inoltre di cambiare anche la variabile classpath. E' possibile quindi anche mantenere sulla stessa macchina entrambi i jdk 1.0.xx e 1.1 scegliendo di volta in volta cosa utilizzare da VCafé. Le numerose opzioni del compilatore permettono fra le altre cose di scegliere il tipo di compilazione (final o debug), se si vuol creare una applet o application, e molte altre opzioni a cui ormai siamo abituati. Eventualmente cosa interessante è che nella finestra dei messaggi viene visualizzata la stringa dei parametri del compilatore, per cui i puristi di Unix e riga di comando possono memorizzare e lavorare da shell. Al termine di questa prima serie di test dei vari compilatori verrà pubblicato un articolo riassuntivo delle performance dei vari compilatori.

 

CONCLUSIONE

Il termine di questo breve articolo sul VCafé potrei per una volta sbilanciarmi consigliando a chi ne avesse bisogno di acquistare questo prodotto, sicuramente un ottimo pacchetto costruito dalla casa che per prima ha creduto in Java realizzando il primo pacchetto di sviluppo per tale linguaggio ai tempi del semplice Café. Anche i successi commerciali sembrano confermare questo fatto: da recenti notizie che circolano in rete, sembra che grazie al pacchetto Cafe' (e successivamente VCafe') Symantec abbia incrementato le vendite ben oltre le più rosee previsioni degli analisti della casa.

Giovanni Puliti
 
 

MokaByte rivista web su Java

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