まつもとゆきひろ氏
まつもとゆきひろ氏
[画像のクリックで拡大表示]
次世代開発フォーラム 2006 Winter会場
次世代開発フォーラム 2006 Winter会場
[画像のクリックで拡大表示]

 「生産性の向上により,今まで大規模開発とされていたものでも,少人数での開発が可能になる領域ができてきた。必要なのは割り切りと信頼」---11月30日,日経ソフトウェアと日経SYSTEMSが主催した「次世代開発フォーラム 2006 Winter」の「ソフトウェア開発の新潮流~Rubyの場合~」と題した基調講演で,Rubyの作者まつもとゆきひろ氏はこう語った。

 ソフトウエア開発の現場には,高品質,短納期,低価格という相反する,厳しい要求が突きつけられている。この矛盾を解消する方法としてまつもと氏がすすめるのが「少人数での開発」だ。小規模開発はコミュニケーションのコストが低く,変更も容易で生産性が高い。そのことはソフトウエア開発者なら誰しも肌で感じている。かつては少人数では小規模な開発しかできなかったが,フレームワークなどツールの進化により,以前の“大規模システム”が少人数で開発できるようになってきた。

 「Webアプリケーション・フレームワーク『Ruby on Rails』はJavaの10倍の生産性とも言われる。本当に生産性が10倍かどうかはともかく,同じ機能を実現するために必要なプログラムの量が10分の1になるのは事実。標準的なプログラマが1日に生産する量は言語によらず一定であり,生産性は確実に向上している」(まつもと氏)。コンサドーレ札幌の公式ブログ・サイトやドリコムの就職情報サイトDrecom Career SearchなどがRuby on Railsで開発されている(関連記事)。

 Ruby on Railsの生産性の高さは,ネーミング規約に基づいた記述の簡素化やDBアクセス・プログラムの自動生成機能などにある。それを実現しているのがRubyの持つメタプログラミングなどの機能だ。

 もちろん生産性向上のための代償はある。例えば実行性能。またRuby on Railsの場合には,高い効果が発揮できるのはデータベースを使ったCRUD(Create,Read,Update,Delete)アプリケーションで,それ以外では生産性が向上しにくい。

 しかし,実行性能に関して言えば現在サーバー価格は低下しており,遅ければ台数を増やせばよい。アプリケーション構造に関しても,80%はRailsでカバーできるので20%は他のツールを使う,と割り切って,効果の高いところだけ適用すればよい。

 そして最も必要なのは仲間への信頼だ。「信頼がRubyの真髄」とまつもと氏は言う。Rubyは,クラスの挙動を誰でも変えることができる。また型でエラーを検出できない。それは「迷惑をかけるような変更はしないだろう,正しいオブジェクトを渡してくれるだろうという信頼に基づいている」とまつもと氏は言う。「信頼されれば伸びる。気持ちよく開発できること,それが生産性を向上させる」(まつもと氏)。