As you read on, please keep in mind that I'm not trying to make the blanket statement that developing software for Windows is Evil. I'm speaking strictly about Free Software desktop applications being ported to Windows (and to a somewhat lesser extent MacOS X, too).
It's All About the Applications
All other things being equal (which they aren't, but that's another story), the vast majority of users select which operating system to run based on the applications available for it.
This is not a modifiable behavior because applications are what enable people to get things done, be that making a spreadsheet or playing a game. If the applications people want are available on Windows, they will tend to stick with Windows. Conversely, if the applications they want are to be found only on Linux/BSD, they will eventually end up using Linux/BSD.
By porting Free Software to Windows one increases the number of valuable applications on that platform, and since application availability is a key factor in operating system usage, we can do the math pretty easily: if Windows has Microsoft applications plus the stable of Free Software apps while desktop Linux/BSD/etc has only the Free Software apps, why would anyone in their right mind switch to Linux/BSD (and incur the training and data migration costs) when they already have all the software they need and want right in front of them? They have no reason to. None. Ergo, they won't.
To see how this plays out, let's look at an example ripped from today's headlines: FireFox.
FireFox: Enabling Windows Users .. To Use Windows
I think we can all agree that FireFox gives Windows users a way out from the security nightmare and feature desert that is Microsoft's Internet Explorer. At least, Internet Explorer as it appears in 2004. FireFox does this while allowing users to stay on the Windows platform. Meanwhile, Microsoft is not porting any applications to Linux/BSD, nor will they start to do so anytime soon. And so the application imbalance begins...
Survey people using FireFox on Windows. How many of them are saying, "I'm so impressed I'm going to switch to a Free Software desktop." Virtually zero. Too many of us in the Open Source community naively expect people to draw conclusions that today's technology consumers are not motivated, let alone empowered, to make.
The more software we port to Windows the more we reinforce this application availability imbalance and strengthen the user's inertia to stay on Windows. If users had to make a choice between Windows or Linux (or BSD) when it came to getting access to better applications they would find they had a motivation to switch. And switch they would.
Consider: why do you think Apple invests so heavily in their iApp series of programs? and why was Apple so hesitant to port iTunes to Windows?
This implies that there's a downside for Open Source when users stick with Windows. What is that downside?
As long as Microsoft can keep people on Windows they will have the necessary time to improve their applications and more importantly the supporting software stack. That stack includes the kernel, system libraries and application components that enables their own software to integrate and perform better than the competition's. They used this before to root out competitors like Lotus 1-2-3 and DR-DOS and they'll do it again. It's too easy and too obvious not to.
As FireFox takes market share from IE, Microsoft will fight back not just with improvements to Internet Explorer but with investments in operating system and "desktop environment" development that will give Internet Explorer unanswerable advantages over FireFox. People will once again switch back to IE and FireFox will be Netscape all over again. Worst, the Mozilla project will not be able to muster a meaningful response because they do not have access to the playing field (the underlying software stack) that Microsoft will have beat them on. You can not compete on a playing field to which you do not have access.
This is why FireFox needs Linux/BSD to survive in the long term: we aren't trying to kill FireFox, but most importantly we don't have a way to kill FireFox even if we wanted to.
On Windows it's a very different story. As long as Microsoft controls the Windows technology stack (and they will never give that control up) they will have the ultimate ability to out-compete any 3rd party software on Windows that they wish to. Because the pain of millions of Windows users is eased by FireFox, Microsoft has been given the space they need to improve their software without people leaving the Windows platform while they perform the needed improvements.
By porting software to Windows, we eliminate the majority of the competitive advantage of Free Software desktops in the eyes of the overwhelming majority of consumers while Microsoft has all the rope they need to shut the door once again on us. We have left our flank exposed while expending our efforts improving the position of the unfriendly force.
Meanwhile We Starve Ourselves...
Making the situation even worse, by keeping people on Windows we decrease the odds of them getting involved and contributing back to the community. This is because the tools necessary to do so are relatively rare on Windows. How many Windows users have debuggers or compilers or even receive awareness marketing on the part of their primary software vendor (Microsoft) to "Get Involved and Give Back"? Moreover, resources that could be spent making the Open Source desktop environments more compelling are instead being spent on making Windows more compelling in the form of superior applications.
Microsoft owes us a big "thank you" when you think about it: we are giving them the opportunity to react on the playing field they most effective on while we are limiting our own resources.
Who Needs Friends?
This "strategy" ensures Free Software desktops remain a 5% fringe in the market. This translates to ISV interest in desktop Linux/BSD being kept to a barely noticeable minimum. In turn this means fewer software packages, which in turn means even fewer reasons for people to use Free Software operating systems. Can you hear the dominoes falling as they approach?
Free Software desktop applications on Windows represent a no-win situation for Open Source, but Open Source desktops on Free Software operating systems do. It's now up to us to pick our directions and to pick them carefully.
Today, I look at kdelibs/win/ and grow concerned.