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; ?>
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
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.







17 Comments
I’ve been thinking about switching from Wordpress for awhile now. It’s not so much the PHP that bothers me, but more of the politics behind Wordpress that I don’t agree with.
While I’ve been waiting for a stable, non-developer, release for Habari, I’ve tried out Textpattern and the new Movable Type. I’m going to be testing out Textpattern by moving my tumblog from Tumblr to Textpattern and see how I like it.
I really love the fact that Textpattern is more secure than Wordpress. It’s not that I’m really worried that there will be an issue with Wordpress for me since I write primarily a personal blog with not so many visitors. But spam is annoying. Akismet, while it works, it just doesn’t work that well. I find myself moderating a lot of comments because Akismet hasn’t learned that that specific comment is spam yet.
Anyway…this is a great post.
I’m no Internet security guru, as you know, Josh. But from what I understand (someone correct me if I’m wrong) you’re correct that Textpattern, OTB, is more secure than WordPress.
Another option you should check out is Expression Engine. As I’ve talked with Nathan Smith about it and he says that EE is right up there in terms of functionality and power. I’d really like to give EE a test run as I know several folks who swear by it.
If you do go the TXP route I’d highly recommend Textpattern Solutions. All the information in it is available on the Net, but the way the book is written makes the information much more clear and easy to understand.
Why are you using an image for the “code” text that appears next to your code. If you can go on AIM tonight, so that I can send you the css for that.
Will do Brian.
That GPU usage graph, is what sells Textpattern more than anything else. Hmmm…
Are you sure it’s nothing to do with the images in the design (or something else) you were using while on WordPress? Is it anything to do with plugins?
I would consider EE, but it’s not free
As for the idea that you have to copy and paste each individual page/form/style to package a theme or move a design to another site, that was once true, but now we have hcg_templates. Most of the entries in this year’s Textplates competition use it. Makes it easy to package everything up in one zip file that can then be unzipped, uploaded, and imported via the plugin.
As for Expression Engine, it’s a very powerful and versatile app that can do things neither Wordpress nor Textpattern can. Its templating system is closer to Txp than WP. But in addition to the licensing fee, it will also put a whuppin’ on your GPU chart. It’s a load.
@Armen: The design that was in place when the above GPU usage was calculated by Media Temple was using less images than my current design. But that wouldn’t really matter, as the number of images does not increase server load … at least not that I’ve noticed. More images would seem to only increase bandwidth consumption and page load times. As for plugins, I’m using several plugins on Textpattern now too.
@Reid: Now that’s a load off my mind! I didn’t know about that plugin. I’ll edit my article to reflect that.
I wonder why Textpattern is so lightweight when compared to WordPress and EE. Do you know?
Ben,
I have a few questions. First why is the wordpress loop bad? Is it because of resources or it’s just ugly? If it’s ugly a PHP include would do fine there and make it textpattern like.
Also, what’s the learning curve on these two like. I once programmed a moderately simple PHP weblog platform, so I know php rather well. I also know xhtml and css too, but for textpattern, for the whole 2 days I had it installed, it seemed like I had to learn a whole new syntax.
I’m not all that familiar with textpattern, but I believe it caches a lot of stuff to the database so it is no longer running the php code. This is basically what wp-cache2 did, at least in theory. However, if it is supported OTB it won’t have to use the plugin interface to interact between the two thus removing some server load. There’s a lot going on with both systems and this is pure speculation.
You are such a flip-flopper
@Chris: yes … yes I am
@Noah: It’s not that the loop is “bad” … it’s just that I hate dealing with it. It’s overly complicated and in order to modify the loop you have to know PHP.
Re: the learning curve … I found Textpattern to be easier to learn than WP mostly due to the Template tags but again, this part of the curve is short circuited due to the tag creator. A TXP site is structured differently than a WP site though, so that’s the biggest thing to learn.
Re: wp-cache … There’s no doubt this plugin cuts down on server load. Interestingly though, in the image above wp-cache2 was enabled the whole time. And Textpattern still cut the server load about in half. I don’t know if that’s just unique to my site (it may be) or whatever. All I know is that for openswitch Textpattern cut the server load by about half when compared to WP with wp-cache2 enabled.
Is something broken in your feed? The feed for this entry is repeated like three times, so when I’m reading the page, I see a bunch of your posts inside the body of the entry. Very strange. Vienna 2.2, OS X 10.4.10, Powerbook G4.
Very odd. If you could email me a screenshot that would be great: frotzed (at) gmail (dot) com
Welcome to the club of TXP-WP-switchers
I have recently switched exactly the other way round. I left TXP for some reasons…
- TXP’s development cycles are going down. Less and less often new things are built into the CMS.
- If you want to define the structure of your urls in TXP, you need a plugin.
- The community of TXP developers seems to be shrinking. The guy who had the original idea – Dean Allen – has not been seen for years as far as I know.
Also, I cannot see the direction of TXP. Once it was a CMS with its own philosophy that concentrated on creating content. Now, it more and more gets features added, so that it matches up with WP, which is the wrong way – in my opinion. Look at the forum. A lot of people complain about things that are no problem at all in WP. And if you look at the “ideas for upcoming features”-section, it gets pretty clear that WP is the guiding light.
You can, of course, compare some statistics on both CMS, too:
- TXP: 7 (6) developers
- WP: 65 (37) developers
I have no idea where this leads to…
And one more thing: How did you get all of your articles into TXP? (When I tried switching, everything was screwed up when I used the regular WP importer!)
Yeah, the WP importer doesn’t work. You need to hack the php file LOL!I misunderstood the issue. I\’ve found that importing FROM Textpattern TO WordPress required hacking. But importing WordPress tables TO Textpattern, as I\’ve done here, required no extra work. Everything worked fine… even with WordPress\’s new tagging system (tags were simply lost).
I don’t know man, WordPress as a guiding light? Perhaps. It’s certainly seeing a lot of popularity right now, nothing wrong with that.
Regarding plugins, yeah, if you want specialized URLs you need a plugin for TXP. But then to get functionality into WP which is inherent to TXP you need a plugin for WP. It goes both ways, I’ve just found that TXP does more of what I want OTB than WP does. I’ve said it before in previous posts, but WordPress is a great CMS for blogs, and it’s a great platform to build even a non-blog a site on if you’re comfy with PHP.
As for the number of developers, that really means little to me.
Interesting server load diagram, indeed…
In order to provide facts for fiction, I’d like to add a claryfying point:
Textpattern does not cache anything into the database with one exception: The HTML for articles which is generated from Textile-coded input at the time the article is saved.
Everything else – any Textpattern tag – is processed as the page is built, with every single client request. So the reduced server strain might simply stem from two causes:
First, Textpattern’s code base is apparently smaller than WordPress’s, so there might be a little less code to process – I haven’t dug in WordPress’s code but reading the number of database requests and processing time various WP-powered blogs expose in their footers I think this is a probable suspicion.
Second, Textpattern indicates whether content was modified since the time of the last visit (“If-Modified-Since” reply), so returning visitors might impose a lower load on the server as their browser’s cache is properly untilised.
Re: Hacked-up WP importer. Care to share? We would gladly receive patches at txp-dev(at)lists.textpattern.com, as we admittedly are getting out of sync with the more recent versions of WP here.
What WordPress doesn
@Robert: The importer I was referring to was those using WordPress importing TXP posts. The WordPress importer, the one that imports TXP tables, is broken.
The importer included with Textpattern which imports WordPress tables works just fine. So when I switched from WordPress to TXP there were no problems at all. I think I misunderstood the original comment. I’ve corrected my comment above.
Re: the lighter server load … thanks for that technical information. I’ve always wondered about those things.
@Matthias: Serendipity looks interesting. Thanks for sharing