これまで、Kotlinは Saint Petersburgの西30kmにあるロシアの島として、第一に知られてきた。つい最近、チェコの会社である JetBrains がJVM (Java Virtual Machine)上で走る新しいプログラミング言語、 Kotlin を導入した。言語の開発者の意図は、Java言語における、幾つかの課題を取り除くことである。
JetBrainsの製品ポートフォリオは主に、Java, PHP, Objective-C, Ruby, MPS用のIDEである。プロジェクトKotlinによって、彼らは言わば無免許の世界に入って来たわけである。
言語の開発者はこのプロジェクトの主な設計目標は、以下のことである、と強調している。
- Java互換 の言語を生み出す
- Javaより 安全な 言語にする、すなわち、 nullポインターの逆参照のような共通の落とし穴を静的にチェックする
- Javaより簡潔 にする、そのために 変数型の推論, 高階関数 (closures), 拡張関数, mixinと第1級のデリゲーション, など。
- そして表現力を有用なレベルに維持する(上記参照)、それを 最も成熟した競争相手である,Scalaよりももっと簡単な方法で。
JetBrainsによると、新しい言語は静的に型附したオブジェクト指向であり、JVMをターゲットにし、産業使用のために作られ、Javaで後方互換のために存在する問題や課題を取り除いている。
例えば、型システムがNull参照をコントロールするため、Kotlin にはNullポインター例外は必要ない。Kotlinには生の型は無い、配列は不変であり、ジェネリックは実行時でさえ型安全である。更に、インライン化を使ってクロージャを最適化できることをサポートする。そして、多くの言語設計者が悪いフィーチャと考えているチェック済例外はサポートしない。本質的な側面はKotlinとJavaの相互運用性である。KotlinはJavaを呼べるし、JavaもKotlinを呼べる。
以下のコード片は簡単なオブジェクト指向の「 Hello World」をKotlinで実装したものです。もっと多くの例が JetBrainsから出ている。
class Greeter(name : String) { fun greet() { println("Hello, ${name}"); } } fun main(args : Array<String>) { Greeter(args[0]).greet() }
他にも幾つも言語が己こそがJavaの妥当な代替言語だ、と考えている。特に、 Scala, Fantom, Groovy, Gosu, Ceylonは当然の競合相手であり、Scala とGroovyが一番人気のあるディストリビューションになっている。
現在、Kotlinが他の言語と比べてどうか、という議論が Fantom webサイトや Scalaユーザーグループのような様々なディスカッショングループで(時には激しい)たくさんの議論がされている。
どれだけのソフトウェア開発者がKotlinを一番使いたい言語として選ぶかは、今後見ていく必要がある。少なくと、多くの開発者の反応を見ると、Kotlinは少なくとも次の新しい格好いい言語のレースに参加してきたことは、確かである。
今年の終りには、公開ベータ版がリリースされる予定である。報道によれば、オープンソースのコンパイラーと IntelliJ IDEAのプラグインがApache 2 ライセンスの下でリリースされる予定である。コンパイラーは最初Javaのバイトコードを生成するが、JavaScriptを生成するKotlin版も出てくるらしい。