What is it?
Anyone seriously interested in developing rich internet applications (RIA) should be paying attention to WebKit, an open source web browser engine used by tens of million of people who have never heard of it. It's the basis of Apple's Safari browser, implemented on iPhones as well as on Macs. Nokia uses WebKit for its mobile browsers, and it's part of Google's Android mobile software stack. Google is implementing it in Gears, andAdobe in Air, two different ways of enabling RIAs to bridge the web and desktop environments.
But many implementations have been based on potentially incompatible "forks" of the WebKit code. Now that Apple has released Safari for Windows -far from the first attempt to put a WebKit browser on the Microsoft desktop, but the one most likely to succeed - the benefits of pooling efforts and improvements to make WebKit implementations compatible are compelling.
A debate that has largely taken place on a thousand blogs, away from the mainstream press, could be of enormous significance to the future of the browser market. In 2006, KDE, the open source K Desktop Environment, announced that it was to re-synchronise its HTML rendering engine, KHTML, on which WebKit is based, with WebKit. Future WebKit implementations should be drawing on the same code base, allaying the worries of platform builders and developers that the market is too fragmented.
Where did it originate?
What is it for?
Another project goal is to enable ports of WebKit to a variety of desktop, mobile, embedded and other platforms, reusing native platform services where appropriate, and providing friendly APIs.
What makes it special?
How difficult is it to master?
According to the WebKit project goals, "we try to keep the code relatively easy to understand, even though web technologies are often complex. We try to use straightforward algorithms and data structures when possible, we try to write clear, maintainable code, and we continue to improve names and code structure to aid understanding. When tricky 'rocket science' code is truly needed to solve some problem, we try to keep it bottled up behind clean interfaces."
What systems does it run on?
In addition to the major vendors already mentioned, WebKit is supported by the Qt toolkit, and has been adopted by the Gnome desktop. Gnome, an alternative to KDE, ships with many Linux distributions.
Rates of pay
Instructions for starting with WebKit can be found here.
The latest downloads are here.
This was first published in July 2008