KotlinがAndroidの正式な開発言語となりました。
[速報]「Kotlin」がAndroidの正式な開発言語に。開発元のJetBrainsとGoogleが「Kotlin財団」の設立も計画。Google I/O 2017
そして、サーバーサイドJavaフレームワークの大御所Springの次期メジャーバージョンSpring 5.0も正式にKotlinに対応することを表明しています。Spring 5.0 は現在RCで、正式リリースはもうまもなくです。
サーバーサイドKotlinはこれまで十分に評価されて来ませんでしたが、AndroidやSpringへの公式採用の波を受けて改めて評価される機会が増え、徐々に広まっていくと考えています。
サーバーサイドKotlinは他の言語と比べてもとてもバランスの良い選択肢です。
- Javaとほぼ同等の高いパフォーマンス
- 覚えやすく書きやすいシンタックス
- 豊富なライブラリ(Javaのライブラリが使える)
- コルーチンやnull安全な変数などモダンな言語機能
パフォーマンスが要求されるサーバーの場合、最近ではGoやNodeJSなどが使われることが多いと思います。しかし、GoやNodeJSは実際に使ってみると、独特の辛さがあります。Goは高速で堅牢ですが、Javaや一般的な軽量言語に慣れた開発者には言語機能が少なく感じられたり、標準ライブラリによるコレクション操作が弱いなどの問題があります。NodeJSは強みでもあるシングルスレッドの制約があるため、より高度な設計や複雑なコーディングを強いられます。これらに比べてKotlinのよいところは、「普通に進化している」ところです。
KotlinはGoほど特殊なシンタックスではないですし、シングルスレッドでもありませんし、関数型言語でもありません。
Kotlinには特別で突出した機能はないかもしれません。しかし、十分な言語機能とライブラリと使いやすさを備え、これといった短所がありません。短所を強いていうなら、サーバーサイドKotlinの利用者が少ないことによるエコシステムの弱さです。ただしライブラリは基本的にJavaのものが使えるため、何かを実現するためのライブラリがないといったことはまずありません。
僕自身は去年にスマホアプリ向けのWebApiサーバーとしてサーバーサイドKotlinを投入しており、既にサーバーサイドKotlinの使用は実用的でメリットがあると確信しています。この機会にサーバーサイドKotlinについても評価してくれる方が増えることを願っています。