A new platform in just a weekend

July 09, 2008

Jesse Ezell believes it is too much to expect software developers moving to a new platform to spend more than a weekend learning the language, API, and tools:

Honestly, I don’t think most developers could get up and running with the SDK in a weekend and it’s a lot to ask to have people pour a lot of effort into an application without knowing whether it will actually be accepted.

To be fair, “get up and running” could mean a number of things. But the rest of his blog post is written in a tone which suggests that taking up iPhone development with no prior experience in Objective-C or Mac development should really be just that easy. Yet, software engineering requires “a lot of effort” on any platform. It is not outlandish to expect anyone who is serious about development – on the iPhone or elsewhere – to spend more than just a weekend getting up to speed with his new environment. (There’s a reason 464 page books are written on the subject. Hats off to anyone who can get through all that in a weekend.)

Ezell goes on to write about the model-view-controller design pattern:

The UI libraries are strictly MVC. You have no other good option. Either you write MVC, or you go home.

Not only is MVC a good choice for architecting solid applications, it is by far a superior alternative to the sort of schizophrenic “options” disaster Ezell is seeking. Perhaps going home is worth considering after all.

But the biggest indicator that Ezell just doesn’t “get it” is this:

As far as I could tell, the interface builder doesn’t really store the interface in a useful form. Early on, I tried to drag some buttons around and then go look at what it generated; but, as far as I could tell, the IDE appears to put the UI in some kind of resource file instead of generating something you can hand modify later.

The value of a generative approach in this situation is questionable. If any properties of these buttons need to be modified later, then the answer is to go back into Interface Builder and perform the modifications. The fact that a user interface designed in IB isn’t “hand modifiable” is not a bad thing. That this is even brought up as a criticism seems to strongly indicate a mental barrier erected by developers who want everything on the Mac and/or iPhone to be the same as what they are already familiar with, rather than a problem with Apple’s development tools.