Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
24
Help us understand the problem. What is going on with this article?
@devneko

KotlinはAndroidだけじゃない。サーバーサイドKotlinの波もきっと来る。

More than 3 years have passed since last update.

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についても評価してくれる方が増えることを願っています。

24
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
devneko
フリーのプログラマです。 ウェブシステム開発、スマホアプリ開発にフルスタックで対応可能です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
24
Help us understand the problem. What is going on with this article?