Scalaは、スイス連邦工科大学ローザンヌ校のMartin Odersky(マーティン・オーダスキー)教授率いるチームが開発しているプログラミング言語です。オープンソース(BSDライセンスに似たSCALA LICENSE)で開発・公開されており、その範囲内で自由に利用できます。最初に、“なぜ、Scalaの人気が高まっているのか”を説明します。

オブジェクト指向と関数型の特徴を備える

 Scalaは、オブジェクト指向に加えて関数型言語の特徴を備えた比較的新しい言語です。この、“オブジェクト指向に加えて”というのがポイントです。新しいパラダイム(問題解決のための考え方)を、従来のパラダイムに重ね合わせていることから、マルチパラダイムの言語ともいわれます。

リスト1●同じ内容のクラスのScala版とJava版
リスト1●同じ内容のクラスのScala版とJava版
[画像のクリックで拡大表示]

 ちなみにScalaという名前は、Scalable Language(拡張性のある言語)の短縮形です。そのスケーラブルという言葉には、「小さいプログラムも大規模なプログラムも同じ概念で記述できるべきである」という、柔軟性や拡張性を重視した言語設計の意図が込められています。

 Scalaは、関数型言語の機能を取り込むことで、簡潔かつ明瞭でバグ(不具合)を生みにくいコーディング、言語の拡張性、並行処理向きなど、オブジェクト指向とは異なる特徴を持っています。簡潔な表現の一例として、同じ機能のクラスをScalaとJavaで書いたコードをリスト1に示します。

Javaの資産を生かせる

 Scalaは実行環境にJava仮想マシン(Java VM)を利用するため、ScalaプログラムからJavaプログラムが利用できるなどJavaとの親和性が高いのも大きな特徴です。Javaプログラマにとっては、オブジェクト指向の知識を生かしつつ関数型言語の考え方をスムーズに取り入れながら、Javaの資産も利用できるわけです。

 こうして見てくると、JavaプログラマがScalaに注目するのも当然のように思えてきませんか。Scalaは、Javaプログラマが次に学ぶに値する言語です。より品質の高いプログラムを書けるようになるためにScalaの知識はきっと役立ちます。早速、開発実行環境を整備して、Scalaのプログラミングスタイルを見ていきましょう。