Almost all of the comments above have missed the core issue regarding Apple's developer relations, not the least of which would be the plethora of comments on market share and capitalism by people who really ought to either take an Economics course or go back and read their textbooks again.
Windows didn't become a popular development platform after Windows had significant market share. Rather the market share came about in large part because Windows was a popular development platform.
There are two things Windows has that even Mac OS X doesn't have, at least yet. The first is a flexible set of APIs that allows me to do things the way I want to. Unicode text imaging is a good example. On Windows, a developer can take as much, or as little, control over the layout of a line of text as she wants. On the Mac, you either eat the whole ATSUI pie, or you eat none of it. Another example is Apple's current preference fo Cocoa. If you want to have access to the new user-defined font groupings in Panther, you have to use the Cocoa font panel. (Well, you could write code that parses the pref files yourself, but that stands a pretty good chance of being broken at the next software update.)
The second thing developers want is a flexible, yet efficient, set of tools. Microsoft's Visual C/C++ doesn't generate the fastest code in the world, but it's acceptable given the ease with which one can use Visual Studio to develop new code. Xcode, on the other hand, appears to be a very fast way to write very slow code. And let's not even get started on Objective-C.
The problem isn't so much a matter of opportunity costs as it is a matter of absolute costs. It just plain costs more to develop new software for the Mac than it does to develop new software for Windows. Apple seems to understand this to a point, but they've not done enough to understand what software developers want in terms of tools and flexible APIs. Until Apple figures this out, people writing software for the Mac will be people who care about the platform as much as they care about writing good software that people will use. That ends up being a relatively small part of the developer community.