はじめに
Kotlin on Android. Now official
こんな記事を見つけてKotlinに興味が湧きました。
Java自体は触ったことはありますが、Kotlinは触ったことも無く、Androidに関しても全く知識がありません。
遅まきながらAndroid面の技術力習得を目標に、Kotlinを使ってあれこれ試してみようと思います。
そもそもKotlinってなんだ?
コトリン、ことりん、小鳥ん?
- JetBrains社によって開発(IntelliJ IDEAの開発元ですね!)
- Javaをもっと簡潔・安全になるように改良した産業利用向け汎用言語
- JVM上で動く
- Javaと同じ速度でコンパイルされ、同じ速度で動作する
- Javaでは互換性の問題で採用出来ていない機能や、現時点では実現予定となっている機能も採用している
- Android上での開発・動作も可能
- JavaScriptへのコンパイルもサポート
- オープンソース(Apacheライセンス バージョン2.0)
- 名称の由来はコトリン島
参考・引用:Wikipedia - Kotlin
じゃあJavaとの違いは?
以下の記事が分かりやすかったです。
とりあえずの環境面
別になんでも良かったのですが、とりあえずIntelliJ IDEA
をIDEとして使うことにしました。
IntelliJ IDEA - The most intelligent Java IDE
IDE上で完結させるのであれば(多分?)不要かもですが、
コマンドラインでコンパイルしたい人は以下を参考にKotlinコンパイラを入手しておきましょう。
Kotlin - Working with the Command Line Compiler
お決まり
HelloWorld
は各自でやってみましょう。
Kotlinのチュートリアル見て真似すれば簡単です。
(Eclipseやコマンドラインでのコンパイル方法も記載あるのできっと大丈夫でしょう)
Kotlin - Getting Started with IntelliJ IDEA
折角なので
内容比較
Javaで書いたHelloWorld
と比較してみましょう。
public class HelloWorld {
public static void main(String args) {
System.out.println("Hello World!");
}
}
fun main(args: Array<String>) {
println("Hello World!")
}
元々短いコードなので、そこまで大きく変わってはいませんが、記述量が減っていますね。
他にもアクセス修飾子が無くなっていたり(デフォルトでpublic
)、fun
ってキーワードがあったり、型・変数のシンタックスが変わっていたり、println
がそのまま書けたり、セミコロン(;)が無かったり。
実行してみる
コンパイルして出来た.class
ファイルを実行してみます。
$ kotlin HelloWorldKt
Hello World!
逆アセンブルしてみる
.class
ファイルを逆アセンブルしてみます。
$ javap HelloWorldKt
Compiled from "HelloWorld.kt"
public final class HelloWorldKt {
public static final void main(java.lang.String[]);
}
javaっぽいですね。
javaコマンドで実行してみる
kotlinランタイムを含めた形でjar
を作成してあげると、なんとjava -jar
コマンドで実行することが出来ます。
これならJREのみの環境でも動かすことが出来ますね。
$ kotlinc -d HelloWorld.jar -include-runtime HelloWorld.kt
$
$ ls
HelloWorld.jar HelloWorld.kt
$
$ java -jar HelloWorld.jar
Hello World!
次回(?)
今回は大したことも出来ませんでしたので、次回から徐々に基本的な構文から学んで行きたいと思います。
最終的にはアンドロイド的な何かが作れると良いですね。(いつになるかな)
以上