写真  LLDN<BR>昼の部には300人を超える参加者が集まり,会場は熱気に包まれた。
写真 LLDN<BR>昼の部には300人を超える参加者が集まり,会場は熱気に包まれた。
[画像のクリックで拡大表示]
リスト  HTMLデータを簡潔に記述&lt;BR&gt;(a)のHTMLデータを,Kahuaが用意している方式で記述したのが(b)である。かっこを利用して,ツリー構造を持つデータを表現する。Kahuaの発表をした柴田知久氏の発表資料より引用。
リスト HTMLデータを簡潔に記述<BR>(a)のHTMLデータを,Kahuaが用意している方式で記述したのが(b)である。かっこを利用して,ツリー構造を持つデータを表現する。Kahuaの発表をした柴田知久氏の発表資料より引用。
[画像のクリックで拡大表示]

 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は,この問題を軽減してくれる。