Die neue Version firmiert unter dem Namen CodeWarrior Professional 1 und löst alle bisherigen Bezeichnungen ab. Die Unterscheidung in je eine Bronze-, Silber- (wurde nie ausgeliefert) und Goldversion machte schließlich ohnehin kaum noch Sinn, da fast alle Entwickler zu letzterer griffen: schon alleine deshalb, weil nur sie Native-Code für Power Macs zu erzeugen vermochte. Die neue IDE (Entwicklungsumgebung, Integrated Development Environment) ist unter MacOS und Windows 95/NT nahezu identisch.
Auch für die Systeme OS9, BeOS, embedded PowerPC, Palm OS, den Pilot-PDA und die PlayStation-Spiele-Console hat Metrowerks Entwicklungspakete im Angebot. Die IDE ist immer die gleiche.
Wer Mac-Programme schreiben möchte, hat die Wahl zwischen den Sprachen C, C++ und Pascal. Von Objective C, der wichtigsten Sprache für OpenStep und damit Rhapsody, findet sich nur eine Vorversion im Paket (Ordner `Prereleases´). Apple baut nämlich derzeit noch die Unterstützung neuer Objekte wie etwa QuickTime ein.
An der Macintosh-Klassenbibliothek PowerPlant hat sich nur wenig getan. Zwar wurden einige Bugs beseitigt, aber im wesentlichen kommt mit CW Pro der gleiche Umfang an Klassen wie bisher. Zu PowerPlant gibt es auch noch kein neueres Handbuch als jenes, das bereits mit CodeWarrior 11 ausgeliefert wurde.
PC-Programmierer müssen sich zwischen C und C++ entscheiden. Neben der nativen Win32-API gehört pflichtgemäß auch die Klassenbibliothek MFC (Microsoft Foundation Classes) zum CodeWarrior-Lieferumfang - allerdings nur in der alten Version 4.2. Da Konkurrent Microsoft mit seinem Visual C++ bereits die MFC 5.0 ausliefert, macht es Metrowerks potentiellen Umsteigern unnötig schwer.
Neben den von Sun entwickelten Java-Klassen liefert Metrowerks außerdem noch die Internet Foundation Classes (IFC) von Netscape sowie die Java Generic Library (JGL) von ObjectSpace mit. Beide Bibliotheken verfolgen verschiedene Zielrichtungen.
Netscapes IFC besteht aus mehr als 120 GUI- und etwa 30 weiteren Klassen aus dem Bereich Tools. Letztere enthalten beispielsweise aus FileInputStream abgeleitete Klassen, die Objekte serialisieren. Allerdings meidet Netscape mal wieder so manche Konvention: die Packages heißen netscape.application und netscape.util statt wie erwartet com.netscape.application oder com.netscape.util.
ObjectSpace dagegen hält sich mit dem Package COM.objectspace.jgl an die Regel und implementiert in über 150 Klassen Algorithmen und Datenstrukturen jeglicher Art. Die umfangreiche Bibliothek deckt fast jeden Bereich ab und erweist sich bei der praktischen Arbeit als sehr hilfreich und zeitsparend.
Bei der Übernahme alter Projekte ist jedoch einige Vorsicht geboten. CW konvertiert zwar Projekte automatisch, besonders bei älteren Java-Projekten gibt es aber hin und wieder unerklärliche Phänomene. So brach bei einer in Java realisierten Client/Server-Applikation der Compiler nach der automatischen Konvertierung stets mit der Fehlermeldung `Null Pointer Exception´ ab. Wohlgemerkt, der Compiler meldete den Fehler, nicht das fertig kompilierte und gebundene Programm. Erst nachdem das Projekt vollständig neu angelegt und der Sourcecode übernommen wurde, trat der Fehler nicht mehr auf.
Ist ein Java-Projekt sowohl vollständig kompiliert als auch gelinkt, und man entfernt danach manuell alle Klassen aus dem class-Ordner, so vergißt das Entwicklungssystem, die Klassen neu zu generieren. Auch die Funktionen `Bring Up To Date´ oder `Make´ bewirken diesbezüglich nichts. Dagegen generiert CodeWarrior Pro brav alle erforderlichen Klassen neu, sobald man eine Datei nur per `touch´-Button manipuliert.
Außerdem erzeugt der Java-Compiler neuerdings in dem Order, der die Zielklassen enthält, Klassenhierarchien für com, sun und java. Dies führt zu knapp 400 Klassen, die zusätzlich zur eigentlichen Applikation oder zum Applet im Zielverzeichnis liegen. Wenngleich dies das Zielprogramm auch nicht zerstört, so bläht es den Ordner doch unnötig auf. Warum die Library-Klassen immer kopiert werden, bleibt unklar, dies gilt insbesondere für die java.*-Hierarchie.
Doch diese Probleme sind nur kosmetischer Natur und behindern die Arbeit allenfalls leicht; echte Probleme scheint es nicht zu geben. Dies gilt sowohl für System 7.6.x und MacOS 8 als auch für Windows (getestet unter NT 4.0).
Endlich kann der Entwickler mehrere Projekte gleichzeitig öffnen und per Drag & Drop Teile aus einem Projekt in ein anderes kopieren. Früher mußte man stets das aktuelle Projekt schließen, um ein neues zu öffnen.
Auch sämtliche Werkzeugleisten lassen sich mittels Drag & Drop individuell zusammenstellen, wobei das System etwa 90 verschiedene Kommandos anbietet. Auf dem Mac werden diese Tools noch durch rund 25 AppleScripts erweitert, die so nützliche Dinge tun, wie etwa leere Template-Dateien generieren.
Bewegt man die Maus über ein Tool, so erscheint unter Windows wie üblich nach etwa einer Sekunde eine Kurzbeschreibung. Auf dem Mac bekommt man eine Balloon-Hilfe zu sehen, wenn man bei gedrückter Control-Taste auf ein Werkzeug zeigt.
Zur Unterstützung großer Projekte ist in die IDE bereits grundlegender Support für ein Version-Control-System (VCS) integriert, was ich mangels passender Software allerdings nicht testen konnte. Es wäre sehr erfreulich, wenn Metrowerks eine Light-Version ihres VCS beilegen würde. (Ein Mac-Port des GNU-VCS wäre übrigens eine lohnende Aufgabe für einen Shareware-Programmierer.)
Während in Microsofts VC++ sämtliche Fenster der IDE immer von einem Rahmenfenster umgeben sind, erlaubt die CodeWarrior-IDE die Positionierung sämtlicher Fenster unabhängig voneinander. Letztere Strategie ist zwar eher Mac-typisch, für meinen Geschmack aber auch unter Windows wesentlich angenehmer in der Bedienung, da man so Fenster im Hintergrund problemlos lesen kann.
Für Windows wird leider kein äquivalentes Produkt für den Entwurf MFC-basierter Oberflächen mitgeliefert. Hier hinkt Metrowerks der Konkurrenz weit hinterher. Allein diese Tatsache wird viele Windows-Entwickler von einem Umstieg abhalten. Zwar läßt sich mit MFC auch ohne GUI-Tool arbeiten, aber ein GUI-Editor spart doch enorm Zeit.
Außerdem sind - allerdings nur auf Mac-Seite - der HighLevel-Debugger sowie eine neue Version des Programms ZoneRanger hervorzuheben: es erlaubt die Inspektion jener Speicherblöcke, die von laufenden Prozessen belegt sind. ZoneRangers Funktion memory leak friert die Anzahl aktuell belegter Pointer und Handles einer zu testenden Applikation ein. Per Purge und Compact kann man dann den Speicherstatus seit dem letzten Aufruf überprüfen.
Windows-Programmierern bietet das Paket ebenfalls eine stabile IDE mit gut funktionierenden Compilern. Aufgrund der veralteten MFC Release 4.2 und des fehlenden GUI-Werkzeugs kann das Produkt allerdings nicht mit Visual C++ mithalten. Solange solche Mängel nicht behoben sind, braucht Metrowerks mit keinem großen Erfolg im Windows-Markt zu rechnen.
Da sich die IDE unter MacOS wie Windows gleich bedienen läßt, eignet sich der CodeWarrior Pro gut für Entwickler, die für beide Welten programmieren - insbesondere für Mac-Entwickler, die in Zukunft auch Windows-Software schreiben wollen.
Allerdings ist weder das Projektformat austauschbar (beim Wechsel von einem OS zu einem anderen muß man Projekte stets neu zusammenstellen), noch gibt es irgendwelche Klassenbibliotheken zur plattformübergreifenden Entwicklung. Allein durch die Integration eines Windows-Compilers in die Mac-IDE entsteht noch kein Windows-Programm - und umgekehrt.
Die Anzahl anderer Compiler, die man in die IDE integrieren kann, ist aber ohne Beispiel. Wer für MacOS, 32-Bit-Windows, Net Yaroze, PlayStation und PalmOS gleichzeitig entwickeln will, dem bietet Metrowerks alle erforderlichen Werkzeuge aus einer Hand.
Übrigens kann man sich auf der Web-Site von Metrowerks stets über den aktuellen Stand aller Produkte informieren; der Server hält sowohl ausführliche Release-Notes als auch Updates bereit: vorbildlich. Den WWW-Seiten des deutschen Distributors konnten wir entnehmen, daß im Oktober bereits mit CodeWarrior Professional 2 zu rechnen ist - ab jetzt wird neu gezählt. (cm)
Hersteller | Metrowerks, Austin/Texas (http://www.metrowerks.com/) |
Anbieter | Promo Datentechnik, Hamburg (http://www.promo.de/) |
Mindestvoraussetzungen | Mac: 68020- oder PowerPC-CPU, 8 MByte RAM (16 empfohlen), MacOS System 7.1, 80 MByte Plattenplatz |
PC: 486- oder Pentium-CPU, 16 MByte RAM, Windows 95 oder NT 4.0, 80 MByte Plattenplatz | |
Preise (gerundet) | 1120 DM (inkl. einem Update nach 6 Monaten) |
890 DM (Update von alter Version) | |
299 DM (für den akademischen Bereich) | |
je 100 DM für gedruckte Doku: CW/MacOS, CW/Windows, PowerPlant |