I have been using the new T-Mobile G1 as my primary phone for a while now. It is the first phone which runs the open-source Android mobile software stack. I agree with most of the reviewers that the G1 or even the Android software is no iPhone when it comes to stylish elegance, attention to detail and consistency in the user experience. However, this is somewhat besides the point. Android is a developers dream - designed from the ground up as a 3rd party application delivery platform. I have also played around with the application development toolkit and written 2 small Android applications - which even for somebody without any prior experience in Java or mobile device programming is surprisingly easy.
The main criticism for the G1 hardware is that it seems to have been designed by former soviet industrial planers - I can't quite figure out if it is meant to be retro Brezhnev or Khrushchev era styling... I would also prefer a 100% touch-screen driven device instead of the neither fish nor fowl physical design compromise which a sliding phone requires. On the other hand, lot's of people seem to think the keyboard is a great advantage over the iPhone and since the G1 has all the imaginable hardware features (3G, WiFi, bluetooth, camera, touch-screen, keyboard, GPS, accelerometer, compass, etc.) I makes for a great eval and development platform for the Android software before it is ported and released on hardware which maybe will make some more radical design choices - e.g. an iPhone class 100% touch-screen only phone (HTC Touch HD anybody...) or a BlackBerry/Nokia style high quality fixed keyboard body without touch-screen. The G1 feels solid and can't really be faulted for anything other than being somewhat unrefined and uninspired - at least next to an iPhone.
The software stack is surprisingly stable and mature for a product which is barely out of the door. The tight integration with Google gmail, calendar, contacts and IM is nice for people who mostly use it. In the beginning the sync for contacts and calendar acted up a few times and got stuck, but since the server side is the master copy anyway, it is easy to get unstuck again by simply erasing the data for the application in question.
In general the current release of Android lacks monitoring and management. It's all nice when things work, but when something is funny there is very little even a power user can look at - short of connecting the USB port and using the development bridge (adb shell...). Since Android gives developers far reaching powers - including running in the background or continuously as a service - the user is often at the mercy of the application developer being reasonable - specially when it comes to being power efficient - which is probably one of the most critical things on a mobile device. There is very little the user can currently do to even see what the apps are doing and override their behavior once they are installed - other than uninstalling them again, if the user can figure out which app might be causing the problem.
Many apps have been developed purely on the emulator and the hope is that once the developers themselves have real hardware in their hands and see how their app kills the battery in 3h they will maybe figure out that polling the GPS for current position every 3s is maybe not such a smart idea - even though location aware application seemed like such a cool idea in concept. Half the apps currently in the Android Market are somehow location based - and the GPS on the G1 is one of the worst battery killer...
The G1 is certainly a great starting point to make Android real and I can only imagine what potential it has for development and research in mobile systems and applications. Personally, I am still hoping for a slicker more elegant device - with only a large high-quality touch screen and no moving parts.