As good as the iPhone is in some regards it is missing the balance of the Mac computers, and that is what is bothering me.
I recommend the Mac for both developers, and their mothers and fathers. For the “I am not a computer person, I just want to check email, write docs, and have no issues” the Mac is perfect. It’s usability is second to none, and everything integrates nicely. The iPhone is the same. It is how Steve wanted it, and that is great for most users.
For developers, the Mac is perfect as you can get in under the hood and tweak anything you want. It’s just Unix. It has an incredibly open API. Non-hard core types can still tinker around via AppleScript, Automator, and the like. I can run my Rails app in a similar configuration on my Mac to my server up in the cloud.
This is the piece that is missing from the iPhone. We have no window into the device at all. We can’t make the most simple tweaks that would make our worlds easier to deal with (e.g. even email filters and such).
Apple needs to redress this balance shortly, else the developers will get bored of the device and someone like Nokia or RIM could come along with a more open platform and entice them.