As most of my regulars have noted (or perhaps not), with the most recent redesign of openswitch came the ‘switch’ back to Textpattern for the CMS as the engine which drives this site. Why, oh, why do I keep switching back to Textpattern, you ask? Why don’t I just stick with WordPress? Those are the questions I’m going to try my best to answer in this article.
First a disclaimer
WordPress really is a fantastic CMS. It’s got a large, excited and talented community surrounding it as well as a seemingly endless supply of plugins. I really do think WordPress is great, there’s no way I can bash this CMS. I will continue to recommend WordPress to those people for whom it is best-suited. I will also continue to develop for, and be active in, the WordPress community.
Whew, that was a mouthful.
What annoys me about WordPress
With all that said about WordPress there are certain things that really annoy me about the CMS. The first thing is the loop.
1. The loop
The loop isn’t that hard to understand. Well, at first it is, but as most WordPress veterans will tell you it’s a very straightforward concept. Here’s what the loop looks like:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
[: POST CONTENT GOES HERE :]
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
Not that bad, right? Of course, this is a VERY stripped down version of the loop. Normal loops will have a lot of other code where the post content goes. The part where the post content goes will be (appropriately) looped over and over again. Then when there’s nothing left to loop, or the loop number limit has been reached, it will display whatever is directly after the tag such as some navigation links at the bottom of a blog for “newer posts” and “older posts”.
Edit: It was pointed out by Jan on this post that the first and last line of the loop code could be removed. I guess I learn something new all the time ;). Still, this just goes to further my case that WordPress is a complicated CMS. I’ve been working with it for 2 years and still didn’t know something that (evidently) is pretty basic.
Honestly, I’m probably leaving some crap out. There’s A LOT to the loop. Also, there’s A LOT you can do with it. You just need to know (or learn) a little basic PHP.
2. Spam
We all know that about 98% of trackbacks are spam. I wouldn’t be surprised to find that the amount of comment spam on the Net is equally high. The problem is this: on the Net there are two systems for delivering content: Pull and Push.
Email, for instance, is a Push system. You don’t go out and find email, it comes to you. You then have to somehow decide which email you want and which you don’t. Unfortunately spammers have caught on to this and that’s why you need massive spam filters on your email inbox.
The rest of the Net, by and large, is a Pull system. You have to go and find information. You are reading my article because you navigated here on your own. Granted, it may have been sent to you via a feed reader but you still managed to subscribe to that feed by your own volition. You voluntarily pulled this content.
Now, from a blog owners POV comments are a Push system. Readers come and leave their own content below my content. I don’t go and get their content, it comes here to this blog.
Comment spam used to be a huge problem amongst bloggers. For many blogs today it’s really not a huge issue thanks to spam protection like the wonderful Akismet and a whole gamut of other, equally great spam tools which has effectively cut comment spam to a minimum.
Other blogs use CAPTCHA’s and such to weed out the legitimate comments from the spam.
If you use WordPress and you don’t use some anti-spam software you’re screwed. I hate that.
3. Versioning
It seems like WordPress is coming out with a new “mandatory” upgrade every other month, and that’s very annoying. It seems there is an endless number of “security” bugs that need to be squashed. Using WordPress makes me feel like I’m using Beta software due to the sheer number of bug fixes.
4. PHP
What WordPress doesn’t seem to grasp is that not everyone has the time or the inclination to sit down and learn PHP. If you plan on doing much in the way of creating your own WordPress theme you will inevitably have to learn PHP … or you’ll have to go to the Codex and cut and paste PHP from there.
Some of you reading this article love dealing with scripting and/or programming languages. But not me. I hate it. It’s a drag.
What I love about WordPress
OK, not everything about WordPress is frustrating. There are some things that I love about the CMS. I love the way it’s super easy to create pages. Creating pages in Textpattern involves at least one more step than WordPress.
I also love the sheer number of really fun plugins. There are TONS of them! Holy Crap!
What annoys me about Textpattern
You’ll notice that this section of things which annoy me about Textpattern is significantly shorter than the things that annoy me about WordPress.
1. Templating system
Textpattern’s templating system is (almost) as frustrating as WordPress’s comment/trackback spam issue. To create a Textpattern theme you have to go into your admin panel and individually copy and paste each page, each form and the stylesheet(s) into its own .txt file. Then you go and give those files to someone else who takes them and one by one copies and pastes them into their own Textpattern installation.
It can get really frustrating. Compare this to the templating system in WordPress and it’s clear why this annoys me about Textpattern.
This information is incorrect. If you use the Textpattern plugin called hcg_templates you can import and export themes with all the ease of WordPress.
I guess this means there’s nothing that annoys me about Textpattern.
What I love about Textpattern
This list is immense. So I’m going to trim it down to just those things I love most about Textpattern.
1. Granular control
I love how Textpattern gives you granular control over SO MUCH. I control what content is included in the feed and what isn’t. I granularly control permalink structure, pages, comments, everything.
Coming from a background in WordPress I found the granularity of Textpattern to be borderline frustrating at first because I was used to WordPress making and/or limiting those decisions for me. But now I find WordPress to be limiting almost to the point of stifling me.
Of course, these limitations really aren’t limitations if you are good with PHP. But this, as I’ve stated, annoys me.
2. Lack of comment spam
It’s a fact, Textpattern sites rarely get comment spam. Virtually the only type of comment spam they get are from human spammers … and even this is rare.
3. Textpattern’s loop
Textpattern’s loop looks like this (cf. WordPress’s loop):
<txp:article />
Wow, that’s simple. Note too the XHTML-like semantic structure of the self-closing tag. All Textpattern tags have that XHTML-like structure. I love that.
The tag does everything the WordPress loop does. I can limit the number of articles looped: <txp:article limit=“14” />. I can loop articles only with certain keywords: <txp:article keywords=“comma-separated keywords” /> and a dozen other things.
If that’s not enough you can expand the <txp:article /> functionality with <txp:article_custom />. With that tag you can loop articles based on ID, Category, Section, Time, Month, Author, or any number of other criteria. It’s a beautiful thing.
Textpattern tags in general make site creation a breeze. I lose no functionality over WordPress (in fact I gain functionality) and now instead of hacking my way through PHP I’m using easy to read and understand template tags.
4. Tag creation help
Still, it can be a little confusing for a new Textpattern user as to what tags do what and which options are available for which tags. That leads me to my next love of Textpattern: template tag help.
As you can see from this screenshot at right (click to view full size), any time you’re editing your code you have this template tag help to your left which will create any template tag you need, with all the options you want. The phrase “PHENOMENAL IDEA” doesn’t begin to describe how I feel about this feature.
5. Features included out of the box
There is more functionality with Textpattern out of the box than with WordPress. Things like Recent comments, Related Posts and Breadcrumbs are all included OTB.
One thing that needs to be included out of the box is a comments feed. There’s a plugin for it but I think it’s used often enough to warrant inclusion in the core functionality of Textpattern.
6. Server load
I’ve been watching my GPU usage as I’ve switched to textpattern from WordPress and here’s what I’ve seen (click image to view full size):

As you can see, on November 7th, when I switched back to Textpattern, my GPU usaged dropped by about half … and it is staying that way. The GPU usage prior to November 7th is reflective of my site running WordPress with wp-cache enabled. Traffic has remained constant throughout the shown time span.
As is plainly evident by this graph, for openswitch, running Textpattern puts about half as much strain on the server as WordPress.
Conclusion
The best thing WordPress has going for it is Sandbox. That, my friends, is why recently I was caught using WordPress for a tumblelog. If you want to create a tumblelog then WordPress + Sandbox is BY FAR the easiest way of doing so.
However, I’ve finally decided that as things stand right now, Textpattern is definitely a more robust CMS than WordPress and except in the case of a tumblelog, is really a much better option than WordPress … even for standard blogging.
Top it off with the fact that the book Textpattern Solutions is available (a copy of which Nathan Smith graciously sent me) it’s easier than ever to start learning and using Textpattern, I can’t recommend this CMS highly enough.