A couple of weeks ago I read Eric Raymond’s The Cathedral and The Bazaar, a collection of essays about Open Source software. Raymond writes quite well for a techie (either that or he has a superb editor), and the book is coherent. I didn’t agree with most of the book, but I think it’s important to keep abreast of what other folks are writing about the space.
Despite my general disappointment in the book, Homesteading the Noosphere was quite good. In an essay describing how “ownership” of Open Source projects works, Raymond accurately states the previously unwritten code of behavior. Projects have owners. Contributions are welcome, especially when they’re written well. Project ownership can be transferred. Forking is strongly discouraged, although sometimes necessary as a last resort when the owner won’t accept changes and refuses to relinquish control of the project.
The Homesteading the Noosphere essay has actually prompted me to think a little bit about what’s going to happen with the Apache HTTP Server. The Apache Software Foundation is currently maintaining two separate versions of this product, 1.3.x and 2.0.x (and is also is working on 2.1.x). Although the 2.0 server has been stable and “recommended” for over a year now, there are lots of organizations that are still using the 1.3 platform. The ASF would like folks to move to 2.0, but the fact that they’re still making 1.3.x releases indicates that they recognize that migrating to 2.0 is no small undertaking. When there are security problems (and sometimes features) these changes are always made in 2.0 first, but need to get “backported” to 1.3.
But what if maintaining two separate products became too cumbersome and the ASF decided to stop making 1.3.x releases? I’ve wondered privately if any of the organizations that have a substantial investment in Apache/1.3 would want to take over the codebase (i.e. fork it). What would happen to the Apache community if someone decided to make an Apache/1.4 release? If the development was split across two projects, would both lose momentum (and therefore market share)? Would the vast majority of folks stand by the ASF and swallow the complexity of the 2.x server, while a “rogue” bunch of hackers simply caused social turmoil with 1.4 but never really made it successfully as a project? Or vice-versa?
Regardless of technical or social reasons, something called “Apache/1.4” couldn’t really happen without the ASF’s blessing. Although the code is Open Source so you could re-use it for another project, the Apache License is written in such a way that derivative products aren’t allowed to use the name “Apache”. But maybe there could be a Hopi/1.4 or a Mohican/1.4 HTTP server…
As Raymond writes in Homesteading the Noosphere, the natural motivation is to avoid forking unless absolutely necessary. In the case of Apache HTTP Server, there are decent technical and social alternatives to this last resort. So I’d hazard to guess that we’ll never see Apache/1.4.
Instead, we’ll probably see at most two more Apache/1.3 releases before the code is officially declared deprecated (which will probably happen right around the time that Apache/2.1 is released). Folks who have put off the 1.3-to-2.0 migration effort will take a serious look at a 1.3-to-2.1 jump, and the vast majority of them will make the move over the next two years. Sure, there will always be some laggards who are stuck using Apache/1.3.31, but by the end of 2005 their numbers will be so small that they’re not worth mentioning.