WebKit and Apple's Open Source Efforts

For those who have read my ramblings on Apple's Open Source Efforts (http://www.opendarwin.org/~bbraun/oshistory.txt), one might say "what about WebKit?" So, let's examine WebKit's Open Source Effort, keeping in mind the history of Apple's Darwin effort. I have been peripherally involved with WebKit for several years, although my experience with it is substantially less than with the Darwin efforts.

The current state of WebKit is it has a live subversion repository, uses both Apple's internal bug tracking system and an external bug tracking system, and allows external developers commit access to their source repository. So far, this sounds great. Similar to, but better than Darwin's beginnings. The external bug repository allows for much better communication of outstanding tasks, and definitely helps external developers know how they can help. The Apple WebKit developers are also much better at external communication than the Darwin developers ever were. WebKit has an irc channel, active mailing lists, and weblogs. Communication is vital for any project to survive. Additionally, external WebKit developers have a luxury Darwin Developers never had: the ability to get their changes into main line releases.

WebKit sounds like a model project that other portions of Apple should follow, and viewed against the backdrop of Darwin, it is. However, when viewed against the backdrop of other open source projects outside of Apple, one gets a different perspective. First, WebKit has been billed as a semi-independent project. It's web pages are hosted at OpenDarwin, which supports the appearance of independence. However, when you go to the project's web site, you see no releases of WebKit. This is rather confusing, since the first thing one does when checking out an open source project is grab a release and try it out. No matter, you can pull the source from the source repository. The source repository is actually hosted at Apple, not OpenDarwin. Well, there goes the independent project theory. So, you pull the sources down and check them out. The first thing you notice is there are .a's checked into the source repository. It turns out it is because portions of what WebKit needs to build are not available outside of Apple. So, if the source repo being at Apple and the lack of releases didn't convince you that WebKit is a project tightly tied to and controlled by Apple, the binary only pieces are a dead giveaway. That implies that WebKit is tied to Mac OS X, and the releases Mac OS X Apple wants you to build WebKit on. This is why there were no releases of WebKit on the web page, releases are pointless when you're tied to a single vendor and that vendor decides when to make releases and what to put in them.

Despite WebKit appearing rather poor in contrast to other non-Apple open source projects, WebKit is way ahead of any other Apple open source effort and should be congratulated. It is still possible for WebKit to go the way of Darwin and be less involved, and is something that should be guarded against. When people start mailing executives and when secret features and deadlines are involved, they will receive pressure to start tearing down pieces. However, WebKit has several advantages that Darwin never had: 1) WebKit is LGPL'd with some copyright held by non-Apple entities, which means sources should always be available. Keep in mind that source drops corresponding to binary releases similar to Darwin's approach would still satisfy this licensing requirement. 2) WebKit's management, marketing staff, and engineers are all much more involved and willing to defend the openness of their project than Darwin's ever was.

How does WebKit affect the rest of Apple's open source efforts? WebKit, by virtue of exceeding all of Apple's other efforts so completely, highlights the inconsistency and lack of communication within Apple. There are policies and infrastructure created to support WebKit's openness, and yet no other part of Apple's open source efforts have moved to take advantage of this. From a naive external view, it would seem easier to have all the open source portions using the same infrastructure and following the same policies than to create one offs for every initiative Apple has created. To really rub this in the faces of those that participate in Apple's other open source ventures, such as mDNSResponder, gcc, and Darwin, the WebKit team has recently given MacBooks to their top contributors. If nothing else, this cleared up any doubts of what Apple's flagship open source effort is, and what communities the company cares about.

Feb. 23 2006