Lightweight Language(LL)という言葉を目にすることが増えてきた。主にスクリプト言語を総称する言葉として使われるが,必ずしもその意味だけではない。「人間にとってLightweightな言語」なら,LLを名乗る資格がある。すなわちプログラマにとって学びやすく,利用しやすい言語という意味である。処理系のサイズの小ささや処理速度の速さとは関係ない。
LLに対するプログラマの関心が,このところ高まっている。それをよく物語っていたのが,2005年8月27日に開催されたイベント「LLDN(Lightweight Language Day and Night」だ(写真[拡大表示])。LLの開発者やコミュニティ,ユーザーが一堂に会し,300人を超える参加者で会場は満席となった。
LLDNに登場した言語は多種多様。Perl,Ruby,PHPなどのスクリプト言語の定番はもちろん,Smalltalkから派生したSqueak,関数型言語のMLなど10種類の言語がその存在をアピールした。まず各言語の有識者やコミュニティの代表者が登壇し,それぞれの最新動向を紹介。その後は同じ機能を実現する各言語のソースコードや,各言語用のWebアプリケーション構築用フレームワークを比較するなどのセッションがあった。そんな中で特に目を引いたのは,関数型言語の勢いだ。
Perl次版をHaskellで開発
複数のセッションで取り上げられたのが,関数型言語の一つHaskell(ハスケル)で開発されたPerl6のインタプリタ「Pugs」。台湾出身のAutrijus Tang氏が,2005年2月に公開したものだ。「まれに見る天才的プログラマで,1カ月でHaskellを習得し,次の1カ月でPugsを開発した」(タイムインターメディアの山下伸夫氏)。Haskellプログラマにとって大きなトピックの一つとなっている。
さらにPugsは,Perlの開発者たちにも衝撃を与えた。Perl6は現在広く使われているPerl5の次版として「perl.org」で開発が進んでいるが,進捗は思わしくない。2000年におおよその仕様が固まったにもかかわらず,2004年の段階であと数年かかると言われていた。その状況を,Pugsが変えた。Pugsに先を越されたことで「perl.orgの開発者のお尻に火がついた」(Perlの発表をした小飼弾氏)。現在では,2006年にはPerl6の最初の公開が可能になるとの予測も出ているほどだという。
Webアプリの開発を容易に
もう一つ会場から大きな拍手を浴びたものに,Gauche(ゴーシュ)(Scheme処理系の一つ)のWebアプリケーション・フレームワーク「Kahua(カフア)」がある。言語の特性を生かして,ほかにはないいくつかの利点を持っている。
その一つが,HTMLデータを簡潔に記述する方法を用意していること。Lispにおけるデータ記述方法である「S式」を使って,HTMLデータを記述する。S式はかっこを使って,リスト構造のデータを表現する。かっこを入れ子にすることで,ツリー構造を持つデータを表現できる。Kahuaはこれを,HTMLデータの表現に生かした。タグの開始と終了をかっこで示し,その中に表示させるデータを記述する(リスト[拡大表示])。「HTMLデータをソースコード中に記述すると30%くらいがタグになる。これでは読みにくく,編集もしにくい」(タイムインターメディアの柴田知久氏)。Kahuaは,この問題を軽減してくれる。