One of the disadvantages that is often cited when comparing the Microsoft .Net vision to the Java vision is the fragmented nature of the Java vision. With .Net, there really is only one "product" you can use, which makes purchasing decisions a lot, lot simplier. -- Lee Walton, on the possibility of Sun ditching NetBeans for Eclipse.
Famously, Microsoft's address is also it's philosophy: "One Microsoft Way". Bill Gates' vision1, almost completely realised these days, is everyone running the same software: his software. As we have seen lately, monocultures are a dangerous thing. Where a monoculture is weak, that weakness is amplified because everyone suffers from it. On top of that, reliance on a single vendor leaves you subject to the whims of that vendor. If their goals diverge from yours, you have nowhere left to turn.
"Fragmented" is a spin word. It has powerful negative connotations, implying that something that was once whole has broken into pieces. I would like to replace it with a better word: "competitive". The Java landscape isn't fragmented because we have more than one IDE. The Java landscape is competitive because our IDE vendors know that if they don't keep up, we have alternatives to switch to.
Don't like Eclipse? Buy Idea. Is your particular application slow in Sun's VM? IBM has one you could try instead. Want an application server? Writing a web application? Persisting data? Parsing XML? We have a plethora of different options, all of which want to be better than the others, all pushing each other to improve, and cross-pollinating ideas amongst themselves.
There is a downside to this: in that it's harder to keep up with what's new, and you're less likely to be able to grab developers off the street with skills in exactly the tools you are using, but on any project of a few months or more, any toolkit education developers might have needed becomes a pretty small fraction of your total cost.
There are two ways to produce something people want to use. The first is to have ideas, try them, see how the market reacts, refine them and repeat. The second is to sit back, wait until everyone else is done having their ideas, and then produce an amalgam of what has worked for everyone else. The first requires a competitive environment. The second requires someone else having a competitive environment from which you can cherry-pick the best ideas.
So here's to fragmentation, and here's hoping we never have to put up with One Sun Way.
1 "I want to have a computer on every desk and in every home, all running Microsoft software." -- Bill Gates. I think he said it in the late 70's, but I can't get an official date for the quotation off the net. It's an amusing reflection on Microsoft's antitrust concerns that all official Microsoft records seem to have removed the last four words from the quote.