WordPress Ain't so Bad After All

I've been a Drupal developer for a number of years now. I use it for everything from e-commerce stores to blogs to gaming sites to tiny 5-page brochure-ware websites. It has served my needs really well and will continue to into the future.

However, over the past 4 weeks, I've been working extensively with WordPress and I've realised that it has a place in my world, too. I wouldn't use it for anything too hectic but for blogging and basic websites for SMEs, it beats Drupal every time. You can go from zero-to-blogging in just as long as it takes you to upload WordPress to your host and install it. With Drupal, you need to put in a bit of work to make blogging easy and fun. (Image handling, rich-text editing, etc, all require a bit of configuring before they'll work seamlessly.)

But it's not all sunshine and roses.

The biggest problem I have with WordPress and, specifically, its plugins, is that they allow too much room for error. Drupal has strict standards on how to write modules and how they need to interact with the rest of the Drupal infrastructure whereas WordPress allows you to do pretty much whatever you want. That might sound nice but it means that anyone can throw up a piece of code in the middle of nowhere and it will work. That probably still sounds nice until the project begins to grow and all those bits of code thrown up start unsticking.

(Of course, if you know what you're doing, solid coding standards will go a long way into coding up a WordPress site that any professional PHP coder would be proud of.)

WordPress reminds me of early PHP. PHP forgave everything and allowed the newest of the newest newbies to get coding in minutes or hours instead of months. It was great but, as time went by, I realised that the ease with which I could program PHP also meant that my code was too buggy and prone to security problems.

Over time, the PHP people fixed things (like having global variables enabled by default) and PHP started looking more and more like a real programming language. That seems, to me, to be what's happening with WordPress. Bit by bit, with each new release it's encouraging good habits and good coding.

It's worth keeping in mind that I don't just "use" these CMSes, I program advanced functionality into them every day. For me, a good CMS has to be more of a PHP framework and less of a blogging tool. That's why I fell in love with Drupal. With Drupal, the same amount of effort can take you from "installed" to "blog" as what it would take to get you to "gallery" or "article site" or "basic mailing system" or "simplistic CRM" or "ad serving engine" or or or...

With powerful tools like Views, CCK, ImageCache and more, I can create for R20,000 what I normally would code from scratch for R90,000. That's the rub. With WordPress, I still have to charge that much because I'll have to do a LOT more coding to arrive at the same end-result.

So WordPress is great and I'll keep using it for blogs and simple projects but for the REALLY important, hardcore stuff, I'm sticking with Drupal.