Ben Collins-Sussman wrote:
I see a lot of frustration going on. The thing is, httpd's
development process is nearly identical to Subversion's process... we
stole most of it from you folks! So why all the angst in httpd-land,
but not in Subversion-land?
It's really a lack of direction.
Apache already is the market leader in the web server space and has
no potential for further growth -- Windows users aren't going to switch
to Apache in significant numbers. (They never were, so developing a
good NT port was a waste of resources that has helped paralyze the
development of Apache for it's core users.) This in contrast to svn,
which has a long way to go in growth.
There is very little going on in Apache to make it be a better web
server -- the frontiers of development are trying to make it an ftp
server, an smtp server, a ntp server, a snpd server, a bgp
server... Efforts that 99.44% of httpd users are completely indifferent
to (Ok, maybe a few of them will want to turn on an ftp server because
they're not getting enough support calls from people who are behind NAT
or firewalls.)
The module mechanism means that significant improvements in Apache
can be made without making changes to the Apache distribution -- people
are who are serious about improving Apache as a web server are taking
this route and not adding things to the Apache distribution. (Any
change which affects the core use of Apache is politically controversial
and gets an automatic -1.)
Pluggable MPMs sound like a good idea in theory, but in practice
they're a failure. It's hard enough writing code that runs in a single
concurrent environment, but impossible if the concurrency environment
is unknown and unknowable. It's hard enough keeping the modules that
are part of the distribution working under all MPMs, even harder to
support third-party modules (mod_php) and even harder to support all the
libraries that link against third-party modules (kiss of death for
mod_php and mod_perl in worker.)
-----------
People who want to wake Apache up would be best to try a fork.
Throw things that are irrelevant to running httpd on Posix overboard.
Pick ONE mpm that offers a significant advance in functionality
(mod_event or mod_perchild that actually works) and qualify everything
to run against it. Add mod_macro.
But why? Apache is good enough for most people, and you can fix
any real problems for a particular project by adding modules or making
little source code patches. There are 1,000 or so sites in the world
that need an MPM faster than prefork, and they'd be better off going to
a cluster strategy for availability anyway.
Apache 2 was a rough ride, but Apache 2.0.54 runs smooth on every
installation I have... Why change anything?