I’d sometimes like to think that I can be a purely rational person, but the fact is that I’m anything but. I’ll ignore software that does what I want if it’s not “pretty,” and I’ll often ignore software that does what I want and is pretty if it’s not “open enough.” I favor using the NYC Subway or walking instead of taking the bus, even when I know darn well the bus is the fastest option. I frequently ignore weather reports when I leave in the morning, instead going by what I feel the weather’s actually going to do.

My powerful distaste for MySQL is not irrational. The nominal database has corrupted the minds of a generation of web developers who don’t really understand ACID, are afraid of using transactions, couldn’t make a schema that used a composite primary key if their lives depended on it, have a genuine fear of triggers and views, and think this is a fine and SQL-compliant way to quote a database entity. I am happy to say that no project I have ever worked on that needed a relational database has used anything except DB2, PostgreSQL, or Microsoft SQL Server—all real, ACID, SQL-compliant systems.

Yet though my distaste for MySQL is not irrational, the dirtiness I feel whenever I use a program that requires MySQL…probably is.

This blog is powered by WordPress, a blogging platform written in PHP (which is in turn a story for another day). WordPress requires MySQL. This has never sat well with me. It’s the only thing on the entire server that requires MySQL, which in turn requires me to learn how to administer MySQL just so that I can have my blog on here. Because MySQL has Unicode issues, WordPress has Unicode issues, and because I’m one of those jerks who insists on writing “naïve,” “café,” and, on rare occasions, even pretentious crud like “reëxamine” and “rôle,” this isn’t just a theoretical problem: when I moved to Linode from Dreamhost, I had to try several times before I finally got all of the posts properly moved. Not a pleasant experience. Yet I have a hard time giving up WordPress. It’s so easy-to-use, and it just gets so much stuff right, that I can’t really justify using an inferior project just so that I can keep the data on PostgreSQL.

When Six Apart announced that Movable Type would become open-source, I thought that my prayers had been answered. Movable Type is a powerful, tested, feature-rich blogging platform. It has superb traffic analysis. It does a great job filtering spam. It supports OpenID. It’s easily themeable. And, of course, it runs just fine on PostgreSQL. This, I thought, would be perfect.

Turns out I was wrong.

My problems began with the install. Installing WordPress, provided that you have PHP set up correctly, involves the following steps:

  1. Extract all the WordPress files into a directory
  2. Go to the install page
  3. Tell it where your database is
  4. There is no step four

Installing Movable Type, at least for me, looked more like this:

  1. Extract Movable Type into the cgi-bin directory on Apache
  2. Move some of the Movable Type files into your static directory
  3. Go play with permissions on the cgi-bin directory, cause apparently MT needs to write things there
  4. Install DBI for Perl via apt-get
  5. After trying for a few minutes to figure out why MT insists I haven’t installed DBI for Perl, remember that DBI needs drivers for its databases; install them also via apt-get
  6. Allow apt-get to pull in roughly 30 additional dependencies
  7. Enter my database connection information
  8. Play with permissions again, because MT just set them to 777 on one of its directories
  9. Log in and get notified that I still have bad permissions, apparently now in the static files directory

Once I got all of that sorted out, though, my hopes were high. After all, you only go through installs once, and the WordPress caveat, “provided you have PHP set up correctly,” shouldn’t be overlooked. It’s a biased comparison. What really matters is how the software performs and how easy it is to use.

The answers are, respectively, “Slower than a 70-year-old man trying to outrun a hoard of Playboy Playmates” and “not very.”

Movable Type is slow. Really slow. Operations that are virtually instantaneous on WordPress take a significant amount of time for Movable Type. Publishing, for example, which involves hitting “Publish” in WordPress and completes in about half a second, takes a couple of clicks in Movable Type (you have to republish your blog à la Blogger, you see) and takes a few seconds. I’d be more willing to put up with that if it weren’t for the fact that WordPress is running on my virtual host at Linode—a shared CPU system where I’m allotted 256 MB of RAM—whereas Movable Type is running on Vera, a server my roommate and I keep in our apartment, which has a blasé 2 GB of RAM and a RAID controller. PostgreSQL isn’t the bottleneck, nor is Apache; I checked. It’s MT all the way.

I haven’t totally written off MT4 yet, but my experience thus far has not been a good one. I’ll have to see if my opinion changes as I work with it more. I’m slowly overhauling the look of bit qua bit to get away from this professional and severe theme to one that’s gentler and more fuzzy, and will be implementing the theme in both platforms simultaneously. I’m also going to muck with Vera a bit more to ensure that something’s not badly misconfigured. But, at the moment, it looks like WordPress may be my blogging platform of choice for quite some time to come.