Face of Evil I've been considering this post for a while now, but have been afraid to actually write it. So here's the thing: I've noticed that most of those who talk about how evil Microsoft is don't bother supporting that assertion. They tend to assume the rightness of their position and hence the wrongness of whatever it is that Microsoft has done. Microsoft stifles technology! Microsoft is a monopoly! Microsoft engages in unfair business practices!

Do they really?

No Consumers Were Harmed in Making This Software

There's a couple of problems with the whole monopoly thing. For one, at least in the U.S., being or having a monopoly isn't itself illegal—using the position of a monopoly to harm consumers is the illegal part. Now, some courts, and popular opinion, assumes that the fact of a monopoly is, itself, harmful to consumers, but that has never been proven to my satisfaction. Indeed, many of those who testified against Microsoft in past years rested on this assumption by equating harm to them as harm to the consumer.

Here's a tip: the fact that a company cannot compete and goes out of business isn't really evidence that consumers were, in any way, harmed. Let's make this concrete with an example. The fact that Microsoft started giving Internet Explorer away for free and that doing so tanked their competitors in the browser market doesn't actually harm consumers. After all, consumers are now getting something for free that companies wanted to charge money for. If Microsoft began charging money for browsers after their competitors tanked, well, that'd be a different story. At that point, you'd have to ask if the new price for browsers was higher than it would have been with competitors still in business. The thing is, Microsoft didn't do so. Indeed, if those whining about Microsoft got their way, we'd be charged money for browsers today and that, in my opinion, is far more harmful to the consumer than Microsoft's decision that something should be free.

But here's the thing: Microsoft isn't even a monopoly. Seriously. Let's take the primary definition of a monopoly from reference.com.

mo·nop·o·ly      /məˈnɒpəli/ [muh-nop-uh-lee]
–noun, plural -lies.

1. exclusive control of a commodity or service in a particular market, or a control that makes possible the manipulation of prices.

See that. The key to having a monopoly is having exclusive control or enough control that makes possible the manipulation of prices. It's obvious that Microsoft doesn't have exclusive control, but the fact of the matter is that Microsoft doesn't have the power to manipulate prices, either. While Microsoft can determine the prices they charge for their own products, doing so does nothing to control the prices of anybody else's product.

That's because software is inherently uncontrollable.

The reason for this is because you cannot control the supply of software in any compulsory way. Unlike any other product, software can be reproduced at will by anybody who owns the rights to the program (and by many who don't). You could gain a monopoly over practically any other product if you can somehow control the supply of a key component. Software doesn't have a key component crucial for its replication. If every owner of Microsoft Vista wanted to migrate to OS X tomorrow, there's nothing that Microsoft could do to hamper Apple from creating as many copies of OS X as they wanted to create and charging whatever price Apple wanted to charge (including no price at all) for those copies.

Note that I'm relying on the distinction that controlling the price for a product is not the same as controlling how much you can charge successfully. Microsoft gave IE away for free. That rather hampered people being able to charge money for comparable software. It did not alter the ability of those companies to charge whatever price they wanted to for competing browsers. You cannot actually be said to be capable of manipulating price until you can move it up or down at your whim. The ability to move prices down is inherent in the marketplace and your ability to compete in it. The ability to move prices up is the key to being an actual monopoly.

It Isn't Fair!

The second largest complaint is that Microsoft engages in unfair practices to privilege their software because they "own" the OS. Now, I haven't been a fan of the "it's not fair" defense since my kids grew up enough to employ it. I personally stopped expecting life to be fair a long time ago. The thing is, I'm enough of a libertarian that as long as all parties to a transaction are informed and consenting, I don't have much problem with them working out whatever deals they think they can.

Still, you can't deny that Microsoft likes its shady deals. I certainly wouldn't dream of denying it. In fact, I'm all for exposing those deals as soon as they're known, and the sooner the better. Does Microsoft have a deal with Dell that includes Dell anteing up for every PC purchased? Doesn't matter to me, but by all means, get the news out if you discover it to be true. I mean, as far as I can see, Dell wouldn't be doing so if the net cost to them weren't cheaper than doing it the other way. As long as Dell is able to compete in its markets for computers, I'm not really that interested. After all, if Dell raises the price of computers that don't have some version of a Microsoft OS, you have to know that they'll get hammered by their competitors who aren't trying to recoup such costs.

That's the magic of capitalism. You only get to set the price, you don't get to set the demand. If somebody else can do it cheaper, then they'll come in and prove it in the only way that matters—by offering their product at a lower price.

Does Microsoft sometimes fail to, ahem, document their complete APIs for external sources? That certainly appears to have been the case in the past. Insofar as they might have claimed to have documented the entire API, they have violated the law and should be held accountable for doing so. Outside of such a claim, I don't see how we have any standing to demand otherwise. Not that we shouldn't ask for better, but there's no cause to be slinging charges of moral depravity. You can't simply decide that a company has to release their full API when they haven't agreed to do so and expect to be taken seriously. Certainly, nobody expects the same from Apple. Fortunately, one consequence of all those shady deals makes Microsoft the most scrutinized software company on the planet so its ability to hide things is, shall we say, limited.

Scrabbling for the Top

Microsoft's dominance of the software market seems like it must have a monopoly somewhere. The fact that we can't detect it doesn't mean it isn't there, right? After all, random chance should dictate that some companies would successfully compete with Microsoft and their dominance would wane.

Ah. But since when did random chance have anything to do with markets, let alone software? There is, in fact, one thing that all successful companies do to become (and stay) successful: they attack #1. Indeed, those companies that rise to the first position and later fall always do so because they stop attacking #1. You see this with Sun. There was a period when they owned the corporate server market. The thing is, they stopped attacking themselves. Their resting gave their competitors an opportunity to come in and steal their lunch. Dell and HP saw that Sun's prices hadn't dropped even though the cost of hardware was falling steadily. They saw an opportunity and Sun is left wondering what happened. The same thing is happening with Oracle in the database server market and Sun (again) with the hot development language, Java.

And that's what has allowed Microsoft to dominate the OS and Office Application spaces for so long—they haven't stopped attacking #1, even when it's them. Microsoft, for some reason, has mastered the paranoia and internalized the lesson that they are only a couple of motivated geeks in a garage away from the #2 slot. Witness Office 2007 and the ribbon control. Microsoft could easily have sat on their dominance in the Office Application space. They didn't. Time will tell if that innovation makes their product better, but so far, it seems that it has.

The Beauty of Creative Destruction

Which brings me to the software development space. Microsoft has done here what they do in all the markets they come to dominate: stake out some initial territory and then expand to become the best value in that space (note that I said value, not software, or price, or technology). That's how they continue to dominate in business programming even though they charge money and the new kids on the block don't. Yeah, you can do some interesting things with Ruby on Rails, Java, or Eclipse. I'm not denying the achievements of others.

All I'm saying is that for me, the business developer, Microsoft makes the development decision an extremely easy one. For a paltry $2k a year, I can own everything Microsoft produces in one package—OS, IDE, servers, and Office Applications. I don't have to find out which distro is most popular. I don't have to research GNome vs. KDE vs. Xfce. And I don't have to browse a single Man page or HowTo.

Not that I wouldn't move if Microsoft stopped anteing up, but they don't seem to be doing so right now. Whether it's IronPython or Silverlight, or even Ruby, Microsoft shows no signs of letting others come in and eat their lunch. This is part of what makes it easy to be a Microsoft developer. If a good idea crops up in a space not currently dominated by Microsoft, you can bet that it won't be long before it's available in my dev environment either as a third-party add-in or from Microsoft itself.

The Wise Use of Power

All of that euphoria aside, Microsoft does have its problems. With great power comes great responsibility and Microsoft doesn't have a monopoly on ethical people in positions of power (uh, the "duh" is understood there, right?). Undercutting NUnit was a waste of community effort and good will. And what's happened with TestDriven.net is a bigger one. Indeed, with the details we have about the TestDriven.net case, it's obvious that Jason Weber at Microsoft behaved like an arrogant jerk and he deserves to take heat for it and Microsoft does as well.

Being a complacent consumer leads to complacent companies and products that never improve. So by all means, give Microsoft hell when they ask for it.

All I'm saying is that Microsoft isn't the dominant force it is in the markets it dominates because people are stupid. Any position that concludes that people don't know what is best for them is a position that I'm becoming increasingly impatient with. Brow-beating developers who don't kowtow to your party line isn't going to actually win you converts in whatever crusade you've decided to embark upon. By all means, give me your best pitch, I want to hear it. But don't assume that I don't have perfectly valid reasons for the choices I've made and even if I am a lazy bastard who couldn't program my way out of a wet paper bag, you are probably not best served by mocking me for it. Although, come to that, I sort of ask for it when I call OSS folk cry-babies with no justification...