[Full disclosure: I am no fan of Apple. I didn’t even own an iPod until recently, and only then because I was able to immediately wipe Apple’s software off it and use the far-superior (for me) open-source Rockbox firmware on it instead. I did not buy iPhone, and had no reason to hold any bias towards it prior to playing with one. In fact, when I did play with one after finding out that I won mine, I hated it. If anything, my bias is against iPhone, and is most definitely against Apple.]
I’ve been having the hardest time writing up a full review of the iPhone, partly because even I am sick of hearing about them. The short answer is that for me, iPhone is a lot like Michael Bay’s Transformers; sure, there is a lot wrong with it, but I like it anyway. Would I pay $600 for one? Probably not, but everyday I get more value out of it, putting me closer to the point that I would. I’m up to about $350 right now, for those that are curious how much I would pay for one.
If all you want is a phone with email and access to the “real internet,” (<--- you should really click that) then I'd say your money is better spent on one of the many other cheaper options (many of which do a better job of those things, some say. I agree with them.) that aren’t crippled in such painful ways. One of my favorite examples of iPhone stupidity is the following: if someone sends you a calendar appointment in iCal format, iPhone doesn’t know what to do with it. Yes, Apple’s email client on Apple’s phone can’t understand Apple’s calendar format. Yes, iPhone actually HAS an Apple calendar app on it, there’s just no way to get appointments into it without plugging it into a computer.1 Stupid. There are many other stupid things that I don’t feel I really need to go into here. If you know someone that has one, you’ve surely asked them about something and been told “no… but maybe in the next update,” or heard other people bitching about them. In many ways, iPhone really sucks.
That said, here’s why I love mine and cannot get rid of it: because the high-profile lust-worthiness of the device coupled with Apple’s non-commitment to releasing a 3rd-party software development kit has resulted in a “hacker” development community that kicks all manner off ass. Within a month of the device being out, people had already written not only UIKit, a sort of cobbled-together SDK, but also a compiler and linker and various other tools to be able to get the code they write with the SDK to run on iPhone. Tomorrow will be 2 months exactly, and already there is a multitude of really awesome apps out there letting me do any number of awesome things, not to mention a full suite of UNIX command-line tools. (Being able to set up cron jobs on your iPhone to, say, have your iPhone rsync all your camera photos to your webhost over the wireless connection at certain times of the day? Yes, that’s no problem.) There’s a neat voice recorder app (which hopefully will gain MP3 functionality soon, allowing me to email recordings right to my blog. Instant podcast from anywere? Awesome.), DOOM, a couple different NES emulators, a terminal client, a bunch of neat games, a text editor, a couple different file browsers, an ebook reader, etc. I’m just scratching the surface here. One of the neatest apps is called Installer. It works as a sort of package manager, allowing you to install/upgrade/uninstall various applications without ever having to use a computer.
Speaking of having to use a computer: after gaining access to the whole iPhone, the easiest way to manipulate things on it is via ssh. (Yeah, you can ssh into your iPhone. Also available on iPhone: Apache web server, and SAMBA so you can make it show up in your Windows Network Neighborhood.) One neat little trick is that if your OS is smart enough, you can use ‘sshfs’ to mount your iPhone’s filesystem to your local computer over ssh—without ever plugging anything in. This allows me to manipulate things on it, even loading music and videos all wirelessly. Whenever my iPhone is in range of my wireless router it shows up on my local machine. That is pretty frickin’ fantastic.
So, in conclusion, if shiny trendy expensive things aren’t really your bag, but being able to use that UNIX knowledge you’ve got to do UNIXy things anywhere you happen to be, then perhaps iPhone might be for you. It sure is for me. (But then again, mine was free. I’m confident, though, that after some more time with it I might get to the point that I’m willing to pay full price for one. Just not quite yet,)
1: the calendar, like pretty much every other source of data on the iPhone, stores its data in sqlite3 databases, meaning that it’s fairly trivial to manipulate without iTunes. I’ve been kind of half-assedly working on some scripts to pull down my google calendar .ics file and inject the events into my calendar db, but thus far my heart hasn’t really been much into it. Maybe some day.