Windows – Comparisons Windows and Mac OS X as development environment

cocoamacosvisual studiowindowsxcode

I have been using Visual Studio (VC++) and Windows API for a long time, and quite familiar with Linux tool chains, but have no experience on Mac OS X development.

I would like to hear your opinions about the pros and cons of Windows and Mac as development environment. But, as it may be subjective, I would appreciate if you could enumerate some facts, rather than simply saying "A is better than B". In particular, I'd like to hear about the followings:

  1. IDE: Visual Studio vs. xcode
  2. API: Win32 API (including native C-based Win32 API, MFC, C#) and Cocoa (Mostly Objective-C)
  3. Documentation: MSDN vs. ??
  4. Tool supports: Debugging, profiling, testing, etc.
  5. Knowledge base: When you have a problem, is it easy to get help from anyone? Are there many books? (In Windows development, there are Petzold, Richter, …)
  6. Mobile apps: iPhone vs. Windows Mobile

I'm afraid that this topic would be controversial. But, I want to know how Mac offers development environment comparing to Windows.

Best Answer

I am trying to keep the answers as non-subjective as possible, focusing strictly on facts.

1 - IDE: Visual Studio vs. xcode

Looking just at feature sets, most developer tool features are pretty standard these days. The basics, code highlight, debuggers, profilers, etc. are available on each. Some tools have features not found in others, but the base level of functionality is pretty stable across the two platforms.

2 - API: Win32 API (including native C-based Win32 API, MFC, C#) and Cocoa (Mostly Objective-C)

They are different, though perform the same functions. Both give their respective developers the building blocks to create applications that fit the designated style of the platform. Both allow a developer to deviate from the "standard" style recommendations.

3 - Documentation: MSDN vs. ??

Apple has their own documentation set available as well. It's the Apple reference library. http://developer.apple.com/mac/library/navigation/index.html

4 - Tool supports: Debugging, profiling, testing, etc.

Again, both suites contain equivalents. Debuggers, profilers, test harnesses, etc.

5 - Knowledge base: When you have a problem, is it easy to get help from anyone? Are there many books? (In Windows development, there are Petzold, Richter, ...)

From a total word count of published books, I would hazard a guess that the Windows development world outpaces that for Mac development. That said, there are some very good Mac development books out there. For a new developer, "Cocoa Programming for Mac OS X" by Aaron Hillegass is considered one of the primary sources.

6 - Mobile apps: iPhone vs. Windows Mobile

I don't have any experience with developing for Windows Mobile, but again, I would think that both have reasonably similar tool chains, since everyone "borrows" ideas from each other.

All that said, Mac offers a comprehensive development environment for developing for Mac and iPhone platforms, much like Windows has a comprehensive development environment for developing for Windows and Windows Mobile platforms. One major difference is that the standard Mac development tool chain comes with your Mac. You don't have to buy anything else (except for the iPhone developer program subscription if you develop for that platform).