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は「早く作り直せる」「改修しつつ再利用できる」ことを念頭に開発されているという。