KotlinはJVM上で動作し、JavaScriptへの変換もサポートしたプログラミング言語です。

世の中には様々なプログラミング言語が存在しますが、今回はJetBrains社が開発したKotlinを紹介します。JVM上で動作し、JavaScriptの生成も可能なコンパイラ言語です。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.58.43_thumb.1357475185.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.58.43.1357475185.png)
サンプルです。中央にKotlinのコード、下に実行結果があります。これはJavaとして実行した例。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.58.58_thumb.1357475188.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.58.58.1357475188.png)
こちらはJavaScript。生成したコードを閲覧できます。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.11_thumb.1357475192.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.11.1357475192.png)
引数を与えた例。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.38_thumb.1357475196.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.38.1357475196.png)
もちろんJavaScriptも使えます。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.49_thumb.1357475200.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 20.59.49.1357475200.png)
配列。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.02_thumb.1357475203.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.02.1357475203.png)
クラス。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.14_thumb.1357475206.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.14.1357475206.png)
迷路。

[![](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.42_thumb.1357475211.png)](http://images.moongift.jp/2013/01/Screenshot 2013-01-06 21.00.42.1357475211.png)
こんな感じの信号機デモをCanvas上に描くこともできます。

KotlinはJVMで動作させることもAndroid上で動かすこともできます。面白い点としてNullPointerExceptionを起こす可能性があるコードをコンパイル時にエラーにしたり、関数リテラルが使える、クラスの外からメソッドを追加することができます。Javaコードと相互に使用もできます。なかなか面白いプログラミング言語ではないでしょうか。

KotlinはApache License 2.0のオープンソース・ソフトウェアです。

MOONGIFTはこう見る

現在、様々なプログラミング言語が相互に利用できるようになったり、VM上で動作できるように開発が進められています。Rubyで言えばJRubyがあり、IronRubyのように.NET Framework上で動作するようにしているものもあります。さらにDartやTypeScriptなどJavaScriptへ変換するプログラミング言語もあります。

その意味では一つの言語さえ知っていれば良いという時代ではなくなっていると言えます。色々な言語の特性を知り、それに合わせて使い分ける能力が必要です。とは言え全ての言語を覚えるのは不可能な訳で、Kotlinのようなメタ化してくれるプログラミング言語の存在はとてもありがたく、注目に値すると言えます。

Kotlin

Kotlin Web Demo

JetBrains/kotlin · GitHub