Skip to content

サーバーサイドにおけるKotlin

Kotlinはサーバーサイドアプリケーション開発に非常に適しています。既存のJavaベースの技術スタックとの完全な互換性を保ちながら、簡潔で表現力豊かなコードを書くことができ、学習曲線も緩やかです。

  • 表現力: Kotlinの革新的な言語機能、例えば型安全ビルダーデリゲートプロパティのサポートは、強力で使いやすい抽象化の構築に役立ちます。
  • スケーラビリティ: Kotlinのコルーチンのサポートは、控えめなハードウェア要件で多数のクライアントにスケールするサーバーサイドアプリケーションの構築に役立ちます。
  • 相互運用性: KotlinはすべてのJavaベースのフレームワークと完全に互換性があるため、慣れ親しんだ技術スタックを使用しながら、よりモダンな言語の利点を享受できます。
  • 移行: Kotlinは、大規模なコードベースをJavaからKotlinへ段階的に移行することをサポートしています。システムの古い部分をJavaのままにしながら、新しいコードをKotlinで書き始めることができます。
  • ツール: 一般的な優れたIDEサポートに加え、KotlinはIntelliJ IDEA Ultimateのプラグインにおいて、(例えばSpringやKtor向けの)フレームワーク固有のツールを提供しています。
  • 学習曲線: Java開発者にとって、Kotlinを始めるのは非常に簡単です。Kotlinプラグインに含まれる自動Java-to-Kotlinコンバーターは、最初のステップを支援します。Kotlin Koansは、一連のインタラクティブな演習を通して主要な言語機能を案内します。KtorのようなKotlin固有のフレームワークは、大規模なフレームワークの隠れた複雑さなしに、シンプルで分かりやすいアプローチを提供します。

Kotlinによるサーバーサイド開発のためのフレームワーク

以下に、Kotlin向けのサーバーサイドフレームワークの例をいくつか示します。

  • Springは、バージョン5.0からKotlinの言語機能を活用して、より簡潔なAPIを提供しています。オンラインプロジェクトジェネレーターを使えば、Kotlinで新しいプロジェクトを素早く生成できます。

  • Ktorは、JetBrainsが開発したKotlinでWebアプリケーションを作成するためのフレームワークで、高いスケーラビリティを実現するためにコルーチンを活用し、使いやすく慣用的なAPIを提供します。

  • Quarkusは、Kotlinの使用に対するファーストクラスのサポートを提供します。このフレームワークはオープンソースであり、Red Hatによってメンテナンスされています。QuarkusはKubernetes向けにゼロから構築されており、増え続ける数百もの優れたライブラリを活用することで、まとまりのあるフルスタックフレームワークを提供します。

  • JVM上でリアクティブなWebアプリケーションを構築するためのフレームワークであるVert.xは、完全なドキュメントを含むKotlin向けの専用サポートを提供しています。

  • kotlinx.htmlは、WebアプリケーションでHTMLを構築するために使用できるDSLです。 これはJSPやFreeMarkerのような従来のテンプレートシステムに代わるものです。

  • Micronautは、モジュール式でテストしやすいマイクロサービスやサーバーレスアプリケーションを構築するための、モダンなJVMベースのフルスタックフレームワークです。多くの便利な組み込み機能が付属しています。

  • http4kは、純粋なKotlinで書かれた、Kotlin HTTPアプリケーション向けのフットプリントの小さい関数型ツールキットです。このライブラリは、Twitterの「Your Server as a Function」という論文に基づいており、HTTPサーバーとクライアントの両方を、組み合わせ可能なシンプルなKotlin関数としてモデリングすることを表しています。

  • Javalinは、WebSockets、HTTP2、非同期リクエストをサポートする、KotlinおよびJava向けの非常に軽量なWebフレームワークです。

  • 永続化のための利用可能なオプションには、直接JDBCアクセス、JPA、およびJavaドライバーを介したNoSQLデータベースの使用が含まれます。 JPAの場合、kotlin-jpaコンパイラプラグインはKotlinでコンパイルされたクラスをフレームワークの要件に適合させます。

https://kotlin.link/でより多くのフレームワークを見つけることができます。

Kotlinサーバーサイドアプリケーションのデプロイ

Kotlinアプリケーションは、Amazon Web Services、Google Cloud Platformなど、Java Webアプリケーションをサポートする任意のホストにデプロイできます。

HerokuにKotlinアプリケーションをデプロイするには、公式のHerokuチュートリアルに従うことができます。

AWS Labsは、AWS Lambda関数を記述するためのKotlinの使用を示すサンプルプロジェクトを提供しています。

Google Cloud Platformは、KotlinアプリケーションをGCPにデプロイするためのチュートリアルシリーズを提供しており、KtorとApp Engine向けとSpringとApp Engine向けの両方があります。さらに、Kotlin Springアプリケーションをデプロイするためのインタラクティブなコードラボもあります。

サーバーサイドでKotlinを使用している製品

Cordaは、主要銀行にサポートされ、完全にKotlinで構築されたオープンソースの分散型台帳プラットフォームです。

JetBrainsにおけるライセンス販売および検証プロセス全体を担うシステムであるJetBrains Accountは、100% Kotlinで書かれており、2015年以来、大きな問題なく本番稼働しています。

Chess.comは、チェスと、このゲームを愛する世界中の何百万人ものプレイヤーに特化したウェブサイトです。Chess.comは、複数のHTTPクライアントのシームレスな構成のためにKtorを使用しています。

Adobeのエンジニアは、サーバーサイドアプリ開発にKotlinを、Adobe Experience Platformでのプロトタイプ作成にKtorを使用しています。Adobe Experience Platformは、組織がデータサイエンスや機械学習を適用する前に顧客データを一元化および標準化することを可能にします。

次のステップ