XULRunner for the iPhone

There are two current conversations about development platforms that I think deserve a little merging. First, there’s a lot of interest in so-called “rich Internet applications” platforms, like Adobe’s AIR and XULRunner. Second, there’s much debate over the meaning of this week’s iPhone application development announcement, that iPhone apps will be written in HTML and Javascript, just like any other Safari page.

Same problem, different device. The problem is this: what capabilities do you want in an Internet-age application platform?

I’m a big proponent of XULRunner for desktop applications. It’s my opinion that many of the applications we all want to write and use these days need to consume a wide variety of content from the web. You can script together a single-site or limited-scope solution with something like Perl’s WWW::Mechanize, but if you want to deal with arbitrary web content, it’s hard to beat what XULRunner provides — namely, all of the capabilities of Firefox in a development platform. Stephen O’Grady has a fantastic write-up on this topic, and RIA platforms generally, which I highly recommend.

And yet, I’ve argued very strongly for third-party apps on the iPhone. I was left a little befuddled by this week’s iPhone news, unsure whether to cheer with my friend Jason Fried, who calls the move “bold” in his piece, “iPhone SDK: It’s called Safari,” or to be dismayed like Jesus Diaz at Gizmodo, who writes a righteous condemnation of the announcement in, “No iPhone SDK Means No Killer iPhone Apps.”

As with all things Apple, we’ll just have to wait and see. I’m inclined to agree with Jason that Apple has made — for whatever reasons, expedient or prescient — the right philosophical decision about how iPhone apps should be developed. Building apps on top of a web browser is the right call for all of the reasons described above. iPhone apps are going to want all of the capabilities that Safari can provide.

On the other hand, just HTML and Javascript is too little, for all the reasons Jesus mentions. An “application” which is just a web page with a home-screen button that acts like a bookmark isn’t really an application for the iPhone — it’s an application for the web. And here’s where the wait and see comes in; what interfaces, if any, will the iPhone Safari have to the rest of the phone? It sounds like making calls is one of them, which is great. What else? What else will people want? I suspect that the real and right desire is to connect all of the capabilities of the iPhone to the Internet. That’s not going to be in the 1.0 release, I’ll bet, but I also bet that by opening this door, Apple is acknowledging the demand, and from that can come a lot of good.

Bring the web to whatever device I’m using. And then bring the device to the web. That’s the mantra for the web application development platform debate — no matter the device. I’m encouraged by XULRunner and encouraged by Apple’s move, and I think the common solution these two imply is the right one.