Preface
After a few years with Xcode 3, my first impressions of Xcode 4 were mixed. At first, I thought the redesign was unnecessarily rigid and proscriptive. I missed Interface Builder's floating windows and object palettes, and I couldn't find a convincing reason for the enforced three-way window split in the editor.
Over time, I realized my first impressions were wrong. Software tools for developers, like software tools for users, should work hard to make life easier. The venerable old GCC compiler toolchain that ran under the hood of Xcode 3 was developed at a time when the command line was the only available UI. Although some developers still love the command line, it's an unforgiving environment that penalizes simple mistakes. It can be powerful, but it's also literal-minded and not at all transparent.
Many development environments, including Xcode 3, have taken this same approach but applied it in a visual environment. The test of a good tool is that it anticipates your needs to the point where it disappears, leaving you with a clear canvas for your imagination.
Xcode 4's designers have taken a step toward this by asking how to simplify or eliminate some of the tedious and repetitive work that was necessary in the past. Xcode 4 doesn't accomplish this aim completely—some promising early ideas were removed in the final release—but many of the features are simpler and more responsive than their equivalents in Xcode 3. As a result, the development process is faster, simpler, ...