Updates, apps and Java
The Updates fiasco provided by the likes of Vodafone could seriously damage Android. Being 6 months into a two year contract with a 1.6 based phone that the service provider (I'm looking at Vodafone UK, here) won't commit to update is extremely annoying and could put people off Android. The fence sitting is the most annoying thing, they refuse to say whether they will or won't update your phone.
There are, indeed, a lot of garbage apps on the Android Market. There are also a lot of apps that you cannot (and, due to Apple's App Store policies, never will), see on an iPhone. Generally there *is* and app for most things on the market, and, unlike the iPhone, if there isn't an app, I can write it myself (on Windows, Mac or Linux) and don't need to pay anyone to deploy it on my own phone.
There's nothing wrong with Java (at least, no more than any other language), and, IMHO, the Android API is rather elegant and powerful, though that's obviously a matter of personal preference. You do realise we are talking about something that is more akin to the full J2SE, rather than the J2ME abortion that is used to provide Java apps for most other phones. That, I will concede, is a frightful mess.
Running a rooted Vodafone Magic. Got pissed off with waiting for Vodafone to make their blasted minds up.