See, that's why I hate Java, it's neither town nor country: no good for systems programming nor rapid scripting. It makes far more sense to master multiple complimentary languages (C and Perl / JavaScript / whatever) than to keep up with all the stupid crap various different companies / individuals have done to try to get Java to work for them.
Microsoft has done a much better job without forcing one aging language down your throat: native C/C++,
managed C++, C#,
PowerShell,
Oslo / M-based domain-specific languages,
XAML, etc. Microsoft is also ahead with
dynamic languages and research into
fully-managed operating systems.
And, needless to say, Microsoft has a full-stack solution - does anyone actually use a Web browser / spreadsheet / media player written in Java?
Sun's "Java desktop" is a mess: different apps have different technologies under the hood and totally different scripting / plug-in API's. They've got Gtk, XUL, Swing, they've barely managed to avoid Mono that's making inroads into Gnome, and then of course you install Eclipse / Azureus which uses IBM's SWT, and good luck using a *NIX desktop for a while without ending up needing something from Qt-land as well...