Movable Type's template headaches

By Serdar Yegulalp | 2016/07/20 08:00

I first started blogging with Movable Type back in 2001 or so, after deciding I needed to move away from Blogger (poor Dennis Cooper). I stuck with it for upwards of sixteen years, and now that I'm breaking away from it and creating my own thing, I feel less shy about speaking up about the parts of it that drove me bananas.

I said, do you speak-a my language?

The first problem with Movable Type, and arguably one of the biggest technical reasons it lagged and eventually fell of the map, was its templating language. Perl has a variety of template libraries, but the creators of MT decided to create their own XML-based language. The rationale for this was that you could ... actually, I'm not sure what the rationale for this was anymore.

Okay. Maybe it was that an XML-based language would be easy for a designer to pick up, or integrate with their existing toolset, or something. I saw nothing to support this. Designing templates in MT was certainly no easier by dint of its templating being XML-based. It made the logic of the templates hard to reason about, hard to grasp at a glance, and horribly verbose.

Oh, there was another rationale, now that I think about it: the idea that the templates weren't themselves executable scripts (a ding on WordPress). There's plenty of ways to get around that problem without devising some satanic subspawn of XML.

On top of that, there was the performance hit incurred by the interpreter whenever it parsed a template. Because MT's own interface used the same template system, that meant the program's UI was slow, too -- even when I ran it under FastCGI, it still lagged terribly. When I started putting together the first rough versions of MeTal and running them on my own shared hosting, I was surprised by how much faster everything was -- even on plain old CGI -- in big part because the templating language had far less overhead associated with it.

How open is open?

The single biggest reason I quit using Movable Type was not technical, though. It was social.

Originally, Movable Type was not open source, but licensed in such a way that indie bloggers could use it without paying as long as they met certain behavioral criteria. If you filed a business-level tax form, for instance, that meant you weren't an indie blogger anymore.

A lot of people were not happy with this arrangement, and eventually an open source version of Movable Type appeared as a way to defray those criticisms. By that time, though, the exodus to WordPress (uanmbiguously GPLv2 for a long time) had begun.

Then Movable Type decided to kill off the open source edition around the time version 6 came out: "[W]e don't believe that [the open source edition] added any significant value to Movable Type as a whole ... The community has not grown because of MTOS, nor have we seen download numbers that are any greater than our paid versions of Movable Type, so at this point it does not make any economic sense to continue to maintain and distribute something that is getting very little use."

For me that was the last straw. The only "free to use" version of the product after that was a hosted version on AWS that I didn't want to use. I kept using my existing Movable Type installation, but it was plain I had to find an exit strategy.

Here we are.

Movable Type was a remarkable creation for its time, and I don't regret the time I spent with it. I took the ideas from it that I thought were most worth keeping, and I think they'll stand me in good stead. Just ... not that template system.

Tags: Movable Type Perl performance templates

comments powered by Disqus