スクリプト言語が元気だ。代表格が日本発のオブジェクト指向スクリプト言語「Ruby」。国内だけでなく海外でも着々と支持を集めている。Java仮想マシンで動作する「Groovy」や,Smalltalkから派生したSqueakのビジュアル・スクリプティング環境「eToys」など,このところ急速に注目を集めている言語もある。一方で,PerlやPythonなど定番とも言える言語は相変わらず根強い人気を誇る。

 この盛り上がりの原因は,いったい何なのだろう。しばらく前から心の中でもやもやとしていたこの疑問に答えを見いだすチャンスを得た。日経バイト2005年5月号の特集「ポスト・オブジェクト指向」の取材で,第一線で活躍するソフトウエア技術者の方々にお話を伺うことができた。そこでここぞとばかり,皆さんに意見を伺ってみた。

言葉にできない魅力がある

 得られた一つの答えが,ソフトウエア部品を結びつける“糊”の需要が高まってきているから,というもの。オブジェクト指向によってソフトウエアの部品化が促進され,コンポーネントやWebサービスなどのソフトウエア資産が充実してきた。スクリプト言語はこうした部品を手軽に組み合わせ,新しいソフトウエアを作り上げるのに適した道具である。利用できる部品が増えてきたからこそ,それを結びつける道具としてのスクリプト言語が求められているというのだ。

 なるほど,それはよく理解できる。しかし,これだけではスクリプト言語人気を説明するのには十分ではなさそうだ。スクリプト言語は,単に部品を組み立てるだけのような手軽な開発に使われているだけではない。本格的なソフトウエアの開発例は少なくない。それに,Javaのような厳格な言語を自在に使いこなして大規模な企業システムをバリバリと作っている技術者の中にも,スクリプト言語ファンは多い。彼らを惹きつけるものは,いったい何なのか。

 Rubyを愛するそんな技術者のお一人に,この疑問をストレートにぶつけてみた。その方いわく「とにかく楽なんだよなあ,Rubyでプログラミングするのは。なんでだろう。よく分かんないなあ」。

 この言葉を聞いてはっとした。この一言に,スクリプト言語が持つ魅力が凝縮されているように感じたのだ。言葉にできない何か,感覚的な「楽」さ。それこそが,スクリプト言語人気の根底にあるパワーなのではないか。

 米国のソフトウエア・コンサルタントとして名高いMartin Fowler氏のブログを読んで,その思いはさらに強くなった。Fowler氏は,自身のブログでこのように書いている。「SmalltalkやRubyでプログラムを書くと特別な満足感が得られる。それはきっと,動的型付けであることと関係があるのだろう。歯がゆいのは,動的型付け言語のメリットを,静的型付け言語のようにうまく説明できないことだ」

動的型付けは,変化に強い

 Fowler氏のブログからも分かるように,スクリプト言語の魅力を探る手がかりは,動的型付けにある。動的型付けとは,プログラムの実行時に型が決まることを示す。JavaやC#のような静的型付け言語はソースコードに型の情報が含まれており,コンパイル時にコンパイラが型の整合性をチェックする。これに対して動的型付け言語は,ソースコードには基本的に型の情報が含まれない。プログラムを実行して初めて型が決まる。

 Rubyの生みの親であるまつもとゆきひろ氏によれば,動的型付け言語のメリットは大きく三つあるという。(1)型にまつわる記述が不要なのでプログラムが簡潔になること,(2)振る舞いが似ているオブジェクトは同じ型と見なしてしまう柔軟性を持つこと,(3)実行時にクラスの情報を取得したり書き換えたりできるリフレクションが容易に実現できること,である。

 このうち,筆者が特に面白いと思ったのは(2)と(3)である。