My father-in-law used to ask me this relentlessly after my wife and I had just gotten married. There was a specific definition he had in mind.
I’m asking that question about the iPhone. Like a progressing marriage, I’m finding the quirks and limitations of the platform. Some of those limitations are now obvious in the implementations of some of the system applications. That’s not to say the applications aren’t great, it is just clear that the developers of those applications hit some of the walls that I hit and worked around them.
The point is that they need not be deal-killers. Just like any software platform, there are bugs and limitations. The truly talented people are the ones who sees the platform for what it is and what it can deliver, rather than what it can’t do out of the box.
In the days of Windows CE, I did quite a bit of support work with the developer comunity on the newsgroups (does anyone run news servers anymore?). You could see difference between people who were looking to solve the bigger problem and the people who were looking to have their problems solved.
That is the line between the casual and the committed.
The honeymoon might be over, or it might not. I’m facing some big challenges and spending some serious time on the gameulation (yes, I made that up) product that I’m working on with another company, so much so, that I’m delaying releasing my completed app — I just haven’t been able to bring myself to make a trip to RadioShack for some testing equipment. I’ve got too many challenges in my current project to make the time during my daily (and nightly) focused development time.
The great news is, however, despite the challenges, the app I’m building is looking pretty good. Going from a kernel of an idea of how I’d do the things I’m doing to the realization of the first stage of that mental design on a platform, language and framework I’d used to develop one small app has been a great challenge and liberating mental exercise.