話題に乗っかって職場でKotlinを使い始めたのだが、Javaと比べると記述量がかなり減っていい感じである。他のJVM言語と比べてJavaのライブラリが格段に使いやすいし、逆もいける。IntelliJが異常に重くなることを除けば、ありかなぁと思わせるな。— Kei (@tk_riple) 1 June 2017
このツイートの後えらくだるだるなスプリントを過ごしたので(1スプリント=2週間)、しばらく触っていなかったのだが、今週のプランニングでメンバーから陽に「お前はKotlin使うよな?」と煽られたのでまじめに使い始めた。
書き始めて今日で4日目くらいだけど、Javaと比較してみたりする
【長所】
- 記述量が減る。無駄なゲッターとかセッター要らない
- デフォルトでLambda式が使える。(Java8な環境なら関係ないけど)
- 型推論は良いものだ
- クラスを別ファイルにしなくてもよいのは便利
- パッケージ定数とかも便利
- Javaとの親和性が高い
- 重い。IntelliJが頻繁に固まる
- Mavenの記述が面倒
- 素ではMockitoとの相性が悪い(mockito_kotlinで凌ぐ)
- Javaとの親和性が高いけど、ところどころコンパイル結果を気にする必要がある。(慣れかな)
- inlineの挙動。混乱するだろ普通…
- データクラスあるけど、パターンマッチない
- デフォルトpublic。デフォルトfinalクラス。(好みの問題)
- Companionは面倒
感想としてはJava++として使うのであれば優秀。 Kotlin的な書き方(チュートリアルにあるようなのだと信じてる)をすれば記述量がだいぶ減る(でもIntelliJが固まるので作業時間的にはトントンというのもある…)。なんだかんだで既存のJavaライブラリがそのまま使えるのはやはりうれしい。
リストとかマップとかのリテラル表記とかあったら便利だろうなぁとか、パターンマッチほしいなぁとか、なんで明示的にreturn書くんだろうとかいろいろ思うけど、今のところはJavaより楽に書けるというメリットの方が大きい感じではある。