PR
[画像のクリックで拡大表示]

 「Web(サイトの構築)にはLightweight Language(LL:軽量言語)が向いている」。「日本Rubyの会」の会長でツインスパークに勤務する高橋征義氏は2006年2月9日,東京・目黒で開催されている開発者向けカンファレンス「Developers Summit 2006(デブサミ2006)」の講演でこう語った。その理由は「Webサイトの陳腐化のサイクル」にあるという。

 高橋氏は「Webサイトは構築してから3年経つと陳腐化する」と指摘する。ただ,壊れたわけでもないWebサイトを3年でリニューアルするには,事前に顧客と話をつけておく必要がある。3年で捨てる予定のアプリケーションの予算は少ない—これが,WebにはPHPやRubyといったLLが向いている理由である。Javaのような重量級の言語だと,10年持ちそうな設計や構造のアプリケーションを作ることになり,費用もそれなりに高額になってしまう。

 高橋氏が勤務するツインスパークは,実際にLL(主としてPHP,最近は一部Ruby)を使って,陳腐化サイクルの早いWebサイトを構築している。Javaを使った重量級の開発では,たいてい「ユーザー企業の情報システム部門がシステムを発注し,大手システム・インテグレータ(SIer)が受注する」という形になる。一方,ツインスパークが請け負う仕事は「ユーザー企業の営業部門や広報部門がシステムを発注し,大手広告会社が受注する」という形が多いという。大手広告会社がツインスパークにシステム構築を依頼するわけである。顧客は技術に興味はなく,間にSIerもいない。つまり「技術面の判断はツインスパーク1社に集中する」(同氏)ため,開発側が都合のよい開発言語やフレームワークを選べるというメリットがある。もちろん,技術面での責任も1社に集中するため,契約が重要だという。

 講演では,最近話題のWebアプリケーション・フレームワーク「Ruby on Rails」(RailsやRoRと略す)の特徴についても触れた。Railsの特徴は,一般に「DRY(Don't Repeat Yourself:同じことを繰り返さない)」と「Convention over Configuration(設定より規約を重視)」の二つだといわれている。しかし,高橋氏は「これらの特徴は他のフレームワークにもある」と指摘。Javaなどを使っている非LLユーザーにとっては,Railsが持つ「言語内DSL(Domain Specific Language)」「密結合」「非コンポーネント志向」の三つの特徴を理解することが重要だと述べた。

 Railsは,Rubyのコードとして実行できる範囲内で,Rails独自の表記法を採用している。このような言語内DSLの例として,ほかにもRuby用のビルド・ツールであるRakeなどがあるという。

 密結合は,現在のソフトウエア開発では一般に「よくないもの」とされている。柔軟性が欠如するからだ。ただ,Rubyはとても柔軟なメソッド呼び出しの仕組みを採用しているため,密結合との組み合わせは実はバランスがよい。高橋氏は「粗密と(言語の)硬軟のバランスが重要」と指摘する。

 3番目の非コンポーネント志向は,Railsの開発者であるDavid Heinemeier Hansson氏(DHHと略す)がコンポーネント技術に懐疑的なところからきているという。小規模なシステムだとコンポーネントはうまく機能するが,コンポーネントの組み合わせが増えると動かなくなる。結局は「作り直したほうが早い」ことになる。このため,Railsは「早く作り直せる」「改修しつつ再利用できる」ことを念頭に開発されているという。