WordPress と Ruby on Rails はどこがどう違うのか

2017/04/19

最近、お客様から連続して質問されたことがあります。それは、Ruby on RailsWordPress とどう違うのか、ということです。

正直に言えば、私はこの質問にもどかしさを感じました。

実際にそれらを使って何かを作ったことがある人々にとって、両者の違いはほとんど自明です。

しかし、一般向けにそれを説明しようとすると、なかなか難しいことに気付きます。

Q&Aサイト「スタック・オーバーフロー」に、まさにこのテーマに関する質疑応答が載っていました。

https://ja.stackoverflow.com/q/30932/8146

質問者はすでに Rails を学習しています。WordPress については「一度も触ったことがないレベル」と書いています。おそらくは、Rails の学習中に幻滅を味わったのでしょう。このまま Rails での開発を続けても独力で目的とするサイトを完成させられそうもないと感じ、WordPress に目を向けた、ということではないでしょうか。

「主観的な答えしか集まらない」という理由でクローズされてしまっていますが、なかなか興味深い質問です。

ちなみに、まったく同一の質問が別のQ&Aサイト「teratail」にも投稿されています。

https://teratail.com/questions/57748

以下、私の主観的な意見をまとめてみたいと思います。


Rails と WordPress の違いを私に尋ねる人は、もちろん百科辞典的な説明を求めているわけではなくて、どちらを使った方が自分の目標に早く、安くたどり着けるのかを知りたいと思っています。

ですから、答えはどんなウェブサイトがほしいのか、に依存します。

しかし、多くの場合、そのウェブサイトのイメージは不明瞭です。

文章や画像の多い企業サイトを作りたいのなら WordPress で、Twitter のライバルを作りたいのなら Rails で作ればいいでしょう。

でも、現実にはそこまではっきりとウェブサイトの性格は決まっていないケースがほとんどです。

結局のところ、スケジュールと予算による制約があるので、WordPress ならこういうことが X ヶ月でできる、Rails ならああいうことが Y 百万円でできる、みたいな感覚を得た上で、それならこうしよう、あれは諦めよう、と考えていくものです。


例えば、ウェブサイトに「イベント予約」という機能が必要だとします。これは WordPress でも Rails でも実現可能です。

基本的に WordPress は「ブログ管理システム」なのですが、プラグインという仕組みを使ってさまざまな機能を追加できます。WordPress の管理画面でプラグインを検索し、適当なものが見つかれば、あとはマウスで「今すぐインストール」ボタンをクリックするだけで導入完了です。

しかし、Rails ではそんな簡単には進みません。Rails の世界でも Gem パッケージという仕組みを使ってウェブサイトに機能を追加できます。しかし、それを導入するために必要とされる操作は、マウスクリックではありません。ターミナルにコマンドを入力したり、テキストエディタで設定ファイルを書き換えたり、場合によってはプログラミングもしなければなりません。

さらに言えば、Rails の場合「イベント予約」のような機能を Gem パッケージだけで実現するのは難しいです(ここは、筆者の見解です)。たぶん、データベースの設計からビジュアルデザインまで、自分自身で作りこむことになります。

こう聞けば、WordPress の方が効率的なようですね。でも、それは「適当なプラグイン」が見つかった場合の話です。

見つからなければ、WordPress の場合でも Rails と同じような「作りこみ」をしなければなりません。


総じて言えば、WordPress の方が Rails よりも初心者にとってのハードルが低いです。その差は圧倒的です。

まず、WordPress はインストールがとても簡単です。開発用の PC にインストールする場合でも、公開用のサーバーにインストールする場合でも、10分ぐらいで終わってしまいます。他方、Rails を始めるためには数多くの準備作業が必要です。ターミナルを開いて、さまざまなコマンドを入力しなければなりません。プログラミング未経験者の場合、うまく行ったとしても半日以上かかってしまうでしょう。

次に、インストール直後の状態がまったく異なります。WordPress の場合は、それなりに見栄えのするウェブサイトができあがり、管理画面からブログ記事を投稿することができます。他方、初期状態の Rails は、ウェブサイトとしてはほぼ「無」です。WordPress の管理画面に相当するものはありません。デフォルトのトップページとして次のような画面を表示することはできますが、これは動作確認用にすぎません。

Railsのデフォルトのトップページ

Railsで「ページ」を追加するには、プログラミングが必要となります。例えば、こんな感じのソースコードをテキストエディタで書かなければなりません。

Rails.application.routes.draw do
  root 'top#index'
  get 'about' => 'top#about', as: :about
  get 'hello(/:name)' => 'hello#show', as: :hello
end

Railsでは、これに類するものを何百行、何千行と書かないとウェブサイトを作れません。


なぜこんな面倒なことをしてまで Rails でウェブサイトを作るのでしょうか。単純な話です。自由に作りたいからです。

さきほど「イベント予約」機能の話をしたときに、WordPress のプラグインについて触れました。運良く「適当なプラグイン」が見つかればいいのですが、現実には「帯に短し襷(たすき)に長し」であるケースが多いものです。

そうなると、プログラミングという「作りこみ」をすることになります。プログラミングを通じた機能追加は WordPress でも Rails でも可能です。WordPress の場合は、PHP というプログラミング言語でソースコードを書きます。Rails の場合は Ruby です。

どちらの方が効率がいいのでしょうか。これは「炎上」しやすい非常に論争的なテーマです。ちょっと後回しにしましょう。

まず考えなくてはならないのは、ウェブサイトを作るために本格的なプログラミングをするのかどうか、です。

これは重大な選択です。自分で作るにせよ、誰かに作ってもらうにせよ、新たなウェブサイトを作るというプロジェクトの性質がこの選択によって大きく変わってしまいます。習得すべき知識、集めるべき人材、スケジュール、予算、すべてがまったく異なったものになります。


プログラミングをしたくないのであれば、WordPress を選択することになります。そして、管理画面とプラグインによって可能な範囲でウェブサイトを作っていきます。

あなたの作りたいウェブサイトがその範囲を超えるのであれば、ふたつの選択肢があります。

  • PHP プログラミングを通じて WordPress 本体あるいはプラグインを拡張する。
  • Rails を使って、ほぼフルスクラッチでウェブサイトを構築する。

どちらの方針を選ぶべきでしょうか。


ここから先は、会社の宣伝になります。

正直に申し上げれば、上に挙げたふたつの選択肢を評価することは、プログラミング未経験者には難しいです。

初期状態では WordPress に明確なアドバンテージがあります。管理画面があり、ブログ記事の投稿ができて、プラグインを使って比較的簡単に機能を拡張できます。

他方、Rails にはウェブ開発を効率化する数多くの仕組みが備わっています。筆者の考えでは、これらをうまく活用することで新機能追加の時間が短縮されます。つまり、長い目で見れば WordPress を改造するよりもコストパフォーマンスが高くなる可能性があります。

しかし、このコストパフォーマンスを見積もるためには、ウェブ開発の経験が必要です。

弊社(株式会社オイアクス)では、WordPress と Rails の間の選択に悩んでいる方のためのコンサルティングサービスを提供しています。ぜひご活用ください。