背景・スキルなど
クライアントサイドの開発(6割)
サーバーサイドの開発(4割) - Ruby On Rails - NodeJS(Express系)
サーバーサイドは、Java/Kotlinともに未経験であり、SpringBootなど名前くらいは知っていますが、特性などは何もわかりません。
サーバーサイドKotlinを選んだきっかけ
普段は比較的小 ~ 中規模のアプリケーション開発が多く、APIのWebインタフェースには最近graphQLを用いることが多いです。しかしながら、バックエンドでTypeScriptを使用していると、シンタックスが弱く冗長な書き方をすることが多く、ストレスを感じていました。
Android開発ではKotlinを使用しており、言語の特性は理解していますが、Kotlinは最近のモダンな機能を概ね網羅しており、ストレスなく書くことができると考えたかというのが理由です。
Webアプリケーションの選定
Webアプリケーションのフレームワークとしては、有名所としては以下のようなものがあります。
JVM系ということでJavaの資産が使えるため、もっと沢山ありそうですが、さっと調べた感じはこのあたりでした。 Spring BootはJava時代からの大御所ということで、情報にこまることはなさそうですが、個人的にJavaのコードを多く有している、Javaのシンタックスに引っ張られているというのは少し気になります。
Kotlin実装のものでJetBrains製ということもあり、Ktor
を第一候補をして考えています。
GraphQL ライブラリの選定
GraphQLのパース等を時前でやるのは大変なのでこの辺のライブラリも使うのが一般的だと思います。
こちらはあまり数がなさそうですが、この辺が利用者が多そうです。
他にもgraphql-javaというJavaベースのものが存在していますが、graphql-kotolinは、graphql-java
依存のライブラリなのでこちらは選択肢には含めませんでした。
選択というほど選択ではないですが、包括機能を考えると、graphql-kotlin
が良いかなと思いました。
まとめ
とりあえず、JVM系(コンパイル言語系)のサーバーサイドははじめてなので、未知数ではありますが、
- webフレームワーク: ktor
- graphqlライブラリ: graphql-kotlin
この辺を使って、サーバサイドKotlinを勉強したいと思います。