WordPress vs. Radiant


buttons

I’ve had this conversation a few times, with a friend setting up a content management system for a school, with Radiant folks regarding a what a full blogging suite looks like, and on the Ruby-SF list regarding good Ruby CMS systems.

At this point I could go on a boring bit about the differences between content management systems (CMS) and blogging software. But really, we know the difference, one is for updating site content, one is for a chronological series of posts, and really, people interchange them enough to be meaningless. Well, WordPress is a blogging software- and I’ve installed it more as a CMS system (not my idea) than as a blogging platform. Radiant is a CMS system, and has been used more for a blogging platform than CMS.

Coding Language
Wordpress is in PHP. Radiant is in Ruby on Rails. That’s pretty important. If you have some free tech hours from someone- a parent at the school or a live-in husband or wife, just go with whatever they are interested in supporting. Ruby is object-oriented, stylistically wonderful and sparse. PHP is based on a very syntactically picky language- Perl- and verbose. It’s also not object oriented, it’s an old school scripting language. Yep, I’ve written a 4K line app in PHP and I’m loathe to manage it. So I’m not excited about editing my WordPress blog’s sidebar, ever. Before you dive in and viscerate my programming chops, she agrees with me :).

Age and Maturity of Product
You’d think that WordPress is older, and it does have 3 years on Radiant (at first I thought they were more the same age- as I got into it around 2005, and Radiant came out at 2006- but was corrected in comments!). Both have committed team of core developers who manage and maintain the base versions. One has a much larger user base, probably due to the sponsored patronage of an early paying client, Om Malik – for WordPress*. One also started a series of user group sessions. One is significantly more popular and used, than the other, which you could argue both directions.

Extensible Bits- Plugins, Widgets, Extensions
Let’s talk about one extremely important point: how to customize and modify.

WordPress has a couple of interchangeable programming bits, called “widgets.” The latest version has a great interface to drag and add new pieces. It also separates the CSS from the content of the site. There are themes that determine look and feel.

Radiant has options to either integrate the look and feel with the site, or separate it. Like Rails apps, you can include a “Layout” that determines the look of one page or many. This software is very flexible in this regard. There isn’t a Chinese-Wall between content and layout like in WordPress, which is an asset or detriment according to your design team.

Radiant also has interchangeable programming bits called “extensions,” which are tiny Rails apps added underneath the Radiant Rails application. It’s a simple one-line installation, and there are tons of them. I’ve written quite an easy one- and for Rails developers, extension writing is very easy. For anyone that has written a widget in WordPress, it’s less than hard but just that.

Feature Breakdown
Rich text editing: this is the ability to *not* write in HTML but craft great-looking posts. Radiant has some extensions to install, but WordPress does it in the vanilla installation.

Photo insertion: I like Radiant’s much better, as I wrote it! (Well, one of them.) You’d think this would bias me, but the reason I wrote one was to “fix” the WordPress uploader. The original uploader was truly godawful. Then, they came out with a new one that has every feature you’d want, but it also sets an image style that is almost unescapable. So I’ve been disappointed with WordPress since 2005, and moving to Radiant (as a CMS/blog software that I recommend) has removed that whole issue. Yay! This is worth a blog post in itself, probably.

Databases
The good point: most ISPs and hosting services will do a “one-click” installation of WordPress. The bad news- they may also accidentally delete that database without telling you. Managing the back-ups of WordPress MySql datbases is yet another uggy part of WordPress. In Radiant, by comparision, you have a full suite of databases to choose from and it’s very flexibly organized. You also have 3 databases out of the gate- testing, development, and backup. A far more sophisticated setup than the single “have it or have not” database of WordPress default installation. Oh, and because you’re not locked into one, you can setup crafty nightly back-ups and access other great features of databases, with Radiant, than you can with WordPress.

General Comments
There are pros and cons to being the popular software in the field: there are more people trying to hack you. Also, the maturity of a product sometimes means that it hasn’t gotten more refined and focused, but more diffuse and unfocused. The image uploader is a good example. It used to be very clear and basic, with few options. Now, it’s very confusing to explain to people, and I tend to wish they’d chosen Radiant, where (cough) I worked on a very simple image uploader extension. Radiant has a methodology and credo of “keeping it simple,” in design and programming, that I appreciate the more I work with it. Yes, it could have expanded into doing a million different things, but it chose to stay small and focused.

This may be an emotional argument (as in using emotion vs. reason) but I’ve heard this also, over and over again. The Ruby mailing list, where most developers hang out, is a fun and interesting happy place, vs. the PHP mailing list, which is angry and angst-ridden. So if you’re thinking of joining camps, just keep that in mind. (ducks).

*I’ve heard Matt mention this at countless WordCamp talks, so that’s what I’m basing this on.