Learning from The Apache Way
by Glyn Moody
Every month, regular as clockwork, the free software community receives a gift. It takes the unusual form of the Netcraft Web Server Survey, which provides a measure – by no means the only one – of the market share of the main web server software used on the public internet.
For the last 15 years, Apache has been the most popular system there; and for the last 15 years, Microsoft's IIS has failed to dethrone it, despite at least two concerted attempts to do so (visible as temporary rises and then falls in the latter's market share). This month, though, the survey has an extra little present: Microsoft's market share has not only (again) failed to rise, it has actually sunk back to the level it attained in June 1997. That is, in 14 years, IIS has gone precisely nowhere.
In the early days of free software, Apache served a vital purpose. At a time when GNU/Linux was just beginning to enter the consciousness of the mainstream IT community, the question invariably posed was: could this free software stuff ever seriously challenge Microsoft? As far back as 15 years ago, Apache showed not only that it could, but that it had. In this respect, Apache has been open source's biggest, and longest-running, success story.
Nowadays, nobody seriously asks whether open source can compete. But the unbroken success of Apache still has important lessons to teach us.
For given the importance of the web server sector, especially in the early years of the internet as a mass medium – the late nineties and early noughties – Microsoft has surely put serious programming resources behind IIS in an attempt to make it better than the Apache code, cobbled together by that archetypally ragtag bunch of hackers sitting in cubicles and bedrooms around the world.
And it has failed. Not in the sense of achieving parity with Apache, but not quite managing to displace it, but rather in the sense of totally, utterly and humiliatingly failing to get anywhere near in terms of market share.
Apache's track record therefore provides us with perhaps the best proof that open source's distributed, bottom-up development methodology produces code that is better than traditional top-down command-and-control approaches, at least for these generic kinds of programs where there is a huge user base (arguably open source does less well for more specialised applications, where there are fewer end users, and fewer hackers interested in sustaining an open project.)
But I think there's another important reason why Apache has flourished in the face of the Microsoft onslaught that also reveals a key trait of the free software world.
Apache began as a series of patches to the earlier NCSA HTTPd web server – although that is not the real origin of its name as “a patchy server” according to Brian Behlendorf, one of the project's initiators. As he told me a decade ago, the name came from earlier discussions about writing a commercial web server:
“I had some friends at a company called EIT – Enterprise Integration Technologies. I had had discussions there about what, if someone were to write a commercial Web server, should be in it. So I wrote up a page on a bunch of different features, and just put a name on it – Apache. Because I thought it was an interesting name, something that wasn't Web this or Spider that, or Arachnid, or any of the kind of metaphors being used [then]. It was something that was abstract and not related to anything specifically, but just connotated a kind of powerful server.
When I finally got together with a few other people and started passing patches [for HTTPd] and saying, 'Shall we do our own distribution?' I volunteered the name 'Apache' and that seemed to go over pretty well. That's the kind of the genesis of the name, but when I volunteered it, people said that's a very funny pun.”