かまたま日記3

プログラミングメイン、たまに日常

EmbulkのプラグインをKotlinで書く

embulk-input-remoteをKotlinで書き直したv0.3.0をリリースしました。

Kotlinは4年ほど前に会社のレポートでちょっと調べたままで知識が止まってましたが、最近はAndroidやサーバサイドの事例も多く出てきたので勉強がてらやってみるかなと思い試してみました。

結果

Kotlin、イイね 👍

積極的に使って行きたくなりました。

良かったところ

Javaとの相互運用性高い

  • KotlinからJavaライブラリ、JavaからKotlinライブラリどちらも透過的に呼べるので、混在させやすい(移行がしやすい)

導入が簡単

Javaで不便なところが解消されてて簡潔に書ける

  • embulk-input-remoteでは行数が 33% 減りました*2
  • アクセサ, equals, hashCodeなどのboilerplateが省略可能
  • (比較的) Null安全
  • 型推論があるので、型を明示する機会が減る
  • Function as first class object
    • Embulkプラグインは匿名クラスの利用が多いので助かった
  • コレクションの便利メソッド*3

不明点

パフォーマンス (vs Java)

実際測ってないので、断言はできませんが、 以下のリンク*4を見る感じそんなにオーバーヘッド的なのは無いのでは、という期待を持ってます...w ttps://www.reddit.com/r/Kotlin/comments/3ddj8w/what_is_the_performance_of_kotlin

*1:たまにエラーになることもあるけどちょっと修正すればたいてい大丈夫

*2:約430行から290行

*3:map, filterなど

*4:h抜きなのはなぜかフルのURLを貼ると投稿に失敗するので