I'm telling you now that lock-in has never been an explicit goal of any team I have worked for or with. Lock-in is often an unfortunate side effect of prioritizing customer paint points and integration, while downplaying the importance of engineering.
"What is my escape plan?" is a very real question that enterprise buyers consider. Microsoft software does, in fact, offer escape plans. You just need to think at the enterprise level instead of at the consumer level. Consider our server technology: someone builds an intranet app for their enterprise which uses .NET, IIS, Windows Server, etc. Their app is now tightly bound to a Microsoft stack. Each of these individual components has evolved together due to business needs and it is quite difficult for open source software to replicate any piece of the stack. That is more an accident of process than anything else.
Now lets say Microsoft server licenses are too expensive and your enterprise decides to move to Linux. The Microsoft licensing costs are already sunk. The enterprise doesn't say "Oh dammit. We've got to get rid of all these old Microsoft servers and move everything to Linux!" Why would they do that? If it isn't broken, don't fix it. Instead, they keep on running the old servers and put up with the old problems because they have already paid for that stuff. It's in the past. Enterprise customers don't buy individual components. They buy "solutions". Sure, if you get a Microsoft server stack, you're locked into the Microsoft server solution. But you wouldn't ever change any one piece of that stack anyway even if you could. Enterprises simply don't operate that way.
Now, in the document space, you want your old data to keep on trucking if you decide to switch to OpenOffice or something. Customers want that escape plan and if they don't get it, they won't buy. So Microsoft spends the money on developing that escape plan. Engineering decides that the existing standards aren't sufficient (it's true, the open spreadsheet standards still are not finalized for cell functions!), so they go build their own, but apply for standardization so that others can replicate the standard. They documented that spec in incredible detail because there was A LOT of skeptics. They had to silent the skeptics to convince governments to buy Office.
Lock-in hurts Microsoft too. Our customers expect escape plans, but we're not going to spend dollars developing escape plans that customers haven't asked for. That's just bad business.
I agree completely. All of the Microsoft employees I've come in contact have seemed perfectly competent and decent, and I believe they'd be capable of writing a compliant browser if management would permit it.
>Do you really think that there are 100,000 evil, evil people who are on a crazy power quest to dominate the world by destroying computing for everyone else?
No. Again, Microsoft employees are nice and good, and I don't believe that they believe they're "destroying computing for everyone else". I also never claimed Microsoft's strategy of EEE is "evil" or anything like it -- I think it's good business. That doesn't change the realities of the situation.
You can have a very wide base of well-intentioned people working under the direction of a handful of executives and C-levels, who don't always clue them in to the overarching strategy, or the exploitation of their leadership position.
I don't posit that Microsoft doesn't contribute to the progress of computing. I certainly don't think they do as much as they think they do, but C# is awesome, and Microsoft has done good things. I don't believe that it's an evil company and I don't believe that anything immoral occurs within MS at any exceptionally different rate than in other companies of similar size. Again, however, that doesn't change the fact that they attempt to leverage IE to make Windows a prerequisite for the web.
Everybody does this. Apple does it. Almost any proprietary software vendor does. It's about achieving the holy grail of consumer computing: platform lock-in. The goal of Apple, Microsoft, and others is to keep compatibility to a minimum so that you don't have the option to leave if you change your mind. DRM'd iTunes music, iPods, or things in other Apple-owned formats don't play on non-Apple products. Microsoft's products require Windows-based technologies. You start with one, start to build some documents and significant data up, and before you know it the cost of switching environments becomes prohibitive for non-technical users.
That's what free software is all about; it's not about keeping people from making money or anything like that, it's about keeping your data under your control and purview, so that you don't have to cross your fingers and hope that Apple doesn't decide iTunes now costs $500/user, and if you don't like it, or if you want to keep listening to the music you own (which just so happens to be encoded with Apple-proprietary formats) without paying the increased license fee, well, you're up a creek without a paddle.
Obviously standards are determined by the needs of their users, and there's nothing whatsoever wrong with proposing or implementing benevolent extensions. That's not what MS is doing by making IE misrender. They're utilizing their position to keep Windows and IE relevant and necessary.
I think you get the picture here. It's just how things operate. I don't particularly hate Microsoft and I'm not opposed to using their products when I feel they're the best fit for the job. You can't seriously assume that Microsoft is just _that_ bad at making a good browser, and holds it off for so many years, and so on. Ignorance doesn't match up, imo.