I got myself an iPod touch a while back, but I avoided the iPhone. I didn't like dealing with AT&T, and am glad I waited.
The Android isn't the same as the iPhone. It's got a different philosophy behind it. You can use it like a touchscreen, or flip the keyboard out and use it like a sidekick with the keyboard and thumb roller.
I like a hardware keyboard better than a touch-pad, but when the keyboard is retracted I can use the touchscreen to place a call.
Phone quality is good down by the beach in Los Angeles where phone service historically is poor. The 3G support in LA seems to be very good. I'll have to try it up by Magic Mountain to see how it works in the "boondocks."
However the real reason I waited is that its much easier to write software for Android. You use regular Java, not Objective C. I've been using Java since 1995, so its a lot easier to look at writing a Java app, even using the command line with Ant, than it is to write Objective C, even with the wonderful tools in Xcode.
Objective C just looks weird, if you're a Java person. I deal with Java and Python for the most part, though I learned C about 11 years ago. However Objective C just feels more clunky than Java. As a developer I can open up Java code and immediately know what is going on. the Android documentation is all standard Java doc, so it's stuff I'm used to seeing and dealing with.
Now if I had been using NextStep since 1995, then I'd probably be churning out Mac and iPhone code. I'm still learning those, but it looks like the app will get written for Android first and then go through a long and painful re-write for the iPhone.
Well, not as painful as it would be without Xcode, and just command line gcc, but its still painful compared to writing ordinary Java code, especially for complicated OpenGL code. I don't want to have to use Objective C for that. Fortunately my app won't be using OpenGL, but my future 3d project may need to be Android only just for that reason, it's going to be too hard to write it as effectively in Objective C.
Maybe for C++ people Objective C is really easy and Java feels like being a pit bull with a muzzle, but for an experienced Java person I'm glad I don't have to write C++ for Android.
Now Android doesn't do "the pinch" like the iPhone, but then I can't play Ogg Vorbis files on the iPod touch either.
I would bet the pinch is patented by Apple, so it's unlikely to move over into other smart phones beyond the iPhone.
But I don't really miss the pinch. The little pop over zoom controls do the same thing, so that's not a huge loss.
It's also not as solid a piece of hardware as the first generation iPhone or the iPod touch, but it's just as solid as the 3G iPhone.
So far I haven't switched off of 3G yet, I'm going to go out to the "boondocks" to see if I can test that.
Unlike the Blackberry, the T-Mobile Android phone can charge off of a USB cable. Unlike the iPhone you don't need a special application like iTunes to manage files and music. You can just dump files in like its a regular USB disk.