「Xtend(エクステンド)」「Kotlin(コトリン)」「Ceylon(セイロン)」――。この3つのキーワードの共通点がわかるだろうか。一見すると、どこかの地名なのではないか、と思うかもしれない。しかし、これらの共通点は地名ではない。3つとも、ここ2年で登場した新しいプログラミング言語の名称だ。

 この3つのプログラミング言語は、Javaプログラムの実行環境であるJava仮想マシン(以下、JVM)で動く、いわゆる「JVM言語」の部類に属する。JVM言語のコードは、コンパイルすると、JVMの上で動かせる「クラスファイル」になる。つまり、Javaでプログラムを記述する代わりにJVM言語で処理を記述し、JVM上でJavaプログラムと同じように実行できるわけだ。さらに、世の中にある膨大なJavaライブラリもJVM言語で利用できるようになる。

 近年、JVMをJavaプログラムの実行環境ととらえるのではなく、Java以外の言語も動かす「プログラムの実行環境」として利用する例が増えている。冒頭に挙げた3つの言語も、JVMをプログラムの実行環境として利用する新言語だ。なぜ、このようなJVM言語がいくつも登場したのだろうか。

Javaではつらい

 言うまでもないが、Javaはありとあらゆるシステムに採用され、世界中で最も使われているプログラミング言語の一つだ。しかし、Javaのコーディングは煩わしいと感じてしまうことが多々ある。例えばプログラムが冗長な点だ。

 しかし、Javaの冗長なプログラムは、JVM言語を使えば劇的な改善が期待できる。Scalaを使った例を紹介しよう。