WebプログラマはRailsに乗るべきか?:安藤幸央のランダウン(29)
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部)
本記事は2006年に執筆されたものです。RubyやRuby on Rails全般の最新情報は@IT Coding Edgeフォーラムをご参照ください。
Ruby on Railsとは?
Ruby on Rails(ルビーオンレイルズ:RoRと略されることもある)は圧倒的な開発効率を誇るWebアプリケーション開発のためのWebフレームワークです。Railsの用意した道のりに沿って開発することで、短時間で高機能なWebアプリケーションを構築することができます。
Javaのサーバサイドアプリケーション開発に慣れた人であれば、MVC(Model-View-Controller)フレームワークであるStrutsとO/RマッピングフレームワークのHibernate、Dependency Injection(DI)フレームワークであるSpringの3つを組み合わせたような統合フレームワーク風のものであるといえばピンと来るでしょうか?
Ruby on Railsはデンマーク在住、37singals社のDavid Heinemeier Hansson氏が開発したWebフレームワークです(37signals社はToDoリスト管理のTa-da ListsやBackpackといった簡単で使いやすい管理ツールをASPで提供する企業)。
開発の素早さ、簡単さに人気が高まる
Ruby on Railsはその名前どおり、オブジェクト指向のスクリプト言語Rubyをベースにしたフレームワークです。Rubyは日本のまつもとゆきひろ氏が開発。Ruby on Railsの登場とともに現在米国で高い注目を集めているスクリプト言語です。
Ruby on Railsは、単機能Webサーバと、データベースの設定も含めた、サービスを実際に動作させるまでの手続き、設定がスムーズに素早く、簡単にできることが最大の特長です。何より面倒な設計や設定なしに、データベース上の必要な項目と、ユーザーインターフェイスが直結している感覚が開発者の心をとらえている理由です。
まずは、Ruby on Rails のサイトで公開されているスクリーンキャスト(コンピュータの操作を動画で説明したもの)をご覧になってみてください。その開発の素早さ、簡単さに納得するはずです。
Creating a weblog in 15 minutes(weblog を15分で開発)、Putting Flickr on Rails(写真サイトFlickr を活用したサイトを5分で構築)など、スピーディーに開発できる様子をムービーで紹介している(http://www.rubyonrails.org/screencasts)
Ruby on Rails の6つの利点
David Heinemeier Hansson氏いわく、Railsの中に組み込んだ「黄金の道(golden path)」に沿って開発を行うととても生産性が向上するとのこと。ある意味Railsは一般的なプログラミング言語が持つ柔軟性を無視することによって、開発開始から完成までのスピード感を得ているともいえます。
Railsの利点でもあり、人気を博している理由は以下の点です。
- XML形式の複雑な設定ファイルはデータ形式とは無縁
XMLは便利でありながら、各所でさまざまな用途向けの独自のXMLが派生しがちです。 - データベース連動サイトを構築する準備が少なくて済む
アプリケーションサーバやデータベースの準備がスムーズに行えます。 - Webアプリケーション開発環境としての柔軟性
ZopeやOpenACSなどのすでに枠組みが決められてしまったWebアプリケーションとは違い、多様なWebアプリケーションを簡単に作り上げることができる。 - すぐに動作するものを作れる
MVCだDIだといった難しい設計や仕組みは分からずとも、まず動かすだけであれば、すぐに実際に動作するものを作り上げることができ、最初の壁が乗り越えやすい。 - すぐにコツが把握できる
開発に慣れてくると、どこに何が書かれていて、どこを参照すればよいのか、うまく動かないときはどこを確認すればよいのか、だんだんカンが働くようになる。 - より少ない予算で短期間にシステム構築をする際の指針となる
ただし、何でも開発できるとは思わずに、Railsの枠内でどれだけのことができるのかを考える必要がある。
まだまだ実績が少ないのが弱点
Railsが誕生してまだ間もないですが、AjaxやWeb 2.0との関係からも急に注目を浴びるようになってきました。新参者であるRailsは、その利点ばかりが取り上げられやすいですが、一方Railsの弱点と思われる部分に関しても着目しておきましょう。
- 新しいフレームワークのため実績が少ない
- 技術的なドキュメントや、書籍などの充実度が低い
- ノウハウの蓄積やバグ回避のための技術者たちの経験が浅い
- データベースの設計まで範疇に入っているプロジェクトでないと使いづらい
- 多言語対応が弱い(ドキュメントも含む)
- 利用者が膨大になったときのスケーラビリティに対する経験が浅い
- 統合開発環境の充実度が低い
- ベースとなるスクリプト言語Rubyの実行環境/実行速度に影響を受ける
- より素早い開発、設定のためにはRubyを熟知しなければいけない
Java EE(Enterprise Edition)やLinux/Apache/Perlの組み合わせであれば、ある程度経験則に基づいた大規模化へのスケールの方法が確立されています。Railsの場合、サービスのスモールスタートは簡単ですが、そのサービスがいきなり大量のユーザーを抱えた場合、どう大規模化するかといったことが課題として認識されています。もちろんサービスの規模だけではなく、開発メンバーの数についても同様です。
すでに登場している統合開発環境
Rails自身が開発環境であるとの見方も、やはりユーザーインターフェイスの整った開発環境が整ってこそ、多くの開発者に使われるようになってくるといえます。そこで、現在可能な範囲でのRuby on Rails統合開発環境をいくつか紹介しましょう。
●Komodo:ActiveState社(http://www.activestate.com/Products/Komodo/)
Ruby on Railsのデバッグを統合開発環境から行えることが特長です。
●RadRails(http://www.radrails.org/)
Eclipseプラグイン環境に構築されたRuby on Rails用統合開発環境。管理フェーズ、試験フェーズ、デプロイメント工程の作業が充実している。開発時に利用する単機能WebサーバであるWEBrickサーバのコントロールも可能。
Ruby on Railsの将来性
ここしばらくRailsは、まだ混沌とした状況が続くと思われます。「○○みたいなサービスが○○分でできた!」などの売り文句のみが注目を浴びる時期が続くと思いますが、その本質を見失ってはいけないでしょう。
今後、有益な比較的大規模で使いやすいアプリケーションが広まり、それが実はRuby on Railsで開発されていたのだとうわさが広まる。Railsのテクノロジがサービスの後ろに隠れたときが、初めてその価値が認められたときだと考えられます。
これからRailsに期待されるのは、やはり開発のためのドキュメント、ノウハウなどの情報や実績、大規模アプリケーション開発への道筋でしょう(比較的小さなWebアプリケーションを素早く立ち上げることができるのがRailsの利点であるともいわれており、必ずしも大規模アプリケーションを開発できることが必須な要件であるとは考えませんが……)。
Railsが今後末永く、さらに広範囲で使われるようになるためには、「大規模」「多言語対応」といったキーワードは無視できないでしょう。
「親の敷いたレールには乗りたくなかった!」とは、何かのテレビドラマか偉人伝にでも出てきそうなせりふですが、ここはひとつ、これからRuby on Railsのレールにうまく乗ってみてはいかがでしょう?
■関連書籍
- 「Agile Web Development With Rails」(Pragmatic Bookshelf)
Railsの作者Daivd Heinemeier Hanssonらによる初のRails本 - 「ディフェンシブ・ウェブデザインの技術」(毎日コミュニケーションズ)
「うまくいかないとき」に備えたデザイン、「上手に」間違えるためのデザインを解説。37signals著
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.