Working with Xcode and Visual Studio on a day-to-day basis, it’s natural that I’d compare the two tools. The following is not intended to be an unbiased comparison. These are my opinions only. They’re based on how I work, and how I expect tools to work.
Project Configuration: Xcode
Xcode wins cleanly for its configuration editor, which can display all settings at once, predefined groups of settings, or only customized settings. Visual Studio, by comparison, can only display predefined groups of settings. Putting Xcode even further ahead is its ability to filter the settings view as you type. Visual Studio gets some points for having a more capable path editor, but that’s really all it has going for it.
Subprojects: Visual Studio
Visual Studio does Xcode one better by showing all the details of the subprojects, including exactly which sources make it up, right in its solution explorer.
Editor: Xcode
Xcode scores a weak win here for having more useful keyboard customizations available. Part of this is the additional meta key available on the Mac.
Window Management: No winner
Visual Studio offers more in the way of window management, but the options are not ones I find useful. On the other hand, Xcode offers more styles of working, but I only use one of these as well. Comparing Visual Studio’s style with Xcode’s, I see no advantage to either.
Stability: Xcode
Visual Studio’s Intellisense is worse than useless, making it impossible for me to work unless I use an undocumented trick to disable it. A quick Google search shows I’m not the only one having problems.
Price: Xcode
Xcode is free. Visual Studio isn’t. Adding a replacement for Intellisense makes Visual Studio even more costly. (Swapping out hardware to prove to management that Visual Studio was the culprit and not my system made it even more costly.)
CVS: Visual Studio
Visual Studio does not include CVS integration. Xcode’s CVS integration does not work for me. It would be a draw, except that Xcode’s textual project files have minor differences when the project is cleaned vs. built. (I’ve been told this will be fixed in Xcode 3.)
Menu Layout: Xcode
Xcode provides a more logical menu layout, with fewer regularly used commands in sub-menus. In particular, Visual Studio banishes search/replace tools to a sub-menu of Edit. Visual Studio offers a way to customize menu commands, but I’d much rather have a logical if locked layout.
Source Search Tools: No winner
While I find Xcode’s search tools more useful, both sets are so pathetic that I refuse to give it a win here.