My Photos

www.flickr.com
This is a Flickr badge showing public photos and videos from coogle. Make your own badge here.

Quicksearch

Apache 2.0, My Two Cents

Tuesday, December 21. 2004

On the PHP Internals mailing list a thread was started when two posts were made on DrBacchus' blog ranting about how pissed off the Apache Community is at the PHP Community because no one in PHP really cares that much about Apache 2.0. I read the PHP thread, read the blog posts, and even took a few minutes to go review the new featureset in Apache 2.0.

The question to me when deciding between Apache 1.3 and Apache 2.0 is basically this: Why would I want to switch? This is a pretty big common theme around the PHP camp. I mean seriously, what does it *really* buy me? I'm going to go through the Apache 2.0 feature set point-by-point -- I absolutely welcome the gentlemen from the Apache camp to comment on my conclusions and show me why I am incorrect.

For your reference you can find the Apache 2.0 new feature list right here.

Unix Threading
I'm not going to spend a lot of time on this. The bottom line is pretty clear: PHP itself as far as an architecture is concerned is thread safe. However, the problem is that PHP relies extensively on third-party libraries to provide functionality -- some of which are clearly not thread safe. Apache 2.0 does provide a "prefork" mode which the Apache group claims will run PHP just fine... but this feature does nothing for a PHP user.

New Build System
Although that's nice, I never had any problems personally building Apache before -- so this feature doesn't do me a whole lot of good. Does it do anyone else any good? Is there any large audience out there which benefits from this? I just know I don't.

Multiprotocol Support
This seems kind of interesting as a technology, I could implement some sort of non-http-based protocol which would run through Apache 2.0? I see they have an echo protocol implementation, but I'm really struggling to find how this is useful. I'm running a web server here, what does this actually buy me? I honestly can't think of anything which makes this feature useful to me as an Internet guy at all... If someone could point out why I cared about this then it might have some value -- it'd be neat to implement other protocol servers using PHP and Apache 2.0 if I could only find another protocol I had good reason to use.

Better support for non-Unix platforms
This is great, however again it is completely out of scope with anything that I personally care about. Seriously though, on a side note -- OS/2? Who the hell uses that thing? Last I knew the last OS/2 version in existence was OS/2 Warp 4.0 back in 1998 or something. As far as Windows goes I'm glad to see work here just because I don't like IIS, but from a PHP perspective it still doesn't buy us anything... That is, unless someone is willing to claim and explain why Apache 2.0 in prefork mode runs PHP better in Windows. If that's the case then I'm all ears.

New Apache API
I am not a big Apache Module guy, so I can't really comment here nor will I :)

IPv6 Support
Again, good to know, but right now IPv6 isn't really on my radar. If it becomes an issue for me, I'll deal with it then.

Filtering
This is cool from a technology standpoint, it is very similar from what I understand to the Filter API found in PHP used with Streams. This isn't really a knock on Apache streams, but even as cool as the Filter API is in PHP/Apache I have yet to really find a use for it. I've thought about what kind of Filters I'd implement (as the author of the Tidy extension I considered writing a Tidy filter for PHP), but the problem is that you really don't gain anything using the technology other than perhaps some syntax sugar. I guess if I was a big Server-side includes guy filters would be better, or if I gave a damn about deflating my HTML output before sending it... but neither of those apply to me, so again please someone tell me what I really gain using this.

Multilanguage Error Responses
This is nice, but having my error messages in multiple languages is like 1% of the puzzle when creating a multi-language web site and Apache can't really offer more to make my life easier when it comes to presenting content in both German and English, for example. So for me I rather just use my IntSmarty package with Apache error redirects to solve this problem.

Simplified configuration
As was the case with the redone build system, I've never really gotten annoyed with those particular configuration directives or configuring an Apache web server in general.

Native Windows NT Unicode Support
This is good, I'm glad to see this happen but again from a PHP perspective you have to show how PHP runs better in Windows using Apache 2.0. I'm also curious, using UTF8 file names -- is that going to work when dealing with those file names from within PHP scripts? I Honestly don't know if that's a valid question or not, but I thought I'd throw it out there.

Regular Expression Library Updated
This is cool too, it really is. However how often do you really use mod_rewrite or other modules which take advantage of regular expressions anyway? It's not a deal-sealing feature to me.

Anyway, I'm sure I've pissed off the entire Apache community with this post so I think I'll stop with just the core featureset and not get into the new features of modules. I really don't mean to offend, I'm simply trying to make a point -- If the Apache community wants an endorsement from the PHP community on their new web server there has to be a reason for it. I know you guys poured a ton of hard work into this new version, and I understand the problem that Apache 1.3 is becoming more and more legacy as well. The simple fact is that there hasn't been a compelling reason for any PHP web site developer to use Apache 2.0. Apache 1.3 works, I trust it, and I know what to expect from it. Without a compelling reason for this PHP guy to switch to Apache 2.0, as in "HEY LOOK -- you can save major headaches using Apache 2.0 because it lets you do this or that", or "HEY LOOK -- you can do this and this in Apache with PHP now because of such and such", or other ground breaking things I have absolutely no reason to change my recommendations.

I'm leaving the door wide open here for everyone to jump all over me and tell me off, tell me why Apache 2.0 rocks, and why I'm a moron for not using it. In fact, I want you to do that, go ahead! I know a lot of you guys over in the Apache community, shared beers, etc. so I hope you don't take offense to my little posting here. Realize I'm being nothing but honest in the hopes you can come back and convince me I'm wrong.
Bookmark Apache 2.0, My Two Cents  at del.icio.us Digg Apache 2.0, My Two Cents Bloglines Apache 2.0, My Two Cents Technorati Apache 2.0, My Two Cents Fark this: Apache 2.0, My Two Cents Bookmark Apache 2.0, My Two Cents  at YahooMyWeb Bookmark Apache 2.0, My Two Cents  at Furl.net Bookmark Apache 2.0, My Two Cents  at reddit.com Bookmark Apache 2.0, My Two Cents  at blinklist.com Bookmark Apache 2.0, My Two Cents  at Spurl.net Bookmark Apache 2.0, My Two Cents  at NewsVine Bookmark Apache 2.0, My Two Cents  at Simpy.com Bookmark Apache 2.0, My Two Cents  at blogmarks Bookmark Apache 2.0, My Two Cents  with wists Bookmark Apache 2.0, My Two Cents  at Ma.gnolia.com wong it! Bookmark using any bookmark manager!

Trackbacks

No Trackbacks

Comments
Display comments as (Linear | Threaded)

No comments

The author does not allow comments to this entry