![【新・言語進化論】次にくる!新登場言語](/images/article/common/70X90_20071104.jpg)
【新・言語進化論】次にくる!新登場言語
第3回:オブジェクト指向と関数型を兼ね備えた「Scala」
著者: ether
公開日:2007/11/19(月)
Scalaについて
Scala(http://www.scala-lang.org/)はスイスのローザンヌ工科大学で開発されている静的型付けのプログラミング言語で、開発開始が2003年からと非常に若い言語だ。JavaVM上で動作し、オブジェクト指向(命令型)と関数型の両方を取り込んだマルチパラダイム言語である。
オブジェクト指向については、Javaの代替として申し分ないだけのクラスベースの機能を備えているほか、mix-in compositionも提供される。さらに関数型プログラミングからは、クロージャやカリー化、代数データ型、パターンマッチ、型推論といった関数型言語らしい機能を取り込んでいる。
関数型とオブジェクト指向を融合した代表的な言語としてScala以外にOCamlがある。OCamlではオブジェクト指向はあまり使われていないが、それに比べてScalaは双方の特徴をちょうどいいところで混ぜ合わせている。
またクロージャや型推論などがJavaに取り込まれつつあることを考えると、Scalaは未来のJavaを先取りしているといえるのかもしれない。
またScalaの特徴として、文法の拡張性の高さがあげられる。この拡張性はRubyで内部DSLを作る場合に近いといえる。その一例として標準ライブラリに含まれるActorライブラリがあり、これはScalaでErlang風の並列プログラミングを行うものだ。
これを使ってみるとあたかもActor用の文法が言語に組み込まれているかのようにみえるのだが、実際にはすべてライブラリレベルで拡張されている。
Scalaを使ったプロジェクト
Scalaは大学産の若い言語だが、すでに「lift web framework
(http://liftweb.net/)」のような実践的なプロジェクトが登場している。作者のDavid PollakはRuby on Rails(以下、RoR)の経験を持つ開発者で、liftはRoRの思想をScalaで実現したという意欲的なものだ。
Scalaの入手とインストール
Scalaを動作させるにはJRE 1.4以上がインストールされていることが前提となる(.NET版も存在するが、2007年11月現在公式リリースは止まっている)。Scala Downloads(http://www.scala-lang.org/downloads/index.html)のページからScalaの処理系が入手できる(原稿執筆時点での最新版は2.6.0-final)。
本記事ではWindowsを前提として解説を行う。ZIP版をダウンロードして適当な場所に展開し、その中のbinフォルダにある「scala.bat」を実行するとScalaインタプリタが起動する。後はどこからでも起動できるようPATHをbinに通しておこう。
次のページ