読者です 読者をやめる 読者になる 読者になる

Kotlinがこの先生きのこるためにやるべきだと思うこと

この記事はKotlin Advent Calendar 2014の22日目の記事です。

今回のAdvent Calendar用に技術的なネタを用意してましたが、既に用意していたものが色々被ってしまったため路線変更します。

Kotlinとは

Kotlinって何ぞやって人もいるかと思いますが、Advent Calendarにも記事がたくさんあるしめんどくさいので説明は省きます。ゆるいBetter Javaという表現が一番ふさわしいのではないでしょうか。

サイバーエージェントにおけるKotlin

ちなみに弊社において調べてみました。

GitHub enterpriseで「Kotlin」で検索

Repository:0件 Code:1件(ちなみにJavaScriptの配列の1要素としてヒットした('A`))

Confluence「Kotlin」で検索

意外にも弊社の研究レポート(テックレポートという)でKotlinのレポートで2件ヒットした。内容はKotlinの入門的内容で、まだまだマイナーではあるものの言語としては高評価された内容でした。弊社のエンジニアも、ScalaやGroovy以外のBetter Javaの選択肢を探っていることが伺えます。

正直、AndroidのBetter Javaの選択肢としてヒットするかと思ってました。んー、これは弊社Androidクラスタは今後もJavaでいいと思ってるんでしょうか。iOSswiftが来てるというのに・・・。

ScalaクラスタからみたKotlin

Scalaは非常に強力な言語で、今や採用事例も数えきれない程あるJVM系言語の筆頭格です。そんな自分もScalaクラスタの一人であります。そのような立場からKotlinをできる限り客観視してみると・・・

  • Scalaほど強力ではないが、生産性の面で十分な仕様を満たしている
  • Jetbrainのサポートがあるので安心感ある
  • 学習コストはScalaよりだいぶラク
  • Gradleでビルドできる
  • コンパイルScalaより速い。(ただし、Scalaは新コンパイラdottyの登場が噂されている)
  • 圧倒的に人口が少ない
  • Scala人材が少ない場所で採用するか?と言われたら、正直しない気がする。今ならJava8を選ぶ気がする。自分は良くても、抵抗感がある気がするので、やるとしたら気合入れて布教したり、上を説得したりする必要がある。
  • Androidにおいては、コンパイル速度の面などからScalaより有望だと感じている

この先やるべきじゃないかと思うこと

やはりAndroid開発における有望な選択肢として名乗りをあげるべきじゃないかと考えます。正直、Scalaの良い部分をたくさん取り込んでますが、同じ土俵で戦うのはかなり厳しいと思われます。

ただ、Go1.4がAndroidサポートしたりという動きがあるので、Androidにおいてもそうのんびりしてられない気がしますね。

Kotlinは良い言語ですが、良くても盛り上がらないと消えてしまうので、個人的にはまずはAndroid開発での定着の可能性を探っていきたいです。あとは、Scalaちゃんのような偶像つくってバズらせるのもいいですね。