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.
Integrated Development Environment
Turbo Debugger GX
Turbo Assembler for OS/2
Resource WorkShop
Documentazione e Help in linea - Conclusioni
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.
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.
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.
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.
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. 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.
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.
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.