MacTech Network:   MacForge.net  |  Computer Memory  |  Register Domains  |  Printer Supplies  |  Cables  |  iPod Deals  |  Mac Deals  |  Mac Book Shelf


  MacTech Magazine

The journal of Macintosh technology

 
 
MacRentals

Magazine In Print
  About MacTech  
  Home Page  
  Subscribe  
  Archives DVD  
  Submit News  
  Submit a Tip!  
  Get a copy of MacTech RISK FREE  
Google
Entire Web
mactech.com
Mac Community
More...
MacTech Central
  by Category  
  by Company  
  by Product  
MacTech News
  MacTech News  
  Previous News  
  MacTech RSS  
Article Archives
  Show Indices  
  by Volume  
  by Author  
  Source Code FTP  
Inside MacTech
  Writer's Kit  
  Editorial Staff  
  Editorial Calendar  
  Back Issues  
  Advertising  
Contact Us
  Customer Service  
  MacTech Store  
  Legal/Disclaimers  
  Webmaster Feedback  
ADVERTISEMENT
Click Here
Volume Number: 17
Issue Number: 1
Column Tag: Tools of the Trade

CodeWarrior 6

By Tim Monroe

A Look at the Latest Mac Version of Metrowerk's Development Environment

Introduction

CodeWarrior 6.0 (CW6) is the latest version of Metrowerk's popular integrated development environment (IDE) for Macintosh and Windows (and, I believe, the first version to carry the Motorola brand name). In addition to all the standard improvements you'd expect to find in a major release of a professional IDE (bug fixes, greater compliance with existing standards, improved performance, and the like), CodeWarrior 6.0 takes one major step forward: all important parts of the software development environment have been Carbonized, including the IDE itself, PowerPlant (the object-oriented application framework), Constructor, and Profiler. This means that it's possible to do complete application development on "classic" Macintosh operating systems (Mac OS 8.x and 9.x) and on Mac OS X. (CodeWarrior 6.0 also runs on Windows computers, but I did not receive a review copy of the Windows install disk, so I can't comment on how well that new version works.)

Some Test Drives

I first took CodeWarrior 6.0 for a spin on Mac OS 9.0.4. As usual, installation was a snap. The IDE wanted to convert my existing project files for use with the new IDE (version 4.1, for what it's worth). After that, compiling, linking, and debugging proceeded exactly as they did under previous versions of the IDE. The entire CodeWarrior 6.0 suite has received a minor facelift; for instance, the Finder icons are different, and the project window (shown in Figure 1) has undergone some reorganization. (In earlier IDEs, the tabs hung down from the top of the window.)


Figure 1. A project window under Mac OS 9.

Then I decided to get brave. I usually like to develop Windows versions of my applications using the Mac IDE. I didn't have the Windows IDE, but the Mac installation still includes compilers and linkers for x86 development. Once again, my existing Windows projects compiled and linked flawlessly (after allowing the IDE to make the necessary project conversion). CodeWarrior 6.0, however, uses a different method for specifying the remote target for two-machine debugging. Under previous versions, you could specify only a single remote target for all projects, in the IDE Preferences window (Figure 2).


Figure 2. Setting a remote debugging target (CW 5).

Under CW6, you can define any number of remote targets in the IDE Preferences window (Figure 3). Each individual project can then specify which one of those targets to use for any particular debugging session (see Figure 4). This is a very nice enhancement.


Figure 3. Setting remote debugging targets (CW 6).


Figure 4. Specifying a remote target.

Pedal to the Metal

Finally, I decided to get really brave and run the IDE under Mac OS X. I installed the Public Beta version of OS X on an external hard drive, booted up, and then launched the IDE. I must admit to having had a certain trepidation as the IDE launched, but my fears subsided as the project window opened and greeted me with its jaunty Aqua appearance (Figure 5).


Figure 5. A project window under Mac OS X.

Once again, the project compiled, linked, and ran flawlessly. Moreover, remote debugging between the Mac OS X machine and a machine running Mac OS 8.6 worked just fine. What did not work at all was local debugging - that is, trying to step through the code on the Mac OS X machine itself. (I kept getting a network timeout error; go figure!) After trolling the comp.sys.mac.programmer.codewarrior news group, I discovered that I needed to perform the Codewarrior installation while running Mac OS X. Once I did that, local and remote debugging worked as expected.

CodeWarrior 6 running on Mac OS X seems to be a fairly solid and stable product, at least in my preliminary tests. As is to be expected, there are some cosmetic glitches. Figure 6, for instance, shows a dialog box in which some of the text is clipped. All in all, however, I was pleasantly surprised at how well the product performed, especially considering that it's running on a beta version of a brand new operating system.


Figure 6. A dialog box with clipped text.

Conclusion

Should you upgrade to CodeWarrior 6.0 from an earlier version? For most Mac programmers, this is a no-brainer: sure, stay up to date with the latest and greatest tools. This is especially true if you want to get your product working under Mac OS X or you want to do your software development under Mac OS X. You can develop Carbonized applications using CW5, but not under Mac OS X. For the complete Carbon story, and especially for local debugging under OS X, CodeWarrior 6.0 is the way to go.

Some developers, however, might want to hold off making the leap to CW6, even though it's a fairly tiny leap in terms of code changes. If you're deep into a project that uses CW5 or earlier, you may want to finish that project before moving forward. After all, since the compilers have become more compliant to the ANSI standards, some of your existing code might get signaled as non-compliant (especially if it is non-compliant). In my own projects, I didn't encounter any such problems, but of course your mileage may vary. In my mind, the ability to specify remote debugging targets on a per-project basis is worth the price of upgrading all by itself.


Tim Monroe is a software engineer on Apple's QuickTime engineering team. You can contact him at monroe@apple.com. His opinions, of course, are his own and not those of his employer.



Click here to find out more about our best subscription bundle deal ever!
2 years of the magazine, and the all new MacTech DVD ... at 70% off!



Click on the cover to
see this month's issue!

TRIAL SUBSCRIPTION
Get a RISK-FREE subscription to the only technical Mac magazine!
 
 


MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797

Register Low Cost (ok dirt cheap!) Domain Names in the MacTech Domain Store. As low as $1.99!
Save on brand compatible and name brank ink jet and laser supplies.
Save on long distance * Upgrade your Computer
Movies with No Late Fees!

See local info about Westlake Village
SJ * BRJ * BJ * OJ * NITS
Staff Site Links



All contents are Copyright 1984-2007 by Xplain Corporation. All rights reserved.

MacTech is a registered trademark of Xplain Corporation. Xplain, Video Depot, Movie Depot, Palm OS Depot, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, NetProLive, JavaTech, WebTech, BeTech, LinuxTech, Apple Expo, MacTech Central and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.