Metrowerks CodeWarrior is a fairly nice compiler suite and IDE for the Macintosh. Unfortunately, it suffers from several severe flaws. Most of these flaws involve CodeWarrior's binary project files.

A short list of problems with this design:

  1. The project files are completely opaque. As Unix users like to complain, binary files are just an opaque blob of bytes. This breaks such vital utilities as diff and merge.
  2. The project files change every time you compile your program. For some unknown reason, CodeWarrior stores object code in the project files. This means the files get changed every time you compile. This makes CVS grumpy.
  3. The project file format is always changing. I've never upgraded CodeWarrior without having to re-import all my project files.
  4. CodeWarrior can't read very old project files at all. Just today, CodeWarrior told me it couldn't open an old project file at all. I wonder what was in there.

Now, don't get me wrong, CodeWarrior was a really sweet product back in early 1995. But by modern standards, it's pretty painful.