[プログラミング] Ruby On Rails の SWOT

今日 CNET Japan を読んでいると、Ruby On Rails の記事が掲載されていました。

この記事を読みながら、ふと Ruby On RailsSWOT 分析するとどうなるだろうか、と考えたのでやってみたいと思います。

SWOT 分析というのは、強み(Strength)、弱み(Weakness)、機会(Opportunity)、脅威(Threat)の4つの軸から評価する手法です。

SWOT 分析を行うことで内部的な分析と外部の環境の分析を組み合わせることで総合的に判断することができます。

強み

Ruby On Rails 自身の強みは、それを利用することでの圧倒的な開発効率です。特に、一般的な CRUD(Create,Read,Update,Delete) と呼ばれるデータベースのテーブル操作については scaffold (足場)という機能を利用することで、非常に簡単に実装することができます。

あと、作るファイルを自動的に数多く生成する機能があります。多くの場合、フレームワークというのは多かれ、少なかれそのフレームワークのやり方に従って作業をする必要があります。そのやり方を理解するために自動生成されたファイルというのがすごく役に立ちます。ファイル名やクラスの名前付け規則やこのファイルをこのディレクトリに置く必要があるといったお約束事を覚える必要が少なくなるからです。

Ruby On Rails にはある名前付け規則に従うと、とても楽になるという性質があります。そして、人は誰かが代わりにやってくれるのであれば、そのやり方に従うことはできるけれども、自分で最初から始めるのであれば、自分のやり方でやりたいと思うものです。

この Ruby On Rails の自動的にファイルを数多く生成してあげるという方法はこの両者のいいところをつなぎ合わせる非常にいい方法です。

他にも、MVC (Model, View, Controller)の採用や、View と Controller の間での値のやり取りがとても単純です。どういう原理でできているかは少し理解することが大変かもしれませんが、動かすだけであればすぐにできそうです。

これらの特徴によって保守性の高さが実現されています。Quick and Clean とよく表現されますが、ある種のコーディング規約がフレームワークに埋め込まれているため、Ruby On Rails を使っていればだいたいどこを見れば何があるかなどのカンを働かせることができます。そして、そのコーディング規約に則って進めれば、新幹線に乗っているように素早く完成させることができるのです。

また、ActiveRecord の便利さも、Ruby On Rails の人気を引き上げていますActiveRecord は今まで面倒だった データベースへの接続やテーブルのカラムに対応したアクセサメソッドの作成などのコーディングを不要としてくれます。一度使うと病み付きになります。

弱み

弱みとしては、新参者につきものの項目がいくつかあります。つまり、実績が少ないということ、技術ドキュメントがまだ整備されていないこと、変化が激しい、という点があります。

そういう項目以外にあげると Ruby On Rails は適用範囲を非常に限定したツールになっています。例えば、複数カラムを主キーとしたテーブルに対しては適用できませんし、カラム名やテーブル名はある種の名前付け規則に従っていないといろいろと面倒なことになります。

つまり、テーブル設計などについて自分で決定権を持っているようなシステムでないと適用できません。

開発ツールが充実していないという問題もあります。これについては、Eclipse ベースの RadRails が出てたので状況は変化しているかもしれませんが。

Ruby On Rails はまだまだ多言語対応が弱いです。すでに成功例もあるようで、そのためのプラグインなども登場してきています。しかしながら、整備されたドキュメントで、なおかつ本家にマージされる形にならないと使いにくいという人は多いでしょう。

Java との比較でこの点は重要になると思うのですが、エンタープライズ対応がどうなのかという点があります。利用者数が膨大になった場合で、サーバの台数を随時増やしていくような運用ができるかどうかなどの点があります。おそらく技術的な解はあると思います。ドキュメントを整備し、有名企業での採用例を広告することが保守的な企業での採用のカギになりそうです。

機会

次に、機会(Opportunity)について書いていきましょう。Ruby On Rails は技術好きの関心を大いに集めました。AgileAjax そして、最近では Web 2.0 といったキーワードがそのまま Ruby On Rails という単語と一緒に紹介され普及が促進されていったのです。

おそらくみなさんは耳にタコができるほど聞いていることだと思いますが時代の要請として、より少ない予算と時間で同じようなシステムを構築することが要求されるようになってきました。その中で柔軟に対応できるようなシステムや開発手法を指して agile というキーワードが流行しました。

そして、ユーザビリティを激変させた Ajax の登場とそれにすばやく対応したフレームワークとして、Ruby On Rails は高速に知名度がましていきました。

さらに Ruby On Rails が日常的に非常によく出てくる作業を楽にできる様にしていたということがポジションとしてうまくハマったという部分もあります。実際問題、データベースを触ってやりたいことというのはCRUD などそれほど多くないものです。それが便利にできれば、かなりのことはクリアにできるようになります。

脅威

最後に脅威(Threats)について。

脅威としては、他のフレームワークがどんどん増え、模倣してきていることでしょう。
Ruby On Rails にインスパイアされて、他の言語などにもどんどん移植されており、
Ajax を使ったフレームワークなどについてもMicrosoft を筆頭として数多く新しく出続けています。

全般的に言って、これからは弱みを少なくする方向に進んでいくのでしょう。特に、ドキュメントの整備はこれからどんどん進んでいくものと思います。ただ散在している状態はひょっとするとまだ続いていくかもしれません。