Hot skills: WebKit

What is it? Anyone seriously interested in developing rich internet applications (RIA) should be paying attention to WebKit, an open source web browser...

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?

With the KDE KHTML layout engine and KJS Javascript engine used in KDE's Konqueror browser. Apple ported these to MacOSX, improving performance and making them easier to use. Apple announced WebKit in 2003, and open-sourced it in 2005.

What is it for?

The WebKit implementations of KHTML and KJD, WebCore and JavaScriptCore, are used to add web content rendering capabilities to Mac OS X and other applications. It provides a basis for web browsers, and can be used as a general-purpose display and interaction engine.

The WebKit project goals are "real-world web compatibility, standards compliance, stability, performance, security, portability, usability, and relative ease of understanding and modifying the code (hackability)". It uses standards-based technologies such as HTML, JavaScript, Cascading Style Sheets, Scalable Vector Graphics and the Document Object Model.

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?

Recent downloads of WebKit scored 100 out of 100 in Acid3 tests, which check how well a browser conforms to web standards such as Javascript.

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

Cross-browser Javascript developers £25,000 - £40,000.


Instructions for starting with WebKit can be found here.

The latest downloads are here.

Read more on Operating systems software