[ Sommario | Redazione | Informazioni | Vai a... ]

BETA /0295 - ARTICOLI


OS/2


Borland C++ 2.0 per OS/2

di Paolo Tortiglione

La Borland è da lungo tempo un azienda molto attenta alle esigenze del suo vastissimo pubblico. Sono ben note a tutti le politiche adottate dalla stessa casa sia nei confronti degli utenti dei suoi numerosi pacchetti applicativi che degli sviluppatori di software i quali da anni possono contare su una casa produttrice di strumenti per lo sviluppo di alto livello e sicura professionalitá. Chi tra gli sviluppatori non conosce o ignora totalmente la presenza Borland nel settore dei linguaggi ? La sua famiglia dei Turbo è ormai passata per gran parte delle scuole italiane ed ha fatto in tal senso veramente "scuola". Una ricerca condotta su programmatori professionisti, in molteplici aziende che hanno adottato OS/2 come loro "Standard", ha mostrato come molti di loro,dati i tempi ormai maturi, desiderassero usare il C++ al posto del C classico e come al momento attuale mancasse un compilatore C++ vero e proprio di grande diffusione, nato e sviluppato totalmente in e per OS/2.
Borland è ormai una azienda di altissimo livello che pur non abbandonando la fascia piú sicura e facile di mercato DOS e Windows, ha avuto la forza e la competenza (e perchè no, anche il coraggio) di promuovere ed adottare l'OS/2 come propria piattaforma di sviluppo. Basti pensare ad un paccheto come l'Object Vision . Ora è la volta del piu' atteso dei compilatori per un linguaggio che certamente mai come oggi ha avuto una diffusione cosí ampia. Si parla ovviamente del C++, che rispetto al C offre il vantaggio di un fattore determinante per la manutenzione del software: gli "oggetti". Tuttavia il tempo di apprendimento è tutto'ora molto alto e il linguaggio certamente non facilissimo; se poi a tutto questo ci si aggiunge anche uno strumento di sviluppo poco versatile sarebbe scontato il risultato e la diffusione che lo stesso linguaggio avrebbe.
Ma fortunatamente la Borland ha ben considerato questi aspetti ed ha cercato in vario modo di risolvere tali problematici fattori, per cui è effettivamente vero che lo sviluppatore con un simile strumento deve concentrarsi solo e totalmente sul suo progetto, talmente user-friendly è l'interfaccia che il compilatore adotta ed offre all'utente. Cosí non resta che programmare ed usare nel migliore dei modi le mille e una potenzialitá che l'ambiente mette a disposizione, concentrarsi sull'incremento dei livelli di astrazione delle librerie fornite in dotazione e magari aggiungere nuove e piú potenti funzionalitá integrate.


L'AMBIENTE

Borland C++ per OS/2 aumenta certamente la produttivitá e nello stesso tempo decrementa il tempo necessario allo sviluppo di applicazioni. Infatti l'ambiente è composto da molti strumenti software che si integrano perfettamente l'uno con l'altro: troviamo innanzitutto l'ambiente di sviluppo integrato denominato IDE (Integrated Devolopment Environment) che, oltre a servire principalmente sia come vero e proprio banco di controllo per tutte le fasi dello sviluppo che come editor, permette, tramite numerose opzioni di richiamare con pochi click di mouse i numerosi tools messi a disposizione, che consentono in poco tempo di creare lo scheletro dell'applicazione.
Le vere novitá sono costituite certamente dal Resource WorkShop, ambiente grafico interattivo per la gestione delle risorse globali di una applicazione, a cui seguono una rinnovata e semplice quanto funzionale gestione del Grep (integrato nell' IDE), dal Turbo Assembler e dal Turbo Debugger GX. Da questi strumenti è poi possibile richiamare in modo piuttosto semplice le run-time library e tutte le C++ class che lo sviluppatore desidera implementare nel proprio software.
Analizziamo ora nel dettaglio ciascuno di questi potenti strumenti. Alla fine trarremo le conclusioni sul prodotto.


Integrated Development Environment

Turbo Debugger GX

Turbo Assembler for OS/2

Resource WorkShop

Documentazione e Help in linea - Conclusioni



OS/2: Borland C++ 2.0, Integrated Development Environment (IDE)


Si tratta dell'implementazione sotto OS/2 del ben noto e potente ambiente che la Borland ha creato per i propri utenti di linguaggi. Anche se a prima vista sembra molto somigliante, per quanto riguarda le funzioni, a quello analogo del Borland C++ e del Turbo C++ per Windows vi sono alcune differenze sostanziali: il menu Option è stato eliminato e sostituito con un comodissimo Settings Notebook. L'interfaccia del Notebook funziona esattamente come un qualunque notebook in ambiente OS/2 Presentation Manager (ad esempio quelli relativi ai settings del vari programmi) ed è estremamente pratica in quanto tutte le opzioni e le direttive da dare al compilatore (possibilitá di definizione keywords a seconda che il codice sia compatibile UNIX System V, opzioni del compilatore C, C++ ed Assembler, Make, Link, Debugger ecc.) sono raccolte in un unico ambiente dal quale le scelte possono essere fatte con pochi click di mouse. (Fig.1)


Fig. 1 - L'IDE del Borland C++ per OS/2 Visibile in alto l'applicazione gia compilata che è in Run mentre in background va una nuova fase di compilazione in seguito ad una correzione sul codice sorgente. Contemporamemente le altre finestre attive controllano le altre fasi dello sviluppo. Inoltre è da sottolineare come la nota Message Window presente in praticamente tutti i compilatori e la Dialog Box sulle modalitá di compilazione siano state sostituite nella nuova Modeless Transcript Window. Vi sembra poco ? Si tratta in definitiva della ormai tanto attesa compilazione in background ! Con il nuovo Integrated Development Environment è possibile finalmente compilare un progetto anche di grandi dimensioni e nel frattempo utilizzare gli strumenti di debugging o continuare a concentrasi sugli altri aspetti del proprio progetto software. Intanto la compilazione e l'eventuale run del programma vanno contemporaneamente in background mentre lo stato macchina e della compilazione è sempre visibile ed in real-time nella Transcript Window. Si possono aprire numerose Window sia per l'editing di codice di sviluppo sia per la consultazione delle classi (anche in codice sorgente): vengono rappresentate graficamente le gerarchie e le sottogerarchie con un notevole vantaggio in termini di velocitá di consultazione.

Turbo Debugger GX

Turbo Assembler for OS/2

Resource WorkShop

Documentazione e Help in linea - Conclusioni


OS/2: Borland C++ 2.0, Turbo Debugger GX


Le particolaritá di questo tool sono veramente degne di nota. Si tratta ovviamente di uno strumento che lavora in modo molto simile a qualunque altro debugger ed in particolare non si puó non riandare con la mente al Turbo Debugger per DOS ed al Turbo Debugger per Windows, che per peculiaritá e possibilitá di personalizzazione sono naturalmente stati implementati per il loro alto livello di semplicitá di interfaccia nel Turbo Debugger GX. Le particolaritá in ambiente OS/2, tuttavia, sono immediatamente riconoscibili. Innanzitutto l'interfaccia grafica mette a disposizione una "Speedbar" che consisite in una serie di bottoni che l'utente puó selezionare a piacimento per eseguire istantaneamente una o piú funzioni tra le maggiormente utilizzate, come ad esempio running, stopping, reloading, stepping, ecc. Proprio in virtú del fatto che il Turbo Debugger GX è totalmente grafico e nativo PM e che in tale modalitá viente sempre eseguito lo sviluppatore mentre il debugger è attivo, che si puó osservare tranquillamente l' applicazione evolversi nel tempo in un'altra finestra senza dover fare lo switching continuo tra le varie sessioni full screen o peggio ancora necessitare di due schermi come invece si assisteva tempo fa con altri debugger meno evoluti.
Da segnalare inoltre la possibilitá di duplicare una qualsiasi "vista" del programma selezionando "New View" dal menu della finestra localmente attiva, per cui l'utente puó effettivamente aprire finestre multiple di codice sorgente e visualizzare e controllare ad esempio piú di un modulo DLL allo stesso tempo, fino a quando lo stesso modulo DLL rimane in uso o bloccato dal thread corrente o da altro processo attivo.


Fig. 2 - Turbo Debugger GX. Tipica fase di sviluppo che mostra il Turbo Debugger GX in azione. Si possono controllare tutte le parti del codice compreso il controllo totale del coprocessore matematico se presente.

Ancora molto utile è la possibiltá del Dual Form View che permette di avere simultaneamente sia una lista degli item utilizzati dal processo che una visione dettagliata di ciascun item selezionato. La consultazione dei singoli dettagli puó quindi passare da una lista globale ad una lista dettagliata delle proprietá selezionando di volta in volta opzioni come Breakpoint View, Datapoint View, Messagepoint View, Exceptionpoint View, Variable View ecc.; uno strumento veramente potente e nuovo rispetto ai precedenti debugger per DOS o Windows. C'e solo da augurarsi che siano sempre piú i programmatori disposti a fare il debugging del loro programmi.

Integrated Development Environment

Turbo Assembler for OS/2

Resource WorkShop

Documentazione e Help in linea - Conclusioni


OS/2: Borland C++ 2.0, Turbo Assembler for OS/2


Ed eccoci ad una vera perla per gli amanti del "bit". Il rinnovato Turbo Assembler incluso nel package è un multi-pass assembler con risoluzione tipo forward-reference, una velocitá di compilazione di circa 48.000 linee al minuto (testate su un IBM PS/2 modello 60), con totale compatibilitá con il vecchio gigante degli assemlatori, il Microsoft Macro Assembler (MASM), e con una nuovo tipo di sintassi estesa (opzionale) denominata Ideal Mode.
Sia il programmatore esperto che il programmatore con poca esperienza in assembler potranno trarre beneficio da feature quali: totale capacitá di implementare la tecnica dell' Object Oriented Programming anche sotto tale linguaggio (cosa certamente non frequente nei precedenti assembler), supporto per il 32-bit model e supporto per gli Stack Frame, possibilitá di generazione codice per i386 e i486, implementazione tabelle, supporto definizioni multilinee, emulazione MASM, utility per i Cross-Reference (TCREF) e persino procedure per il prototyping.


Fig. 3 - Turbo Assembler e Turbo Debugger GX. Il Turbo Debugger controlla in tempo reale tutte le fasi di compilazione e messa in opera del codice effettuate dal Turbo Assembler.

Unico neo è che per eseguire un programma interamente scritto in tale linguaggio è spesso necessario usare il compilatore a linea di comando sebbene sia possibile personalizzare l'interfaccia e quindi creare una volta per tutte una macro di compilazione anche per il Turbo Assembler.
Per quanto riguarda infine la Object Oriented Programming sotto Turbo Assembler basta tener in considerazione una serie di differenze terminologiche che tuttavia sono sostanziali ai fini della metodologia di sviluppo. Ad esempio ció che nel C++ il programmatore chiama Classe Base diventa qui Oggetto Base, mentre la Classe Derivata qui viene identificata come Oggetto derivato, quelle che conoscevamo come Membri Dati qui diventano Campi e cosí via. Ma dopo pochi giorni di tale pratica è evidente che il tutto risulterá perfettamente normale anche per il programmatore assembler piú esperto. Se comunque tuttavia l'utente non desidera cambiare una riga del suo codice ha in ogni caso la disponiblitá di importare direttamente e senza difficolá codice assembler creato o con il MASM (versioni 4.0, 5.0, 5.1, 5.2) oppure, ed ovviamente, col Turbo Assembler (versioni 1.0, 2.0, 2.5, 3.,0, 3.1, 3.2) attraverso l'uso della comoda keyword "Version" seguita dal Version ID e da un determinato codice mnemonico. Tutto molto configurabile quindi e come sempre in rigoroso rispetto delle presumibili esigenze dell'utente.

Integrated Development Environment

Turbo Debugger GX

Resource WorkShop

Documentazione e Help in linea - Conclusioni


OS/2: Borland C++ 2.0, Resource WorkShop


Attualmente ogni buon programmatore o capo progetto sa bene che per progetti di sviluppo software sia di medie che, soprattutto, di grandi dimensioni che coinvolgono un grande numero di persone, l'uso dei project-files è ormai una esigenza dalla quale non si puó piú prescindere. Tutti i moderni compilatori usano oggi questi file che in un certo qual modo stanno sostituendo definitivamente gli ormai "anziani" make files - che comunque in molti casi si rivelano ancora di grande utilitá. A motivo di ció questo tool costituisce uno dei principali baricentri attorno ai quali ruota un pó tutta la potenza e la versatilitá del compilatore. Il Resouce Workshop è un sofisticato tool che permette di integrare l'intero processo di sviluppo, disegno, compilazione e gestione delle risorse sotto OS/2 2.0 o versione successiva. Se si desidera scrivere applicazioni che verranno eseguite in particolar modo sotto OS/2 Presentation Manager o anche modificare l'interfaccia grafica di applicazioni Presentation Manager create da terze parti, il Resource Workshop è certamente il modo piú semplice e veloce, nonchè uno dei piú potenti tra i tool OS/2 esistenti sul mercato, per dare all'applicazione l'aspetto grafico che piú si desidera. A questo proposito nel tool sono compresi tutti gli strumenti necessari allo scopo, come ad esempio una visual resource graphic-oriented ed uno script editor per la manipolazione dei resource scripts.


Fig. 4 - Il Resource WorkShop Permette di controllare tutte le fasi di sviluppo del codice. Dal disegno del progetto, al controllo dei file di risorsa, alle icone usate, al controllo totale dell'interfaccia grafica creata.

Tra le principali caratteristiche citerei le seguenti: la possibilitá di gestire fino ad alcune centinaia di risorse memorizzandole in una dozzina di file; esecuzione di decine di tasks in completo automatismo, come ad esempio il caricamento automatico dell'editor appropriato alla risorsa scelta; l'inserimento delle reference alla risorsa come richiesto dal .RC file; costruzione ed aggiornamento automatico dei #define o delle costanti associate ognuna alla sua propria risorsa; Undo e Redo multilivello con cui l'utente puó navigare avanti o indietro rispetto alle modifiche che apporta al progetto mano mano che lo stesso si evolve; possibilitá di usare compilatori diversi dal C++ e persino la possibiltá di compilare solo ed esclusivamente le parti di risorsa desiderate e solo quando necessario; decompilazione di codice sorgente binario in modo tale da consentire cambiamenti alle risorse di programma anche qualora non sia possibie avere accesso al codice sorgente; possibilitá di fare automaticamente un check degli errori in modo tale che risulti piú semplice e rapido possibile il test sull'uso delle risorse come ad esempio errori di sintassi nei file .RC o duplicazione di identificativi all'interno della numerazione delle risorse stesse.
Oltre a ció i tradizionali strumenti come il gestore di progetti, il Dialog Editor, il Bitmap Editor, lo Script Editor ed un discreto Help in linea fanno del Resource Workshop un tool ideale (anche se per apprenderne appieno le possibilitá necessita un buona fase di studio) per il programmatore sotto OS/2. Da non dimenticare infine la possibilitá di rendere il tutto perfettamente compatibile (sia a livello binario che di testo) con i file creati con l'IBM Resource Compiler in modo da salvaguardare appieno gli investimenti in sviluppo effettuati precedentemente.

Integrated Development Environment

Turbo Debugger GX

Turbo Assembler for OS/2

Documentazione e Help in linea - Conclusioni


OS/2: Borland C++ 2.0, Documentazione e Help in linea - Conclusioni


Documentazione e Help in linea

La documentazione è piuttosto ben fatta per quanto riguarda la parte grafica e cartacea. Tuttavia non pienamente sufficiente a confronto di altri compilatori (l'IBM in testa a cui segue lo stesso Borland C++ 3.1 per DOS o 4.0 per Windows). Ad esempio manca totalmente un tutorial interattivo ed un tutorial cartaceo che riterrei invece molto utile data la dimensione e la complessitá del prodotto. C'è un piccolo tutorial per quanto riguarda il Turbo Assembler ma è ben poca cosa rispetto a quello che invece ci si aspetterebbe da un simile e sofisticato prodotto. Quindi è evidente che il software è certamente rivolto ad un pubblico piú che esperto in programmazione dato che vengono date praticamente per scontate (se si eccettuano pochi accenni sparsi qua e lá) tutte le differenze e le peculiaritá della OOP rispetto al C Ansi. Come pure sono pochissimo documentati gli esempi forniti con il compilatore che invece dovrebbero guidare l'utente soprattutto nelle prime fasi di sviluppo. Tuttavia viene installato un help in linea veramente notevole. Sono ben 15 gli help in formato .INF (per un totale di circa 12 MB di file) a cui è possibile accedere immediatamente e contestualmente alle operazioni in corso. I rimandi e le referenze sono ben documentate ed anche le fasi di "navigazione" all'interno dei vari help piuttosto ben congegnate; soprattutto vi si trovano centinaia di informazioni e programmi esemplificati per l'uso di funzioni che non sono presenti sui ben 8 volumetti cartacei (per il totale comunque non trascurabile di circa 1.800 pagine) che accompagnano il compilatore. Un vero peccato che manchi il totale supporto cartaceo.


CONCLUSIONI

Si tratta, in conclusione di un ottimo e potentissimo prodotto in cui è notevole lo sforzo della Borland per migliorare sempre piú sia le prestazioni in termini di velocitá sia la tendenza ad una sempre maggiore facilitá d'uso. Degno di lode comunque anche lo sforzo fatto per rendere lo strumento compatibile con investimenti software fatti precedentemente. Il prodotto avrá certamente un lungo seguito come si suppone anche dall'enorme diffondersi di OS/2 proprio in questi ultimi tempi ed a quanto mi risulta è giá stato adottato da decine di software house in particolare di oltre oceano. Anche il costo di listino del prodotto è abbastanza abbordabile anche se non proprio "popolare" per cui l'adozione del Borland C++ 2.0 per OS/2 è da considerarsi certamente un investimento che durerá negli anni a venire.


[
Sommario | Redazione | Informazioni | Vai a... ]
BETA - la rivista ipertestuale tecnica, copyright © 1994-95 Luciano Giustini e Fernando Carello. Tutti i diritti riservati.