Joe DeFuria said:
No, I have common sense. Companies don't invest money without an eye for a return on their investment.
Apparently you are not aware how most software developer divisions are run. Do you work or have you worked at any software company?
Let me put it this way: Do you think each and every API feature is analyzed for ROI? Software design decisions are not reviewed by the CFO, and such decisions decisions such as product architecture are usually left up to product development.
If any analysis happens, it is years later, that's why companies drop support for software products only after LONG periods, even if such software was not very successful. API feature support is deprecated only much much later.
My experience has been, a company will usually have one or two competiting groups vying to do similar projects, sometimes the company ships both, sometimes, through internal politics, one group kills off the other's project, but in no sense, have I ever seen ROI come into it.
At best, TIME constraints come into it: e.g. "We need to deliver this product by Q4, and we must sort features by most important, and which must be delayed to a following release"
BTW Joe, I am not "anti"MS. I love many of MS's products. But I am a software developer, and despite the fact that I like to use their products, I am not "impressed" by the quality of MS's APIs, architecture, or documentation. A word comes to mind when looking at much of the MS Win32 APIs: HACK.
Think of it this way: You might enjoy riding a certain sportscar, but when you lift the hood, you see that the internals of the car are a mess, and it works in spite of itself, but it is not something you, as a mechanic, would respect.