ここ1ヶ月ほどScalaというスクリプト言語をいじっているが
これが非常によろしい言語である。何がよろしいかというと
関数型言語オブジェクト指向言語が合体しているだけでなく、
理論と実践がほぼ完璧といってよい具合に融合しており
現在考えられるホボリの言語といってよいのではないだろうか。
(ホボリとは今考えた、「ほぼ理想」という意味の略語である)


特徴
Scalaは純粋なオブジェクト指向言語なので、すべての値はオブジェクトである
Scala関数型言語なので、関数は値でもあり、したがってオブジェクトである
・強い型付けをされた言語だが、OOと融合した関数型言語として妥当な型理論に基づいて設計されており、型推論のおかげで値は最小限宣言すれば事足りる
・当然、関数引数や高階関数、カリー化等が行えるだけでなく、関数型言語の特徴として、強力なパターンマッチングの機能がcaseクラスというアイデアと融合してうまく機能する
・ベースとして採用した型理論に基づいてクラス概念を拡張したTraitやパラメータ化クラスやタイプ変数により、オブジェクト指向のモジュール化能力を極限にまで追求している


実践的な点
JVMの上で実行される
・すべてのJavaのクラスがScala内で簡単かつ自然に利用できる
・パターンマッチの機能でパーザが簡単に記述できるだけでなく、XMLフォーマットのマッチング機能を融合している
JVMの上で動くので、ユニコードベースで日本語がほぼ自由に使えるため、DSLに応用するのが楽
・開発体制がしっかりしており、現在、v2.7である(2008.2月現在)
・英語ではあるが、ドキュメント類が充実している

(以下追加)
・言語処理系はインタプリタコンパイラの両方が提供され、同じ内容のJavaプログラムと実行速度はほとんど変わらないほどの実行性能である
ベンチマーク http://shootout.alioth.debian.org/gp4/scala.php


以上の点から、現時点で実用面と理論面の両面に照らして
ほぼ理想のスクリプト言語といえるのではないか、
私個人としては期待が高まっている
今日この頃である。


まずは、以下のサイトにアクセスし、処理系をダウンロードしてほしい。


http://www.scala-lang.org/