|Column Tag:||New Apple Technology
Metrowerks aggressively pursues cross-platform support.
By Dennis R. Cohen, Claris Corp.
Its hard to believe that almost a year-and-a-half has passed since I was first asked to write a preview of Metrowerks CodeWarrior for MacTech and (not counting interim extra releases on CD and via the electronic networks) the sixth CodeWarrior has hit the shelves and mailboxes. During that time CodeWarrior has been extremely well-received by the developer community and has played such a significant role in Power Macintosh software development that MacUser magazine awarded Metrowerks the Eddy for Macintosh Software Product of the Year.
What You Get and Whats New
This release continues the tradition of promises fulfilled and surprise bonuses to the extent that not everything could fit on one CD - so they shipped two.
On the main CD we find the expected items: new releases of C/C++ and Pascal Integrated Development Environments (IDEs) for both the 68K and Power Macintosh as well as new releases of PowerPlant, the Metrowerks Debugger (which my boss refers to as CodeVoyeur), and the Profiler and ZoneRanger utilities. There are also MPW tool versions of the C/C++ compiler and Linker for both platforms. Metrowerks has also supplemented their collection of third-party SDKs, tools, and demos with a bunch of neat new freeware, shareware, and demo software and the QuickView developers kit. The CD also contains MacApp 3.1.3 and 3.3a1. Finally, they have added more scriptability to the environment and provided some very useful scripts for importing and exporting projects - including being able to create an MPW makefile from a project file.
The second CD contains a number of items which were originally scheduled to be extra-cost options or part of a more expensive Platinum version such as the Magic Cap compiler and development tools and the Microsoft Windows cross-compiler and development system as well as late additions to the CodeWarrior 6 materials, such as a PowerPC version of MacApp2 for the Object Pascal programmers among you. You also get the OpenDoc DR2 release and a preview of the next iteration of CodeWarriors IDE, where you can use different compilers and tools from within one IDE rather than having a separate (though virtually identical) IDE for each compiler, a prerelease of Code Fragment Manager for 68K support, and the first look at the CodeWarrior Browser.
The main changes to the C/C++ compilers are the addition of C++ exception handling and Standard Template Library (STL) support. The biggest change to the Pascal compiler is that it is now both ready for prime time and an Object Pascal compiler. The environment now always uses stationery (unless you hold down the option key when choosing New Project from the menu). CodeVoyeur has added a Memory window which gives a hex/ascii memory display and some initial support for Drag Manager debugging as well as becoming interoperable with QC from Onyx Technology. PowerPlant has been significantly enhanced to use exceptions and to include new classes for AOCE, a standard movable modal dialog, and isolating event dispatching; additionally, a number of classes (such as LAction and LUndoer) have seen major reworking. Metrowerks is also including a number of prebuilt resources for your use with PowerPlant projects that support many commonly used portions of PowerPlant.
One of the larger changes is to the documentation. While most of the documentation is still in DocViewer format, much has been made available in QuickView format, the Altura Hypertext Engine used for Apples Macintosh Programmers Toolbox Assistant. In addition to all this, printed documentation is now available in book form for $39.95, ten dollars less than was previously charged for the looseleaf manuals.
How Does It All Work?
The first thing that should be said is that the format of libraries and precompiled headers has changed and that old code needs to be recompiled or re-precompiled. Apple has also made further (in some peoples view, gratuitous) minor changes to the Universal Interfaces that will possibly require some editing work to get your code to compile properly.
Some of the little changes to the environment make tasks a lot simpler. A good example of this is the Find dialog. Checkboxes have been added for System Headers, Project Headers, and Project Sources and selecting them will add the expected files to the list of files to be searched. In addition, you can name and save sets of files that you might wish to search in the future and then just select them from the popup menu. Going one step further, you can drag a folder or group of files/folders from the Finder into the scrolling list area to add them to the list of files to be searched. Similarly, you can remove files from the list by dragging their names to the Trash or double-click on a name to open that file.
This all makes getting the list of files to be searched a lot easier, but Metrowerks also added a Batch checkbox to the dialog and now you get a window with all the hits in it, similar to an Error/Warning window, from which you can select the ones you wish to bring forward.
The compilers have all gotten more robust and a shade faster - a build that took 372 seconds under CW5 is now taking me 358 seconds under CW6 on a Quadra 800 using the C compiler, and a 179 second Pascal build under CW5 (that didnt work right) now takes 161 seconds (and functions correctly).
PowerPlant is being heavily used by Metrowerks, internally, as it is the framework used for CodeVoyeur, Zone Ranger, and the experimental 1.3 environment contained on the second CD.
Metrowerks has continued their 1.5 year tradition of responsiveness and support with this edition, almost to the point where you dont comment on it because you expect it. One of the nicest surprises, from my perspective, was receiving the Magic Cap development package with the Magic Cap emulator originally scheduled as a separate product. The development tools are MPW-based rather than an IDE, but they are quick. Unfortunately, the Magic Cap simulator looks for an FPU and refuses to run without one. This necessitates installing SoftwareFPU on a Power Macintosh to get it to run and what you get is incredibly slow; however, put it on a Quadra 800 and it just screams. If I ever find the free time, I will be creating something with this package because Magic Cap looks like a fun environment in which to play.
The Windows32/WindowsNT cross-development package is an IDE and includes a two-machine debugger so that you debug your app on the Mac while it is running on the PClone. Creating this environment meant the editor had to deal properly with DOS text files and their carriage-return/linefeed end-of-line convention as well as the Macintosh carriage-return only convention. This was also put into the Macintosh environment editors, relieving those of us who must occasionally deal with PC files of the missing character boxes at the start of each line. Not being a Windows developer, my only exposure to the environment was at Apples World Wide Developer Conference, where Metrowerks personnel walked me through the complete edit-compile-transfer-run/debug scenario with a couple of example applications. I felt that it was a pretty smooth and reasonable cross-development package and am told that it works properly with Microsoft Foundation Class Library; however, I am not necessarily a good judge on this subject.
Metrowerks is continuing to lead the way in providing affordable, quality development tools with excellent support in a timely manner. With Symantec having released a very solid PowerPC compiler (Symantec C++ 8.0), maybe well start seeing the competition develop which I hoped for last year.