Excuse the somewhat childish overuse of caps and exclamation marks, but I really had to get the point across!
I have a 32GB iPod Touch and have also tried other people's iPhones, so I have a fair idea of how the iPhone compares to the G1. And quite frankly, I think that Android is going to utterly annihilate the iPhone.
Believe me, I don't say this lightly. I'm certainly not an Apple fanboy, by any means, but I do like my iPod Touch. It's polished, it works pretty well, and the apps I've used so far have been pretty cool.
However, the iPhone and iPod Touch have plenty of flaws too. I don't like the iTunes music store - I think it's a bit of a rip-off for downloading music compared to Amazon's MP3 store, which is cheaper and DRM-free.
At present, Apple may have more apps already available, but I feel that longer-term, Android is likely to attract more developers. Here's what I find restrictive about the iPhone and iPod Touch for software development:
- You can ONLY develops apps for them on a Mac, using XCode.
- Apps are written in Objective-C, a programming language with little support outside the Mac community.
- You have to be in the Developer Program which costs $99 (OK, it's not much, but it's still a barrier to development - after all, what if people in the developing world wanted to develop apps?)
- You need Apple's approval to make your app available - this has been discouraging developers who have seen their apps being rejected for vague reasons, and these are the people you really don't want to piss off as they are the lifeblood of any software community.
- You can develop apps on Windows, Mac or Linux, with Eclipse being the main development environment, although others are supported.
- Apps are written in Java, probably the most popular programming language in the world, with a massive existing developer base, and already widely used on mobile platforms.
- No requirement to join a developer program.
- No need to have Google approve your app - Android Market has no restrictions on apps, unless they are outright dangerous (OK, someone will say that makes them potentially dangerous - I'd answer that Android is Linux-based so it should be pretty rock-solid, and Java apps run in a Java VM so they are sandboxed, so I think that's probably safe enough as long as they sort out the notorious bug where it would run text commands as root...)
A lot of people have said that the G1 doesn't stand up to the iPhone on various counts. OK, that's fair enough, but they miss and important point - the G1 isn't Android, it's the first Android phone, and is largely for developers and early adopters. There will be others, and some of those are courtesy of manufacturers that really know their stuff. I love Motorola phones, so I might consider getting an Android-based Motorola device.
From what I hear, the Cupcake branch of Android is making staggering progress. Thanks to its being entirely an open-source project, Android can very likely develop faster than the iPhone OS can. In a year or two, I would expect Android to have outpaced the iPhone OS. If you compare Android now to the iPhone OS when it was released, I'm pretty sure Android is superior. The Android of a year hence will no doubt have seen a lot more development, and crucially, a LOT more real-world use, and will therefore no doubt be a completely different beast.
Having seen it in action now I'm sorely tempted to get a G1, and I'm only inclined to wait because of the promise of even better in the future. I've mentioned that I'm currently learning Python, and I have plans to learn another language after that. I've considered Objective-C as creating an iPhone app, even if I didn't make it available, might be an interesting challenge, but now I'm thinking that learning Java and creating Android apps might be more interesting.
Finally, just like to wish everyone a Happy New Year!