MTにあってWPにないもの

mixiのMovable Typeのコミュニティに、以下のような質問がアップされていました。

Movable Typeを覚えようかと思っております。

主にWordPressを使って構築しているんですが、Movable TypeにあってWordPressにないもの。って何でしょうか?

漠然としていますが、WordPress使いがMovable Typeを覚えるメリットを教えていただければ幸いです。

WordPressにはないけど、Movable Typeにはあるよ!!!

っていうものですかね。

そこで、「MTにあってWPにないもの」について、私が思うところをいくつか書きたいと思います。

再構築

「MTにあってWPにないもの」として真っ先に思いつくものと言えば、やはり「再構築」だと思います。

Movable Typeは、基本的にはサイトの各ページをあらかじめ静的にファイルに出力(再構築)しておく方式をとっています。
一方のWordPressは、読者がサイトにアクセスした時点で、動的にページを出力する方式をとっています。

動的生成のメリットは、「ブログに対して何らかの変更を行ったときに、それが各ページに即座に反映される」という点です。
また、ページが増えると再構築は処理に時間がかかりますが、動的生成ならその時間が不要というのもメリットです。

一方、動的生成のデメリットは、ページにアクセスがあるたびにデータベースアクセスが発生するので、静的生成と比較して、ページへのアクセスによる負荷が高くなる点です。

小規模なサイトだと、動的生成のデメリットが出ることはほとんどありません。
しかし、ページ数が非常に多いサイトや、アクセスが非常に多いサイトだと、スペックの良いサーバーを使わないと、動的生成のデメリットが表面化することもあります。
例えば、アクセスの多い時間帯になると、ページが表示されないと言った問題が起こりえます。

なお、Movable Typeには動的生成を行う機能(ダイナミック・パブリッシング)もあります。
一方、WordPressにも静的生成を行うプラグインがあります。

複数ブログの管理

通常版のWordPressは、1インストールにつき1つのブログのみ管理できるようなシステムです。
複数のWordPressをインストールすれば複数のブログを管理することも可能ですが、それぞれのブログが独立して存在するような形であり、ブログ間の連携は十分とは言えません。
また、複数ブログを管理できる「WordPress MU」もありますが、基本的にはブログのホスティングを想定したもので、「複数ブログを連携してサイトを造る」といった用途にはあまり向いていません。

一方、Movable Typeは複数のブログを一括して管理することができます。
イントラブログなど、多数のブログの情報を組み合わせて1つのサイトを作る際には、Movable Typeの方が管理しやすいと思います。

テンプレートの自由度の高さ

Movable Typeは、WordPressに比べると、テンプレートタグの種類が多く、自由度が高いです。

例えば、WordPressでカレンダーを出力する場合、「get_calendar」のタグでカレンダー全体(日付だけでなく、カレンダーを構成するHTMLも)が出力されます。
そのカレンダーで満足な人には良いですが、カレンダーの出力形式を変えようとすると(例えば、横一列のカレンダーにしたい場合)、プラグインが必要になります。

一方、Movable Typeでは、ほとんどのテンプレートタグはデータしか出力せず、HTMLは出力しません。
データとHTMLの組み合わせは、テンプレートを組む人が自由に決めることができます。

ブログを作ることだけを考えるなら、WordPressのように、タグがシンプルな方が分かりやすいです。
しかし、より多様なサイトを作ったり、あるいはサイト以外のためにデータを出力したりすることを考えるなら、Movable Typeのようにタグの自由度が高い方が良いです。

プラグインの作りやすさ

Movable Type/WordPressともにプラグインを作ることができますが、プラグインを作るためのシステムの構造は、Movable Typeの方が充実していると思います。

Movable Typeはオブジェクト指向のプログラムになっています。
また、データベースのアクセスの際にもO/Rマッピングが行われ、基本的にはSQLを書く必要がありません。
そのため、プラグインからブログのデータをアクセスしやすいです。

一方、WordPressはオブジェクト指向ではなく、昔ながらのプログラミングスタイルがとられています。
また、データベースのアクセスの際にも、SQLを直接に実行する仕組みがとられています。
したがって、プラグインからブログのデータにアクセスしようとすると、SQLを書く必要が出ることもあり、Movable Typeより手間がかかります。

複数のデータベースへの対応

WordPressはMySQL専用に作られています。
一方、Movable TypeはMySQL/PostgreSQL/SQLiteに対応しています。
さらに、大規模サイト向けのMovable Type Enterpriseでは、OracleとSQLServerにも対応しています。

小規模なサイトであればMySQLで十分ですが、規模の大きなサイトになると、Oracle等が必要な場面もあると思います。

MTとWPの方向性の違い

Movable Typeはもともとはブログのシステムでした。
しかし、最近の進化の方向を見ると、ブログのシステムとしての進化よりも、汎用的なCMSを目指していることが明確です。
一方、WordPressは「ブログのシステム」という枠組みの中で、使い勝手を上げることを追求しているように見えます。

大雑把に言えば、「小規模でブログ的要素が強いサイト」ならWordPressが向いているでしょうし、「ブログ的ではなく、また多様なコンテンツを組み合わせたサイト」にはMovable Typeの方が向いているでしょう。