Window into WebKitLand.

Thursday, September 29th, 2005

There’s a window open to a world largely alien to me on my desktop—it’s a Colloquy window hooked up to an IRC channel, and this one (at this moment) is populated by chatting people hard at work on a fundamental part of the Mac OS X experience you may take for granted. In fact, if you’re using Safari, you’re using it right now. You’re soaking in it!

WebKit is Apple’s underlying framework for displaying web-based content—not just in a browser window, but in an email, or text editor—anywhere within the OS. By making the underlying engine a common one with common ways to access it, and by basing WebKit and thus Safari on an open-source framework common to Unix/Linux systems, many different applications end up with a powerful engine that benefits from open-source collaboration and the synergy that comes from a lot of folks contributing their energies to smash bugs and figure out better ways to do this or that.

Of course if Apple had simply made use of the open framework but then moved further development inside their cloak of secrecy, they (and others) would have lost that synergistic power…and that’s just what happened at first. But then this last June, Apple “did the right thing” and released WebKit as an open source project, and in a sense opened the curtain, allowing anyone to look at the source code, report bugs, and (anyone with actual coding skills) contribute patches and new chunks of code.

One of the benefits of all of this is that you could, if you want, download the source code (there’s a ton of it) and the appropriate free developer tools and build your own, absolutely-up-to-date version of WebKit and thus Safari every day…which I’ve done several times. (As changes are made, the collection of code is updated, and there are ways to just get the new stuff—every hour or so, if you want.) It’s an amazingly geeky command-line process that is all the more amazing because it really “just works” like most of the rest of the Mac experience.

Or, more simply, you could download the latest nightly version (that’s the actual disk image link) of Webkit, which really looks like a slightly newer, faster Safari. It is, again, a constantly changing work in progress, some nights the build (that’s the term for a compiled bunch of source code—in other words—the actual application you run) is more buggy than others. This build, by the way, is cobbled together and posted by a guy in New Zealand—just one more selfless contribution to the community at large.

Or, of course, you can just wait for updates to Safari distributed by Apple the old-fashioned way. But you get a lot more by downloading these new versions and monitoring the weblog and wiki and listening/chatting on the IRC channel (#WebKit) where these developers—some key Apple people, many more just coders from around the world—chat and try to work out the problems and talk a bit about their lives and express frustration and get inspired. It’s a 24-hour-a-day worldwide conversation (40-50 people are “there” at any one time) to listen in on—sometimes just hugely technical and opaque—sometimes just silly…and sometimes, I even have something useful to contribute and I’ve been impressed and grateful that these folks are largely free of the “what a pointless newbie question” attitude I’ve seen in some other places where developers and ordinary users get together.

And some of what they’ve been working on—like dramatically better JavaScript implementation and integrating SVGScalable Vector Graphics—a wonderful, XMLy, standards based way of drawing stuff on the screen—right into the core of the browser—actually, right into the core of the framework, so again, SVG stuff will one day be painlessly displayed without plugins in Mail, RSS readers, and so on—is really exciting.

Yeah, I do think this is a big thing! And it’s certainly an (ongoing) education to me.