Voor het Windows besturingssysteem zijn een aantal zeer uitgebreide omgevingen
beschikbaar waarmee bijzonder krachtige applicaties kunnen worden ontwikkeld. Dit artikel
beperkt zich tot de meest recentelijk los verkrijgbare versies van de twee meest gebruikte
en uitgebreide omgevingen, Microsoft Visual C++ 4.0 en Borland C++ 5.0 Development Suite. Twee andere omgevingen,
Symantec C++ en Watcom C++, hadden hier ook onder de loep kunnen worden genomen. Uit
praktische overwegingen is echter gekozen voor een uitgebreidere beschouwing van minder
producten. In een bespreking van beperkte omvang kan natuurlijk geen volledigheid nagestreefd worden. In dit artikel is daarom gekozen voor een benadering vanuit gebruikers oogpunt. Dit in tegenstelling tot veel andere C++ besprekingen, waarin veel aandacht wordt besteed aan de technische capaciteiten, die overigens staat en valt bij de wijze van testen. Een taak kan in C++ in veel gevallen op zeer veel manieren worden geimplementeerd omdat C++ een extreem expressieve taal is. De programmeur speelt kortom een belangrijkere rol dan het gereedschap. Bovendien kan wel met redelijke zekerheid worden aangenomen dat, hoewel er natuurlijk verschillen in uitvoeringssnelheid zullen zijn, alle ontwikkelingsomgevingen bijzonder efficiente code kunnen produceren. Daarom wordt in dit artikel vooral bekeken hoe Visual C++ en Borland C++ de ontwikkelaar helpen bij het zo aangenaam en efficient mogelijk doorlopen van de ontwikkelcyclus. Ontwikkelcyclus Het ontwikkelen van een nieuwe applicatie begint in veel gevallen met het starten van een gereedschap zoals AppWizard of AppExpert, waarmee binnen een minuut een toegesneden skelet voor het project kan worden gegenereerd via een aantal eenvoudige keuzemogelijkheden. Met volledig geintegreerde Resource Editors kan vervolgens het applicatie-specifieke deel van de interface objecten aangemaakt worden, zoals bitmaps, iconen, dialoog sjablonen en dergelijke. Met behulp van een klassen gereedschap zoals ClassWizard of ClassExpert kunnen vervolgens de relevante boodschappen van de interface objecten worden geselecteerd en afgevangen. Voor iedere afgevangen boodschap kan dan een skelet functie worden gegenereerd waarna de specifieke functionaliteit moet worden gecodeerd. Hier begint kortom pas het echte werk. Natuurlijk is de eigen broncode foutloos, maar mocht dit per ongeluk toch eens niet het geval blijken te zijn, dan biedt de geintegreerde debugger hopelijk uitkomst bij het localiseren van denk- en typefouten. Just-in-time natuurlijk, oftewel het is nooit net te laat om te debuggen, zelfs niet na een crash. Visual C++ 4.0 Microsoft Visual C++ 4.0 is een 32-bit ontwikkelomgeving waarmee applicaties kunnen worden gemaakt voor Windows NT, Windows 95 en Windows 3.1 met Win32s. Het wordt geleverd met het applicatie raamwerk Microsoft Foundation Classes (MFC) 4.0, dat onder meer de Windows 95 Common Controls ondersteunt. Ook OLE Controls kunnen binnen deze omgeving worden ontwikkeld en gebruikt. Database ondersteuning wordt geleverd in twee smaken, namelijk de Data Access Objects (DAO) en Open Database Connectivity (ODBC). Microsoft Visual C++ 1.52 wordt als apart product bijgeleverd, tesamen met MFC 2.5. Met deze ontwikkelomgeving kunnen 16-bit applicaties worden gemaakt voor Windows 3.1 en MS-DOS. Dit lijkt wederom een bevestiging van de strategie bij Microsoft: 16- bit mag niet meer. Zo is bijvoorbeeld één van de nieuwe uitbreidingen in MFC, DAO, niet te gebruiken in Windows 3.1, zelfs niet met Win32s. Dit is een essentieel punt, aangezien Windows 3.1 op dit moment nog steeds het meest gebruikte Windows besturingssysteem ter wereld is. Eén van de bijgeleverde externe producten is InstallShield SDK Edition, waarmee setup programma’s voor applicaties kunnen worden aangemaakt via installatie scripts. Crystal Reports levert een uitbreiding op Visual C++ met een database rapportage systeem met run-time engine. Het is echter nogal onduidelijk wat WinCIM, de Windows interface voor CompuServe, op deze CD-ROM doet. Het is zeer de moeite waard om een jaarabonnement te nemen op Microsoft Visual C++. Zo kan namelijk automatisch updates worden ontvangen. Bovendien zijn kleinere opwaarderingen enkel via dit abonnement te verkrijgen. Installatie Een volledige installatie van Visual C++, inclusief de gigantische hoeveelheid online documentatie, vergt 248 Mb en verloopt als een zonnetje. Een typische installatie vereist 131 Mb, omdat dan onder andere de documentatie niet op de harde schijf wordt gezet. Er blijken twee patches te bestaan die een aantal bugs moeten verhelpen. Deze zijn onder meer op de Microsoft website te vinden. Beide verlopen zoals gepland en het aantal bijgewerkte bestanden is nog op de vingers te tellen. Documentatie Visual C++ wordt geleverd met slechts 2 centimeter aan handleidingen, een Getting Started voor Visual C++ 1.52 en Tutorials voor Visual C++ 4.0. 89 Mb (!) aan online hulp moet deze schamele hoeveelheid handleidingen in papiervorm compenseren. Zeer opvallen d is dat niet het standaard Windows hulp systeem wordt gebruikt, maar één die volledig geintegreerd is met de Visual C++ ontwikkelomgeving. Dit hulpsysteem is werkelijk een verademing en hoewel het niet compleet is en soms ook bepaald niet helder, mag het in zijn totaliteit toch zeker tot één van de beste online-documentatie systemen in de software industrie worden gerekend. IDE Algemeen Visual C++ projecten worden ontwikkeld in de Developer Studio. Opvallend is dat binnen deze omgeving tevens informatie van Visual Basic, Fortran Powerstation, Visual Test en de Development Library benaderd kan worden, indien deze producten tenminste apart zijn aangeschaft. Het hart van de Developer Studio is het Project Workspace Window, dat uit vier tabbladen bestaat, namelijk ClassView, ResourceView, FileView en InfoView. Met ClassView kan eenvoudig door de C++ klassen en de bijbehorende methoden en eigenschappen worden genavigeerd. De ResourceView geeft toegang tot de grafische objecten die bij het project horen, zoals dialoog sjablonen, menu’s, iconen en dergelijke. De FileView biedt via een niet-gelaagde listing van de bronbestanden een meer traditionele manier om het project te benaderen. Tenslotte de InfoView. Hiermee kan Books Online, de zéér uitgebreide collectie hulpbestanden, binnen de IDE worden benaderd en doozocht, een enorme vooruitgang vergeleken met de gangbare hulpsystemen die de standaard Windows Help aanroe pen. Helaas is het Project Workspace Window read-only, zodat het bijvoorbeeld niet mogelijk is om de knopen in de hierachie te herstructureren. Alle benodigde informatie wordt achter de schermen verzameld door de projectbestanden wanneer nodig te parseren. Bij uitgebreide projecten kan het aantal gebruikte klassen echter flink uit de hand lopen. Het niet kunnen ingrijpen in de presentatie methode leidt dan alsnog tot veelvuldig zoeken naar klassen en methoden. Natuurlijk biedt de Developer Studio tevens windows voor output, variabelen, registers, geheugen en dergelijke. Al deze windows zijn overigens ‘dockable’ en hebben een full-screen optie. Een ander typisch Microsoft kenmerk is tenslotte de overdaad aan toolbars die bovendien eenvoudig wijzigbaar zijn. Gelukkig maar dat al deze high-tech interface eigenschappen niet persé gebruikt hoeven te worden. Component gallery De Component Gallery bevat herbruikbare code zoals OLE Controls, eigen C++ klassen en eventueel componenten van andere producenten. Vooral het toevoegen van OLE Controls door het aanmaken van C++ code omhulsels is hierdoor bijzonder eenvoudig. Andere componenten breiden bestaande klassen uit zodat bijvoorbeeld OLE Automation aan een bestaande klasse kan worden toegevoegd of systeem informatie in de About box door simpelweg op het juiste icoontje te klikken. Custom AppWizards Met AppWizard kunnen, behalve applicaties en bibliotheken, ook aangepaste AppWizards worden gemaakt op basis van code en grafische objecten in een reeds bestaand project. Ook kunnen de standaard AppWizard sjablonen worden aangepast of uitgebreid. Voorbeelden van eenvoudige uitbreidingen zijn bijvoorbeeld bedrijfsspecifieke informatie, iconen en hulpbestanden. Gegevens Producent: Microsoft. Toepassing: Geintegreerde applicatie ontwikkeling in C++. Minimale systeemeisen: PC met 486 processor, Window 95 of Windows NT 3.51, 16 Mb geheugen, 131 Mb voor een typische installatie, CD-ROM drive. Prijs: Fl. 1032 inclusief BTW. Meerprijs jaarabonnement: Fl. 139 exclusief BTW. Leverancier: Voor Nederland: Microsoft BV, telefoon 023-4689189, fax 023-5637761; Voor België: XXX Afbeeldingen Borland C++ 5.0 Borland C++ 5.0 is een 32-bit ontwikkelomgeving waarmee applicaties kunnen worden gemaakt voor Windows NT, Windows 95, Windows 3.1 en DOS. Het wordt geleverd met het applicatie raamwerk ObjectWindows Library (OWL) 5.0. Deze bibliotheek ondersteunt onder meer de Windows 95 Common Controls en 16-bit emulatie voor de meeste daarvan. De grote concurrent van OWL, MFC, wordt bovendien door de Borland compiler ondersteund. Een belangrijk pluspunt, aangezien de Microsoft compiler geen OWL ondersteunt. Database ondersteuning wordt geleverd in de vorm van de Visual Database Tools (VDBT). Natuurlijk ontbreekt de geintegreerde debugger niet. En, last but not least, Java. Met deze omgeving kunnen tevens Java applicaties worden ontwikkeld, inclusief syntax highlighting, AppExpert, geintegreerde debugger en Sun’s Development Kit (JDK). De Borland C++ 5.0 Development Suite voegt hieraan nog een aantal gereedschappen toe. CodeGuard 32/16 is een krachtig bug detectie en diagnose gereedschap. De PVCS Version Manager is belangrijk bij grote projecten waar veel programmeurs voor nodig zijn en versie controle complexer wordt. Met InstallShield Express BC++ 5.0 Edition kan op visuele wijze een setup programma voor de applicatie worden aangemaakt. Tenslotte is er nog een supersnelle Java just-in time compiler die Java applicaties vijf tot tien keer sneller maakt. Installatie Een volledige installatie van Borland C++ vereist 195 Mb. Het installeren duurt dus wel even, maar verloopt soepeltjes. Het tekstbestand dat verschijnt na het installeren verwijst de ontwikkelaar nadrukkelijk één van de online adressen te bezoeken alvorens Borland C++ te gebruiken. Er blijken aldaar twee patches aanwezig te zijn. Het uitvoeren van de eerste verloopt foutloos, al worden er beangstigend veel bestanden bijgewerkt. De tweede patch crasht echter direct. Een goede aanleiding dus om de oninstallatie te testen om er helemaal zeker van te zi jn dat er geen bestanden zijn beschadigd. Helaas, die faalt ook genadeloos. Helemaal opnieuw dan maar. Uiteindelijk blijkt een verkeerd patch programma bij de tweede patch te zijn bijgevoegd. Met het zeer verontrustende aantal van 229 (!) bijgewerkte bestanden in de tweede patch wordt het installatieproces tenslotte afgerond. Een advies dus: bestudeer eerst uitvoerig de Borland C++ website voor informatie over veel voorkomende problemen. Jammer. Documentatie Borland C++ wordt geleverd met 9 centimeter aan handleidingen als Getting Started, Quick Tour, User’s Guide en Programmer’s Guide. Een praktische Tutorial onbreekt echter. Met 44 Mb in 48 online hulpbestanden wordt de documentatie gecomplementeerd. Rest nog de ontsluiting van deze geweldige hoeveelheid informatie. Hiervoor gebruikt Borland C++ de nieuwe standaard Windows Help, waarmee de volledige tekst doorzocht kan worden. Helaas, het overkoepelende hulpbestand OpenHelp is niet dusdanig geconfigureerd dat automatisch alle hulpbestanden doorzocht kunnen worden. Zo levert het zoeken naar het sleutelwoord ‘tutorial’ in eerste instantie geen relevante treffers op, terwijl er wel degelijk een hulpbestand met verwijzingen naar voorbeelden aanwezig is. IDE Algemeen Het hart van de Borland C++ Integrated Development Environment (IDE) is het Project Manager Window, waarin alle project bestanden hierarchisch geschikt zijn. Deze hierachie kan vervolgens vrij eenvoudig gewijzigd of uitgebreid worden met nieuwe targets, of project doelen. Zo wordt dus volledige controle gegeven om source pools op te zetten, verzamelingen bronbestanden die door meerdere versies van de toepassing kunnen worden gedeeld. Via de rechter muisknop zijn altijd de belangrijkste commando’s binnen handbereik voor de geselecteerde knoop in de project hierarchie. Vervelend is wel dat dit belangrijkste window geen speciale eigenschappen kan worden gegeven, zoals bijvoorbeeld een mogelijkheid tot ‘docking’ of ‘always on top’. Nu moet regelmatig gezocht worden naar dit window. De meest evidente tekortkoming van het Project Manager Window is echter wel het ontbreken van de geintegreerde mogelijkheid om het project te benaderen op basis van klassen informatie. De IDE beschikt namelijk wel over dergelijke functionaliteit in de ClassExpert, waarover elders meer, maar dit gereedschap is altijd minstens één ‘window away’. ObjectScripting Borland C++ 5.0 wordt geleverd met een prijsvraag! Het betreft de promotie van ObjectScripting, de scripttaal waarmee de IDE zélf volledig geprogrammeerd kan worden. Het bereikbaar maken van de volledige functionaliteit van de IDE voor aanpassingen en uitbreidingen door en voor gebruikers kan natuurlijk het gebruikersgemak vergroten, waardoor uiteindelijk de projectcyclus op een prettigere manier doorlopen zou kunnen worden. En in minder tijd misschien, dus tegen lagere projectkosten. Doel is natuurlijk door middel van de ObjectScripting Contest een aantal praktische toepassingen beschikbaar te kunnen stellen voor iedereen zonder dat Borland zelf daar t ijd, geld en creativiteit in hoeft te steken. Voor de hand liggende toepassingen zijn onder meer het aanpassen van bestaande en het toevoegen van nieuwe functionaliteit, het automatiseren van veel voorkomende vervelendheden zoals het importeren van standaard bibliotheken en dergelijke en het integreren van externe gereedschappen. Om de leerdrempel zo laag mogelijk te houden, wordt zelfs een aanzienlijke handleiding meegeleverd. Java Add-on De Borland C++ Development Suite IDE heeft verder een op dit moment nog uniek kenmerk: geintegreerde ondersteuning voor de ontwikkeling van Java applicaties en applets. Ideaal. Het leren werken binnen een IDE is namelijk niet de prettigste manier om je tijd door te brengen. Helemaal in het geval van het ontwikkelen van Java applicaties, wat tot voor kort op de command-line diende te gebeuren. Vooral de aanwezigheid van een geintegreerde debugger is natuurlijk een geschenk uit de hemel. Een verlaagde Java leerdrempel dus voor Borland C++ ontwikkelaars. Gegevens Producent: Borland. Toepassing: Geintegreerde applicatie ontwikkeling in C++ en Java. Minimale systeemeisen: PC met 486 processor, Window 95 of Windows NT 3.51, 16 Mb geheugen, 120 Mb voor een typische installatie, CD-ROM drive (floppy disk versie tegen meerprijs verkrijgbaar). Prijs: F. 779 / Bfr. 14.250, Upgrade: F. 399 / Bfr. 7.350, Development Suite: F. 1079 / Bfr. 19.700, Upgrade: F. 559 / Bfr. 10.200, exclusief BTW. Leverancier: Borland Benelux, telefoon 020-5035100, fax 020-5035170. Afbeeldingen Samenvatting Conclusie De twee besproken C++ ontwikkelomgevingen, Visual C++ 4.0 en Borland C++ 5.0, worden geleverd met enorme applicatie raamwerken, MFC en OWL, die object-georienteerde abstracties bieden over de meest relevante delen van de Windows API’s. Deze funderingen worden vervolgens benut door de in de ontwikkelomgeving geintegreerde hulpgereedschappen, Wizards en Experts, om het gebruik van deze raamwerken te vereenvoudigen en het niet-creatieve deel van de uit te voeren taken te automatiseren, zoals het opzetten van standaard projecten en het afvangen van object boodschappen. Tussen de ontwikkelomgevingen zélf zijn er wel enige uiteen lopende tendenzen waar te nemen. De Visual C++ omgeving kent een enorm aantal configuratiemogelijkheden, die wel als typisch Microsoft mogen worden aangemerkt: full-screen, docking en customizable windows en toolbars overal. De gebruiker heeft volledige controle over de interface. De meer sobere Borland C++ omgeving is een andere richting ingeslagen; de omgeving zélf, en daarmee de bereikbare functionaliteit, is volledig aanpasbaar geworden. Bovendien heeft Borland C++ met de integratie van Java een mooie troef in handen. Wat nu te kiezen? Beginners zijn beter af met Visual C++, omdat er meer zorg is besteed aan de documentatie en het meer en betere tutorials biedt. Indien het belangrijk is dat 16-bit applicaties geintegreerd ontwikkeld moeten kunnen worden, dan is Borland C++ weer een betere keuze. Bovendien kan MFC code gecompileerd worden in Borland C++, wat niet vice versa geldt. Aan de andere kant wordt MFC steeds meer besc houwd als het standaard C++ applicatie raamwerk. Enzovoorts. De één verdient een extra plusje hier, de ander een extra plusje daar. Op punten Functionaliteit : Visual C++ | Borland C++ Database toegang : J | J Database rapportage : J | J Client/server mogelijkheden : J | J Koppeling naar andere talen : Assembly, C | Assembly, C; Java OLE koppeling : J | J Object gericht : J | J Bedieningsgemak *** : ** Visueel programmeren | J/N : J/N Compileren | J : J Uitgebreidheid | *** : *** Werkgemak | *** : ** 32-bit | J : J 16-bit versie verkrijgbaar | Apart bijgevoegd Geintegreerd Installatie generator : ** | *** Potentiele snelheid applicaties : **** | **** Leerbaarheid : *** | ** Geschiktheid voor beginners : ** | * Geschiktheid voor gevorderden : *** | *** Geschiktheid grote applicaties : *** | *** Meningen Wat vinden anderen eigenlijk? Microsoft of Borland? OWL of MFC? Deze vragen circuleren met grote regelmaat in de nieuwsgroepen die gewijd zijn aan MFC en OWL. Iedere posting veroorzaakt steevast een aanzienlijke thread, veel reacties dus. Men lijkt het er wel over eens te zijn dat beide IDE’s zeer acceptabel zijn. Over het te gebruiken applicatie raamwerk verschillen de meningen nogal, wat niet geheel toevallig enigzins samenhangt met de nieuwsgroep waarin het artikel gepost wordt. De trend lijkt er echter wel te zijn dat in het geval van een reeds gemaakte keuze er geen enkele aanleiding is om over te schakelen. Mo et de keuze nog worden gemaakt, dan zou voor MFC gekozen kunnen worden omdat dit nu eenmaal de industrie standaard lijkt te zijn geworden. OWL geniet bij anderen echter weer de voorkeur. Er zijn wel enkele regelmatig terugkerende elementen waar te nemen in de reacties op het dilemma. Zo wordt dikwijls de persoonlijke voorkeur als doorslaggevende factor benadrukt. Een ander argument werd onlangs aldus verwoord: "You'll hear a lot of strong arguments for one development tool or the other. But in the end, I find that it's the developer that makes more of a difference than any particular feature or advantage of a tool." |
Publications > Software reviews >