Monthly Archives: December 2005

Priorities

Dragging myself out of bed at 5:30 A.M., I manage to arrive at the gym by 5:45 A.M. My gym is located at the local shopping mall. Arriving as early as I do, there tends to be a small group of cars parked near the gym while the rest of the parking lot is deserted. Today was a bit different.

I did not find the usual parking lot devoid of cars. Instead, the lot was fully one-third full, though far fewer cars than usual were parked by the gym. While normally open 24 hours, the gym would be opening at 6:00 A.M. on this, the day after Christmas. That was only a few minutes away, so I waited with about seven other people for the gym to open. Nearby, however, a large crowd of people were awaiting the 6:00 A.M. opening of the department store.

Crazy world, no?

Now I’ve Gone and Done It

That’s right, as anyone reading this (does anyone read this?) will have noticed, I’ve started a blog. I can no longer ridicule those who have blogs for I have now sunk (risen?) to their level. Well, I can, but I must be sure to include myself in such ridicule.

There are two real reasons I waited so long to jump on this particular bandwagon. First, I had nothing to say that I could imagine anyone wanting to read. Second, I have a tendency to want to do everything myself, from hosting the blog myself to coding the guts of the blog myself. So what changed?

Anyone following my posts to this point can probably guess. I attended ApacheCon. Finally, the mental stimulation I so sorely lack at my day job. Now, ideas come to me; ideas on which I am able elaborate in text for the world to read. Also, I observed someone posting to his Blogger account (he happened to be using a Powerbook). Why build something substandard from scratch when this Blogger thing does everything I want and does it well? Sure, at one time in my life I may have considered it an interesting project, but today I don’t feel that reimplementing something that’s already been done well is very interesting. I will save what little talent I have remaining for something interesting and novel.

Java, Java Everywhere, Nor Any Drop to Drink

I’ve mentioned previously that ApacheCon could be rebranded as JavaCon and few people would notice (well, maybe JavaWebCon). While only 33 of the 68 sessions were specifically about Apache projects written in Java, the dominant technology in use among the members of the Apache Software Foundation is undoubtedly Java. In fact, in a session on extending SpamAssassin with plugins—a project written in Perl—the presenter jokingly asked if anyone was rewriting SpamAssassin in Java. Don’t get me wrong, a lot of these Java projects are amazing. I don’t know how Java gained such prevalence in the ASF, but it has.

Interestingly enough, the most popular session at ApacheCon was not about Java, but about Ruby on Rails. It was standing room only. This seems to go along with the hype this project has gained over the last several months. In the hall outside the presentation room, one developer, obviously biased towards Java, snidely commented that Ruby on Rails was a fascinating toy and something to be expected from a scripting language, but would never be as robust as the type-safe Java.

For all of its hype, Ruby on Rails still doesn’t hold a candle to the popularity of PHP as a scripting language for the Web. In fact, I would guess that the population of PHP coders at ApacheCon was second only to the population of Java coders.

I am not anti-Java or anti-Ruby or anti-PHP (well, maybe slightly anti-PHP, but that’s another rant). If people want to code Web applications or whatever else with these languages, more power to them. However, I am a Perl monger. I’ve been a Perl monger since I first discovered Perl 4 in 1995 and I’m likely to be a Perl monger for a very long while yet. So where is Perl? Where are all the Perl mongers? Jumping ship or hiding in caves, I imagine. For good reason, too.

To put things in perspective, a short review of history is required. Apache HTTPD 2.0 was released from beta on 6 April 2002. Following this, mod_perl 2.0 was released from beta on 19 May 2005. That’s right, over three years later! To make matters worse, in order to ship the latest and greatest version of Apache HTTPD, various revisions of mod_perl 1.99 were included in Red Hat Linux 8 through Fedora Core 3 and is even still being distributed with Red Hat Enterprise Linux 4.2. Oh, but it gets worse still. The these revisions of mod_perl all come from before the great API shakeup in the final release candidate of mod_perl 2.0. To maintain compatibility, RHEL can not even ship the latest stable version of mod_perl 2.0. Now, would you use mod_perl?

What happened in these three years? Well, a lot happened. For other technologies.

Web Application Framework is now all the rage. To this end, PHP 5 was released and Ruby on Rails became the Next Big Thing (also, even more Java projects were under the ASF umbrella). Meanwhile, developers using mod_perl weren’t doing anything they hadn’t already done with Apache HTTPD 1.3. Prominent mod_perl developers stated (and still state today) that they have not moved to Apache HTTPD 2.0 because there are no compelling reasons for them to do so. Mason, my template engine of choice, only recently added support for mod_perl 2.0. Bricolage, a wonderful CMS that I’d like to use, still only runs under Apache HTTPD 1.3 because mod_perl 2.0 took so long to release. Sure, I could just build Apache HTTPD 1.3 from source, but why? Apache HTTPD 2.0 as well as mod_perl 2.0 are already included in Fedora Core 4, and why should I install an older and inferior version of something when I already have the newer, better version?

There are two things that frustrate me even more than the delay in shipping mod_perl 2.0. First, the API change in release 1.999_22 (the fifth release candidate!) was awful. Admittedly, it was for the best and it was a simple task for me to update my code, which had not yet been released. However, to do this so late in the development cycle only hindered acceptance and, as I have already mentioned, have kept distributions such as RHEL from upgrading to the latest version. Second, when asked how much longer before a mod_perl 2.0 release, the lead developers merely say it would be done when it was done and if people would use it then it would be finished faster. Okay, I can see why they would say that, and the developer in me even agrees with them; however, this does not make for good relations with the people using the software. It becomes a cyclic argument: no one uses it because it’s not done, but it’s not done because no one uses it.

Now that mod_perl 2.0 has finally been released, there have been recent attempts to catch PHP and Ruby. Catalyst is one such attempt. Thus far, I see it gaining hype, but only in the Perl community. As yet, I don’t see the cross-spectrum popularity that PHP or Ruby on Rails enjoy. It still feels that many Perl developers are either using plain CGI or rolling their own frameworks, just like we did in the pre-2.0 days. I imagine much of this is due to one of Perl’s guiding philosophies: There Is More Than One Way To Do It. While this approach is one of the reasons I came to Perl in the first place, it tends to litter CPAN with various ways of doing something that isn’t quite what is needed.

In those three years before mod_perl 2.0 was finally released, I grew discouraged with Perl. I started to feel like I wasn’t using a “real” programming language like those guys using Java or .NET. In August, Damian Conway gave his talk on Life, the Universe and Everything to my local Perl Mongers group. Suddenly Perl was fun again. I remembered why I was a Perl monger.

So, with all of this, what is a poor Perl Web developer to do?

Don’t get discouraged. Keep on coding. Get involved!

If enough people jump on the Catalyst bandwagon, maybe Catalyst will be the Next Big Thing at ApacheCon 2006.

Meanwhile, I have some Perl hacking to do.

Do You Yahoo!?

I’m excited. I finally feel that I’ve gotten something out of ApacheCon. I just attended two sessions, “Hacking Apache HTTP Server at Yahoo!” (Michael Radwin) and “Building Scalable Web Architectures” (Aaron Bannert). The presentations were interesting and, most importantly, got the wheels inside my head turning.

Unfortunately, as usual my excitement is destined to be short-lived. I will never get the opportunity to execute any of my ideas at my company. However, that’s a story for another entry.

Michael pointed out during his talk how excited he was that the legal department at Yahoo! had allowed him to present his talk on their yapache (pronounced why-yahoo) project. This is fascinating to me. Google, arguably the most successful Internet company—quite possibly one of the most successful companies in recent memory—is so open in comparison. Perhaps this is why Michael was permitted to present his talk; perhaps Yahoo! is attempting to make a name for itself in the Open Source community, nipping at the heels of Google.

I will shortly be attending another session presented by Aaron Bannert, “Advanced Topics in Module Design: Thread Safety and Portability.” While the topic is not immediately useful to me, I expect it to be extremely interesting. After that and one last keynote by the “father of virtual reality,” Jaron Lanier, ApacheCon will be over and I will once again return to my daily life at the office.

ApacheCon 2005, Day 3

It’s lunch on the third and final day of ApacheCon. I am sitting against a wall next to a precioius power outlet. I think technology conferences—probably any conference at this point—should select venues based not only on airport proximity, but on power outlet density. Easily 2/3 of the attendees have notebook computers, and I’m not the only person sitting against the wall next to a power outlet.

Overall, I think ApacheCon was a waste of my time and money. Some of the sessions have been interesting, but I haven’t learned anything I didn’t already know or couldn’t have learned after a minute or two on Google. It seems the true beneficiaries of this conference are those individuals already involved with the Apache Software Foundation in some way. ApacheCon presents an opportunity for them to meet face-to-face, drink beer, and stay up until all hours of the night talking shop.

ApacheCon 2005, Day 2

It’s lunch time on the second day of ApacheCon 2005. I have positioned myself next to an AC outlet in the on-line lounge. My poor Toshiba Satellite just doesn’t have the juice it used to have. I find myself looking around the sessions with envy at all the people using Powerbooks. They sure are sexy (the Powerbooks, not the people).

Day 1 (Monday) was downright boring. Aside from Cory Doctorow’s keynote, every session was a snore-fest. It seems that every presenter suffers from Powerpoint-itis. I wasn’t terribly interested in any of Monday’s sessions, either. They could rebrand ApacheCon as JavaCon and I doubt anyone would notice.

Today was more fortunate. The presentation on web programming security was entertaining. The speaker relied on his own wit and real-time demos rather than slides. Unfortunately, the following session on the uses of mod_ssl in Apache was back to slide-reading. Tim Bray’s keynote was interesting, but bore little interest for me as I am primarily a Perl coder.

I hope the rest of the day is more entertaining for me. I’m going to steer clear of the Java sessions.