(disclaimer: I have interned at Microsoft for the past three summers; I do not speak for them)
I think your criticism against lock-in is fair, and this is clearly one of Microsoft's strategies, and I suspect that it will continue to be to some degree. But on the language front, you are wrong. Not only are Microsoft's newest languages open-source (
F#,
TypeScript), but they are also
cross-platform and
collaboratively developed with open source groups. And, of course, you can run all
.NET languages on the Mac, Linux, FreeBSD, etc. with
mono.
While it is theoretically possible that all of this is a deadly Microsoft-bait-and-switch just waiting to happen, having worked at Microsoft, I can say that doing so would fly in the face of a lot of hard work by many, many people there. I was as critical about Microsoft as you were (dig into my
/. history and you'll see) until I worked there. Not only is it a great place to work, but the company really
is committed to changing its culture. Use of open-source tools at Microsoft used to be strictly-prohibited. Now they have a fast-track process for working with them. Open-sourcing of Microsoft software was also a complete non-starter. Now putting Microsoft code up on the web is increasingly routine, and they even have their own
open-source hosting ala GitHub that has
git bindings.
Microsoft is a big company (the Redmond campus is mind-bogglingly huge to me) and they have a lot of corporate momentum. Despite this, in my opinion, I've seen my daily interactions with people do a complete 180 in the last couple of years. Microsoft knows that the era of selling boxed copies of proprietary software is coming to an end. So you're simply wrong about Microsoft not being able to change.