Wednesday, July 12, 2006

On Windows

Some people would think that if I am going to write another post bashing Microsoft. Actually I am not. To understand why Microsoft does things the way they do, one must understand their motives. As I am not Mr. Spock and live far from Redmond, I can only conjecture. Here is my take: Microsoft is a company. As any good company in a capitalist society, its objective is to make money. Nothing wrong with that; I myself like the good ol' little green pieces of paper myself. But, what does that mean? Well, they have to make choices based on cost. Take bug tracking. I would imagine they have a list of bug reports this big. But, which bugs get taken care of first and which ones stay on the pile? It has to do with the perceived cost and benefit of solving that specific problem. Sometimes the bug is major but it would cost a lot of man-hours to solve and it is currently not causing enough costly problems to be put on the top of the list, so it bubbles down on the pile until that changes. Outraged? Other industries do the very same thing. Take automakers, just to pick one. How do you think recalls come about? Many recalls cost a lot to the company so it compares how much it costs to do the recalls vs. how much it would cost to take care of any litigation caused by the problem. The same goes for computer companies. If a given security hole is not seen as causing enough damage, financially speaking (bad rep is indirectly related to financial concerns, so...), it may take a bit to get solved. Remember those companies do not have an unlimited budget or number of programmers they can throw at a problem. So, they have to make a choice. Microsoft's Bill Hilf said that his employer designs Windows to reach a broad range of customers. As a result, it may not cover specialized markets with specialized issues. So, that bug you are so concerned about may not be seen as having enough of a broad reach to be placed on the top of Redmond's todo list. They have to pick their battles and priorities. Open source software is a different bag of cats alltogether: since you have the source code, you have the opportunity to take care of that bug yourself and then submit the source code changes. Of course that could lead to some source control issues, but the point is that if open source code is not doing exactly what you want, you can do something about that instead of complaining that the program sucks.