An important thing to understand is that Microsoft is already preparing for web development competition. They've released their Express edition software for free (as far as I know it was supposed to have become a pay-for product by now, but it's still there for all to download). They've also distributed free compilers for VB, C#, and C++, as well as an open-source .Net implementation, and there are plenty of open-source IDEs for all three languages (and more). If you can't beat 'em, join 'em, I guess. If they fight the concept of open-source, they'll lose, so they're doing the best they can with it, and they aren't doing half bad.
Microsoft's biggest advantage is their pre-existing clout. People will continue to use Microsoft because so much of the world runs on Microsoft, and Microsoft tends to make a point of maintaining incompatibility with their technology and the rest of the world's to make the switch from Microsoft to open-source or another software developer increasingly difficult. And yes, they fell behind a little bit, but they've been stepping up and delivering better and better lately and I think they will catch up.
As far as open-sourcers stepping out of the ashes, yes, they will always be there and they will always have their place, but so will commercial software. As much as I would like to see a thriving "communist" (or open-source if the term communist offends you) world of computing, the fact is that the world of computing is primarily commercial and will stay that way for as long as I can see.