bussorenre Laboratory

bussorenre Laboratory

kotlin を始める

最近、Android 界隈でKotlin という言語が流行ってるらしい。というくらいには老害になってきたのであるが、とにかくkotlin を始める。

Android で正式に採用されたらしい。という情報だけだったら多分さわりもしなかったんだけど、どうやらこいつは、JVM 上で動くだけでなく、js, native コードにコンパイルしてくれるらしい。それ凄くない???

開発元はJetBrains. Intelli J Idea とか作ってるすごい所。 ということで、今回はkotlin はIntelliJ Idea で触ることにした。

多分すごい爆速でコード書けそうめう。

公式 : https://kotlinlang.org/ OSS : https://github.com/JetBrains/kotlin

kotlin はネイティブコードを生成できる(らしい)が、kotlinを動作させるには、JVM環境が必要。最新版は 1.2 @ 2017/12/20時点

じゃぁ、取り急ぎハローワールドから。 jvm で実行する、js で実行する、ネイティブで実行する、 の3つを実装する。(多分コードは変わらないと思うけど)

kotlin ファイルの拡張子は、kt。小室哲哉かよって思った私はもう老害。飛行機の速度かよって思ったやつはメーデー

fun main(args: Array<String>) {
    println("Hello Kotolin!!")
}

func でもfunction でもなく、fun なのか。これはちょっと嫌だなー。と正直に思った。func か、せめてfn にしてほしい感ある。 そんな事はどうでもよく。

ここで、まず見るべきは、クラス定義がない。これは一体何クラスに属するメソッドなんだ??

kotlin が吐いた生成物を見ると、Appkt.class(App.kt という名前で生成した)になっていた。なるほど。

kotlin native を使う

参考:https://github.com/JetBrains/kotlin-native

書いてあるとおりにする。

最終的には、こんな感じのコマンドを叩いて、CとかGo みたいな実行可能ファイルが生成される。 kotlinc hello.kt -o hello -opt

うーーん、kotlin でネイティブかけるのはすごい。 私個人はネイティブ原理主義者なので、ネイティブに変換できるだけで株は大上がりですね…。