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.
Training
Instructions for starting with WebKit can be found
here.
The latest downloads are
here.