Levels of Runtime Predictability

Yesterday Peter-Paul Koch followed up on his testing of browser technologies with a piece examining implementations of one particular browser library, and concludes There is no WebKit on Mobile — there’s iPhone WebKit, Android WebKit, S60 WebKit (at least two versions each), Bolt, Iris, Ozone, and Palm Pre, and I don’t doubt that I’ve overlooked a few minor WebKits along the way.”

I’d urge you to read Peter-Paul’s original paper, as well as followup essays by Savio Rodrigues, Stefan Constantinescu, others.

WebKit is an interesting situation. In HTML itself the file format is openly published, and implementers are encouraged to build their own versions. The WebKit project, under Apple governance, openly publishes HTML runtime source code, which is then modified and distributed by device manufacturers.

In HTML, a file format is “open”, and implementations vary. In WebKit, a reference implementation is “open”, and device-specific implementations still vary.

Flash complements these two. The SWF file format is openly published, same as the HTML file format (although governance of file format improvements is within the Adobe ecology, rather than the W3C/WhatWG ecology). With Open Screen Project we’re more in the WebKit range, where Adobe establishes the reference implementation, and partners customize this to their device. Flash Player 10.1 will differ across device based upon device capabilities (screensize, input methods, accelerometer, etc), but I don’t expect it to vary in basic runtime capability the way WebKit does.

Is one better than the other? Is WebKit better than HTML, or Flash better than WebKit? I don’t think so… each serves different purposes. Apple’s donation of WebKit sourcecode helps resolve some of the implementation differences of the HTML/JS/CSS/DOM/etc specifications. Adobe donates a standard Flash implementation to the world’s screens. These options are better when they work together, when one doesn’t try to be the other. They’re different… both good.