Plattformwelten liegen zwischen Watcom und Microsoft

C++-Compiler im Vergleich: Die Add-ons machen die Qualitaet aus

14.07.1995

MUENCHEN (IDG) - Mit keiner anderen Sprache lassen sich schneller maechtige Anwendungen schreiben als mit C++ - und kein anderes Tool erfordert zugleich soviel technisches Raffinement und Hingabe vom Entwickler. Um so wichtiger sind die Unterschiede der derzeit gaengigen C++-Compiler, deren Staerken und Schwaechen im folgenden beschrieben werden.Traditionsgemaess gilt C++ als eine Hackersprache. Es dauert Monate, sie zu erlernen, und Jahre, bis man sie beherrscht. Zudem verleitet die Sprache Entwickler dazu, Bugs zu uebersehen, bis diese schliesslich im Endprodukt auftauchen. C++ fuer kleine, feine Anwendungen benutzen zu wollen gilt daher als pure Zeit- und Geldverschwendung. Besitzen Programmierer jedoch das noetige Fach-Know-how und werden Applikationen erwartet, die besondere Anforderungen erfuellen und zudem schnell sein muessen, sind die gaengigen C++-Varianten zu empfehlen.Ein optimierender Compiler bildet jeweils den Kern der C++-Pakete. Die Borland-Variante genoss schon immer den Ruf, besonders schnell zu arbeiten. Dagegen sind die Compiler von Metaware und Watcom bekannt dafuer, den kompaktesten und schnellsten Code zu liefern.Aus Gruenden der Investitionssicherung sollten die Tools auf verschiedenen Plattformen verfuegbar sein. "C/C++" von Watcom bringt dafuer die besten Voraussetzungen mit. Am unteren Ende der Bewertungsliste findet sich in diesem Punkt Microsofts Visual C++, das ausschliesslich auf Windows und Windows NT einsetzbar ist.Differenzierungen zeigen die Produkte vor allem in der Unterstuetzung der C++-Features Sprachstandard, Templates und Typinformationen zur Laufzeit sowie bei der Behandlung von Ausnahmen. Alle diese Funktionen sind wichtig; so erlauben etwa Templates die Wiederverwendung von Algorithmen mit anderen Datentypen. Das erspart Zeit, die sonst fuer manuelles Codieren verschwendet wuerde. Die Runtime-Typ-Informationen vereinfachen die Verknuepfung von C++ mit Betriebssystem-Features. Das sogenannte Exception Handling bietet Hilfe bei der Behebung von konzeptionellen und codierten Fehlern.Der Hersteller, der hier am weitesten hinterherhinkt, ist wohl Microsoft. Visual C++ unterstuetzt nur in der 32-Bit-Version Exceptions und Templates. Der soeben freigegebene 16-Bit-Compiler weist diese Funktionen noch nicht auf. Ausserdem liefert keiner der Microsoft-Compiler Runtime-Typ-Informationen. Darueber hinaus bieten alle untersuchten 32-Bit-Intel-Compiler ausser Visual C++ 1.51 auf Anfrage Optimierungsfunktionen fuer den Pentium. Allerdings sind in jedem C++-Set Linker, Debugger, eine Bibliotheksverwaltung fuer Objektcode und ein Make-Utility vorhanden. Ausserdem offerieren die meisten Hersteller eine grafische, integrierte Entwicklungsumgebung. Nur Metaware Inc. bildet eine Ausnahme.Die meisten der integrierten C++-Umgebungen verfuegen zudem ueber einen Klassen-Browser. Damit lassen sich Klassenhierarchien und - beziehungen verfolgen. Symantec bietet in der C++-Version 7.0 aber mehr. Entwickler koennen im Browser die Klassen auch neu arrangieren.Unterstuetzung der Visual Basic Custom Controls (VBXs) sowie die Moeglichkeit, neue Windows-Elemente nahezu automatisch zu erstellen, haben die meisten Anbieter in ihre Produkte integriert. Codegeneratoren dagegen stellen lediglich Microsoft mit "Wizards" und Borland mit "Experts" zur Verfuegung.Borland packt in das C++- Set zusaetzlich den "Turbo Assembler" fuer eine optimale Anbindung an den Maschinencode. Symantec integriert Funktionen des Projekt- Managements sowie "Netbuild". Mit diesem Tool lassen sich Kompilierungs-Tasks netzweit auf PCs verteilen.Haeufig sind C++- Produkte mit einem Framework gebuendelt. Diese Rahmen koennen die Applikationsentwicklung zwar erheblich vereinfachen und verkuerzen, doch engen sie mitunter den Spielraum der Entwickler ein. Es lohnt sich, Fremdanbieter-Produkte in Betracht zu ziehen, etwa "Zapp Developers Suite" der Inmark Development Corp. Erwaehnenswert sind auch die Microsoft Foundation Classes (MFC), ein Framework, das nahezu von allen Anbietern unterstuetzt wird.