All posts

Client-Side WebKit

Originally published on macresearch.org, around 2007. Reproduced from the author's archive; some links may no longer resolve.

Over the last year, a number of new web technologies have started to emerge with a common goal: to add decent client-side storage to web applications. From Adobe Air (link no longer available) to Microsoft’s Silverlight (link no longer available) and Google Gears, it seems like every company with a stake in software is pushing a solution. Today, Apple made its play, by announcing support for a client-side database in WebKit, the engine that drives Safari, Dashboard, and all other web technologies on Mac OS X.

What’s attractive about Apple’s solution is that it is based on standards, albeit immature ones. In particular, the SQL support in WebKit is derived from the yet-to-be-finalized HTML5 specification. This probably means it may change a bit going forward, but it is nice to see Apple so active in adding these features to WebKit. It opens the door to a whole new type of application, one that works more like a traditional Cocoa or Carbon application, capable of running offline with a local data store, and yet is cross-platform — remember, Safari runs on Windows — and developed with ubiquitous technologies like HTML, CSS, and Javascript.

These developments should interest scientific developers as much as anyone, because scientific markets are traditionally niche markets, and developing a commercial application for a single platform is often not an option. Web technologies don’t yet offer the user experience that native desktop apps do, but they are developing fast, and a case could be made that they have already caught up to some other cross platform solutions. Take Java for example: I don’t know about you, but I think some of the apps Google has written in Javascript offer a better user experience than most Java apps. Add to that the potential to store data offline, and the competition is heating up.

If I were considering developing a cross-platform scientific app today, I would definitely be considering whether one of these new web technologies was not the best option in the long term. And if you are going with web technologies, why not choose for a standards-based approach. Kudos to the WebKit team for this advance.