This article is from the Mac Programming FAQ, by Jon Watte email@example.com with numerous contributions by others.
As of CodeWarrior/6, MPW 3.3, and Symantec C++ 8.0.1 (SC++),
CodeWarrior will allow faster turnaround times, MPW will provide the
most flexibility and overall power, and Symantec C++ has the edge with
regard to helpful project browsing features.
CW C++ supports templates and exceptions, Symantec C++ supports only
templates, MPW's new compilers are based on Symantec C++.
SC++ 8 doesn't generate 68k code, while pre-CW/6 CodeWarrior requires
you to use seperate (virtually identical) environments, and builds are
controlled from a Makefile in MPW, of course.
All three need much hard disk space. SC++ requires the most RAM. MPW
requires the most disk space.
MPW is the slowest, followed distantly by SC++, which is followed
closely by CodeWarrior.
The best thing about MPW is that you can write scripts and make files to
do anything you want in the way you want it. SC++ and CodeWarrior can
be AppleScripted to do builds that require more than one link operation,
but the process is more involved, and CW doesn't currently support
scripting in full. SC++ 8 can do builds which require more than one
For the MPW and CodeWarrior environments, there are four source level
debuggers; Metrowerks, SADE, SourceBug, Voodoo Monkey. The latter is an
experimental debugger with support for threads debugging; the middle is
bundled with MPW while SADE has to be bought separately (but is fully
scriptable in its own scripting language). Metrowerks Debugger is
included with CodeWarrior.
The Think environments have their own integrated debuggers; the Think
Pascal one has a lot of useful features while the Think C/C++ one is a
little more basic (but is gaining in functionality with each release).
Metrowerks has their own debugger which works like the MPW debuggers; i e
it runs the application standalone and pokes at it from the outside,
while the Think debuggers run the application "wrapped" in a special
environment, making for some subtle interferences with your heap (which
you usually don't notice). The Metrowerks Debugger is Thread
Manager-savvy on the 68k side.
If you're developing for both Power and regular 68k Macs, you need
CodeWarrior. MPW is an option which makes sense if you need to develop
code for non-CFM OpenTransport or if you have a ridiculously large
number of independent code modules to compile, or if you're a Unix
person. CodeWarrior, in addition to it's own integrated environment,
includes the non-compiler parts of MPW and MPW-hosted Metrowerks
compilers/linkers. SC++ is an option only for PowerMac development.