Monday, August 07, 2006
Oh Drupal How I Hate Thee
Categories: Technology
And why I think ExpressionEngine is the bomb.
I do web design and development for a living now. I used to do it just for fun. It is funny how your perspective on things changes when you do this stuff every day.
Now to qualify this. I'm going to beat up on Drupal. Drupal is currently very popular. I have built one site in Drupal. I have experience with a number of CMS type scripts, with MovableType, pMachine Pro, PHPNuke, and WordPress being some of the more well known ones I have dealt with in my time (besides Drupal and ExpressionEngine). But I'm not Mr. Genius Web Coder Extraordinaire. I don't know everything. I just think I do. So feel free to think I'm stupid or simply disagree. :)
When building sites anymore it is almost a given that you will be using some kind of CMS (Content Management System). The most ubiquitous CMS on the web right now is generically referred to as a blog. There are a quite a few different choices for a blog CMS. There are ones that are hosted and setup for you (Live Journal, Blogger) and those that you install and setup on your own host (WordPress, MovableType).
When building a site for a client that doesn't want a blog you typically go with a real CMS; something that isn't just for blogging. Some will tell you that WordPress is perfectly sufficient as full CMS. I think those people are insane.
Regardless people are instantly met with a very big decision. What CMS are they going to use? There are literally hundreds (probably thousands) of choices and they obviously can't all be equal. So you start looking for things to help you make a decision. Price often comes into play.
Some people want their CMS for free. Lately these people often end up with Drupal which, since it is Open Source Software, can be used for free. Free. Lovely word. Sadly free is typically anything but.
On the other hand there are CMS's that require you to pay for a license to use them in your site. The CMS I prefer is one of those. ExpressionEngine has a free Core version that doesn't cost a thing to use but if you want all of the fun stuff you have to pay. You don't have to pay as much as you do for some similarly capable commercial CMS's (in fact I think the price for EE is way more than reasonable) but you do still have to shell out those hard earned dollars.
Why do I use ExpressionEngine when there are perfectly good CMS's like Drupal around? And let me be clear, in many ways Drupal is a great CMS. It has some good stuff going for it. But in my view it isn't enough to have good ideas and powerful core features.
Let me explain.
When I built the one site I have done in Drupal I occasionally ran into problems understanding the CMS. This isn't unusual, no powerful CMS comes without a learning curve, and I can accept that.
So I went to Drupal's forum and asked for help. The first time I got a response that basically said this:
Did you read the Documentation?
Sometimes this is referred to as the RTFM response. I've been guilty of giving this response myself from time to time. The problem here is that I had read the documentation and it left me utterly confused. The documentation seemed to talk about things that didn't exist. Maybe they did at one time but I couldn't find them in the admin panel where they were saying they were. So I went back and looked at the documentation again. I was still completely baffled.
In the end it turned out that a lot of the things that the documentation was referring to had been renamed in the admin. The documentation hadn't been updated yet to match the changes. Thank you to Kurt for making me aware of that.
Another time I had a problem the response I got at the forum was like this:
There is a plugin/module that does that.
Great I thought to myself. So I followed the link to the plugin, downloaded the latest version put it in the folders I was told to and no dice. The plugin/module had been written for a previous version and hadn't been updated yet to work with the new version. First I was slightly bothered that Drupal required plugin/module writers to actually rewrite their plugins when a new version was released. Upgrades are going to be a nightmare as a result. But then I went to the forums and apparently the guy who wrote the plugin just wasn't interested in working on it anymore. This found not by asking for help but by doing a search on the plugin. So I was left with the choice of fixing it myself or doing without the feature.
Which brings me to another time where the person on the forum that replied said something like this:
Why don't you just program a plugin/module that does that?
Huh? Now I can program my own plugin. I have that ability but can you imaging paying for software and then being told that? And what about the people who can't do that? What about the people who looked at all the features Drupal claimed and is now stuck because the feature really isn't a feature yet?
I also had some help requests that simply went unanswered.
Then I tried to upgrade Drupal to the latest version. Heaven help me...
And don't even get me started on the default HTML and CSS templates with sometimes Three ID's on the same element. Three ID's on the same element. Three! Its like the HTML and CSS code from three different sites got combined by some insane monkey. (Ok probably not a monkey but that just sounded good to me when I was typing.)
So here is what I got for free:
- Shoddy documentation that doesn't match the most recent release.
- Sometimes helpful but often not responses, or lack there of, to requests for help.
- A plugin/module API and/or database structure that apparently changes enough from release to release to require plugin/module updates to coincide with releases.
- An update process that made me want to cry.
- Templates that are so bad I had to start over from scratch and recode both the CSS and the HTML.
And therein lies a big part of the problem. Open Source Software doesn't have to answer to anyone. They can afford to promise things and not really deliver, because, in the end, its free; and as a result you have no room to complain. What do you expect? Yeah its nice that anyone can work on it. But in the end what I really care about is whether it can do what I need efficiently, whether I can maintain the software without too much trouble, and whether I can get help when I am in need of it. These things mean a lot when you have 10-30 sites that need to be developed and maintained. And Drupal didn't deliver on any of those three fronts
I'll be happy if I never have to build another Drupal site ever again.
Contrast that with ExpressionEngine. When I first had a problem with ExpressionEngine I got a response within 10 minutes. I don't always get a response that quickly but more often than not I do. And those responses often come from paid support staff that know what they are talking about. They are getting paid to help me. And they do actually help me and follow up with me until my problem is solved. I've even had the CTO occasionally step in and either fix or add a feature that I was having trouble with in a matter of hours.
I also find that half of the things I needed a plugin/module for in Drupal was something I could do in ExpressionEngine without any added software.
When I do need a plugin/module I don't have to fear that the developers of ExpressionEngine are going to change something so drastically in an update that my plugins/modules are all going to stop working. There has been one major change in it's history and developers were given time to fix their code before the change happened.
And upgrades? I can get every site I maintain upgraded in one work day. Typically quite a bit quicker than that. I upload the new files. Run an update scripts. Delete the update script. And I'm done.
Does ExpressionEngine have a learning curve? Yes. Are there occasionally things that don't work the way I want? Yes. But it has real support. It has documentation that is actually helpful and up to date. And it has a company behind it that has a vested interest in keeping me and its other customers happy.
And that makes all the difference.
In the end I wish Drupal well. But unless I see a marked difference in future versions I have no interest in ever using it again. Not when I have other solutions that are so much better despite their upfront cost. I think Open Source Software can work but there has to be someone capable and strong willed at the helm. And there has to be some sort of motivation for those involved beyond the good feeling they get from helping out (money always works). And I think that is what Drupal seems to be missing. I look at the Open Source projects that have succeeded so well and they always seem to have serious money behind them as well as some way of keeping things on track.
Posted by Jamie at 11:58 PM
comments
it’s sad, but it just goes to show you that even free things have their costs.
i myself have always been an expressionengine fan and will continue to be with reviews like yours above.
happy tuesday. :)
-j
Posted by joshua on August 08, 2006 at 12:03 PM
OK. . . now I’m feeling bad for begging you to do that one Drupal site. But you rocked man, you got it working! ;~D
Posted by Kurt on August 10, 2006 at 03:42 PM
Ah its OK. :)
It was a learning experience.
Posted by Jamie on August 10, 2006 at 04:08 PM
always looking on the bright side! :)
Posted by joshua on August 10, 2006 at 04:16 PM
I have to agree with you. I’ve worked with b2evolution, Moveable Type, Drupal, e107, phpwhatsit… and the only CMS I would ever build a website with again is Expression Engine. At a stretch, I might use pMachine, its predecessor, because I’m pretty comfortable with that and it’s free and has some functions EE doesn’t. But forget any of the others. EE is a revelation.
Posted by fj on October 15, 2006 at 06:33 AM