Drupal Rocks

I first dabbled in web development back in the mid 1990's. Back in those dark times, you created web sites by writing raw HTML, or by writing C or Perl CGI scripts. You spent about 1% of your time creating interesting content and behavior, and 99% of your time dinking with site layout, page layout, link updates, database administration, and other "plumbing" issues. I decided web development wasn't for me.

As years have passed, I've dabbled with some of the techologies that were supposed to make web development better: ASP, JSP, PHP, ASP.NET, Rails, Django, etc. While these eliminated some of the tedium of development, they also added a lot of complexity. Those technologies give you tools for building a web site, but they don't give you a web site. You still spent 1% of your time on creativity and 99% of your time on plumbing. A "real web site" still required a team of programmers, designers, and editors to create and maintain.

I've set up a few wikis. Those are nice in that they are easy to set up, and then the users can create content. Wikis are awesome for providing a collaborative publishing environment. The downside is that they all look ugly; you wouldn't want to use them for general-public web sites.

So, I've stuck with writing raw HTML for my personal web sites. This caused my sites to suffer, because writing raw HTML for an entire site sucks, especially if you want to provide navigation links, multi-column layout, headers and footers, and other niceties. My Capable Hands Technologies, Inc. web site kept its "Under Construction" home page for two years, because it just didn't seem to be worth the effort to put something there.

But then a few months ago, a friend told me he had set up a site using Drupal, and it was pretty cool. I finally tried it out a couple of weeks ago, and I am amazed.

All you do is unpack a tarball on a web site, create a MySQL database, fill in a few parameters (site name, logo, etc.), and bingo!, you have a real web site, with a nice layout, front page, navigation menus, articles, RSS feed, user accounts, multi-user blogs, forums, file uploads, and a zillion other things I haven't even looked at yet.

Drupal provides a great out-of-the-box experience, but there is a whole community providing additional modules (site features), themes (look-and-feel), and other stuff. So without writing any HTML or Perl, you can extensively customize your site with practically any feature you need.

The Drupal web site has a lot of documentation, but as with a lot of open-source projects, the documentation is not well organized, the tutorials are many-versions-old, and finding what you are looking for often takes forever. So I recommend that any new Drupal user read the book Using Drupal or something else like it.

The only downside to Drupal is that it is written in PHP, which is one of those programming languages which is wildly popular but which also sucks tremendously. But I understand that the Drupal codebase is one of the few examples of well-written, well-structured PHP, so I may tinker with the code a bit to learn some things.

Of course, Drupal is not the only "content management system" out there. WordPress or MovableType may meet your needs if you have a blog, or you may want something like Joomla or Zope instead of Drupal. The real lesson (for me) is that writing whole pages in HTML is something we don't need to do anymore.

Anyway, this old dog has learned some new tricks, and Undefined Value is now running on Drupal. As I learn more about Drupal, I'll be adding features. I apologize in advance for anything I screw up.

© 2003-2023 Kristopher Johnson