Actually, those numbers are only US numbers. The iPhone alone is beating out all of the Android devices combined worldwide by quite a large margin (15.4 to 9.6) - this doesn't include iPod touch sales:
http://www.gartner.com/it/page.jsp?id=1372013
As for Nokia; Sine, I don't think you have any idea what you are talking about on Nokia; it's not "nobody has heard of Symbian" more accurately, it is YOU who haven't heard of Symbian; there is a world outside of Kentucky and the US. I also don't see why you think it won't last because it's Nokia, their dominance of the mobile market looks like it's going to last a good long time; they sold over 110 million phones last year - more than double that of the entire Smartphone market combined.
Android is the one with the limited competition so far - you mentioned the Droid's success. That's propped up by Verizon that is on a CDMA network where it has no competition from anyone except the lowsy Blackberry Storm line. The Droid is still a Motorola phone, and i feel sorry for people who actually bought it and it's bulky oven drawer of a slider keypad (which is one of the worst keypads I have ever seen).
As for the Nexus One, it IS manufactured by HTC and is the top phone they manufactured for the past 6 months; and will be until the release of the Evo, which is more or less an upgrade on the Nexus One. Which one did you think was better?
Java ME and Android are BOTH mobile platforms with specific markets and certifications.
Your comparison between Microsoft a mobile game developer who requires art time and dollars for different assets on different resolutions and hardware capabilities, who probably will put more hours into development than copies they'll actually sell (because it's Android). In comparison, MS Word is a popular 'word processor' backed by a company which has tens of billions in revenue. As I mentioned above, Android's crazy firmware upgrades mess everything up from version to version.
Kupek's link that you mysteriously can't access:
I've developed 7 Android apps and the huge diversity of Android versions and devices out there really is a nightmare. I have an enormous number of extra code paths due to it. All this extra complexity makes apps tougher to write, tougher to test, tougher to debug, tougher to enhance.
Some examples of bizarre stuff I have to do:
Android 1.5 has a Java NIO bug that forces me to copy data to a temporary array on its way to buffers to be rendered via OpenGL. This hurts performance on older phones that often need it the most. It also means I have to do more testing to make sure both code paths are well exercised. I bet many developers don't even realize the bug is there an just have broken OpenGL apps on Android 1.5. The bug fix would be trivial to port back to Android 1.5, which would make it drastically more likely to get on to these older phones, but there's no sign this will ever happen. Do I keep code paths like this? Or do I give up the 25% of the market that is Android 1.5? Neither is desirable.
Another really frustrating one is how I have to detect specific devices and request certain size depth buffers just to get decent performance. Hardware graphics acceleration is only enabled on the Samsung Galaxy for depth buffer size 16, for example, not for no depth buffer. Depth buffer size 24 works best on the Droid, etc.. The Galaxy has had this bug for a very long time. The Archos tablet has no hardware acceleration and there are promises that cheaper phones will be similar. Do I write all the extra code for adjusting rendering for each of these? Or do again give up large swaths of the market?
Anyway, I'm constantly dealing with issues like this. It is really disappointing that Android team, the carriers, and the device manufacturers don't do more to prevent it. Doing things like back porting fixes so that older phones can be more trivially updated would help enormous numbers of apps and app developers compared to the very few resources needed on Google's part to do it.
Meanwhile Google isn't even interested in solutions to these problems from what I've seen. One developer brought up another potential solution during a session at Google IO. He suggested making the highest level of Android a distributable framework, like .NET. This would allow updating it much easier. Not nearly as many phones would be stranded with old, buggy versions of the Java portion of Android at least. The Google staffers just brushed the idea off without even discussing it. They said fragmentation should really be called progress and to deal with it.
This isn't really surprising. If you look at a recent app produced by Google, the Twitter app, you'll see that it is unavailable to a huge percentage of the market because they don't support older versions of Android with it. Independent developers can't afford to ignore large sections of the marketplace like that. Google isn't in the app business, so the Googlers just go ahead and ignore the issue. You can see a graph of the versions of the devices on Android Market here:
http://developer.android.com/intl/fr/re ... sions.html [android.com]
And of course there are plenty of devices not on Google's market, many of which are even less likely to receive updates because they are updated by PC software rather than over the air.
So Googlers aren't even eating their own dog food on this issue. They just make app developers put up with it on their own, never experience it themselves, and then ridicule the issue as a bogeyman. I think I was happier before I read the blog post. At least then I could imagine they were working hard on the issue and just doing terrible at it. Now I know they don't even consider it an issue.
Lastly, about BREW - at least people can make money with their apps on it.
Oh, and I am not sure what this whole PC war you are talking about really has to do with anything now. It's a totally different market and a totally different era. Apple has the top Smartphone in the world by far, and There are many Android phones; all of them combined aren't selling as well as Apple's one phone. If your analogy with PC is accurate, shouldn't Android be marginalized, and Winmo be winning?