One of the things that I noticed and hasn't seemed to be fixed with Java, is the relative slowness to Native apps that it displays when trying to run it on Windows -- even .NET doesn't seem to be quite as slow in some ways (it could be the native Widgets vs. Swing).
I started coding my data mining tool in C# vs. Java because I wanted something that had a great IDE, and was quick to run, and easy to use. I spent a lot of my working career doing a lot of Java, but I'm starting to think something is up, even though Java is STILL hugely popular:
Why would I say this when Java still has 30% of the marketshare for programming jobs or something like that?
How many client Java apps are popular? Why are client apps predominantly STILL coded in something other than Java? Slow / garbage collection / bugs / etc.
Which is why I almost freaked out when I found out that Oracle had bought Sun, because Java used to be one of my favorite technologies, and even though Oracle is still one of my favorite databases, its installer is a pain and is pretty slow because it uses (yes -- Java --) for the GUI.
But what is the clincher for using C# vs. Java on the GUI side for me right now? I can port my code over to Unix or Mac via MONO. I can run the C# on the web via MONO OR ASP (Microsoft or UNIX). And even with the ton of time that Java has been out, it STILL doesn't have the support on the commercial side in terms of components, etc., that Microsoft has with ActiveX/OCX/ASP components, etc. Even though probably most of these probably aren't supported on C# or MONO (sad), there's still a lot of .NET comps that are opensource -- a lot considering how new C# and .NET is compared with Java.
Which makes me wonder with PHP / C# / ASP if Java's days aren't extremely vs. LAMP / ASP / Ruby / etc.