Kotlin Server Side Adoption

Since Google’s Kotlin support announcement there has been a significant amount of coverage of Kotlin on the Android side (including adoption). Many software developer’s do not realise that Kotlin has a significant amount of adoption on the server side and that there are some big names in behind it. JetBrains did some research on Kotlin usage and found that Kotlin is mainly used in two major areas (roughly 50/50), server side and Android development.

Kotlin is not just for Android development!

Big Name Adoption

Some big name companies/organisations already provide support for Kotlin on the server side. Ever since the Google announcement more organisations have appeared to announce support for Kotlin on the server side for various libraries/frameworks and other things.

By far the biggest company (similar in size to Google) to date that supports Kotlin (before version 1.0) on the server side. Pivotal’s early adoption of Kotlin for the server side started over a year ago (long before the Google Announcement), which now a days is very widespread with Pivotal mainly using Kotlin for server side (especially web micro services) and Android development.

Kotlin support in Pivotal’s software started with Spring Boot having Kotlin included as an official option in the Spring Initializer. There is a Spring Boot interview you can listen to the in a Talking Kotlin podcast. Since then support has appeared in Spring framework 5.0, and Kotlin support was added early on in Project Reactor, which is the successor to Spring. Project Reactor also has native support for Kotlin’s Coroutines straight out of the box.

Regularly you will find Sébastien Deleuze from Pivotal’s Kotlin team hanging out on Kotlin Slack in the spring channel, which is VERY active. Pivotal support/sponsor some Kotlin projects like Spek for example. Can find a Spring Boot demo video using Kotlin here.

Widely considered to be the biggest competitor to Spring Boot/Project Reactor and has set the GOLD standard on how to support Kotlin at the library/framework/toolkit level. Originally Vert.x started out as a toolkit for reactive web application for the JVM (mainly Java APIs) in response to the rise of Node. Later on Vert.x added support for Kotlin by providing some Kotlin APIs which work with their Java APIs, complete Kotlin specific documentation (includes guides and API reference, Kotlin sample projects, and support for some advanced features (eg live code reloading).

Occasionally you will find the head of Vert.x (Jullen Viet) hanging out on Kotlin Slack in the vertx channel providing support for Vert.x users. There is a future presentation that is going to be made covering using Kotlin Coroutines with Vert.x. Highly likely that Vert.x will include Kotlin Coroutines support in the future.

An emerging option for Kotlin developers that has recently started to provide Kotlin support. New Kotlin APIs (Alpha version) will be arriving soon. Spark Java is a simple Java library for creating web micro services and nothing else which was originally based on Ruby’s Sinatra framework.

Other Adoption

Here is a list of other organisations/projects that support/use Kotlin:

  • Hexagon — A micro services toolkit written in Kotlin that is used to develop back-end web applications/APIs
  • Jackson (JSON library) — Has a specialised Kotlin module and its own official channel (jackson-kotlin) on Kotlin Slack
  • Kotlin Nebula Plugin (third party Kotlin Gradle plugin) — Maintained and developed by NetFlix
  • Gradle (major build system) — Gradle Inc are developing an alternative build DSL that uses Kotlin called GSK (Gradle Script Kotlin) which is close to a stable release
  • Kobalt (build system written in Kotlin) — Listen to the interview in the Talking Kotlin podcast
  • Corda — Used by some of the world’s biggest financial institutions (includes some of the BIG banks), listen to the interview in the Talking Kotlin podcast
  • jooby (micro web framework) — jooby 1.1.0 includes Kotlin support
  • Ktor (backend web framework for Kotlin) — One of the official Kotlin projects
  • Quasar (high level concurrency library for the JVM) — Provides Kotlin support, see the video
  • Kotlinx.html (Kotlin DSL for HTML) — One of the official Kotlin projects
  • Amazon — They provide a AWS (Amazon Web Services) Kotlin sample
  • Javalin (REST library) — Read the Kotlin CRUD REST API tutorial

Possible Adoption

Here is a list of possible organisations/projects that may support/use Kotlin in the future:

  • jOOQ (one of the top Java DB libraries) — See this article on using jOOQ with Kotlin
  • Vaadin (framework for building single page web applications) — See this article on using Vaadin with Kotlin
  • Realm (cloud DB) — There is a item in the issue tracker about Kotlin support

Conclusion

As you can see Kotlin’s adoption on the server side is significant and has a very bright future ahead. If one thing is for certain Kotlin adoption can often come from unexpected quarters that no one could have predicted. With that said it is reasonably likely Google could extend Kotlin support to some of its server side platforms/projects (eg Firebase, Google Cloud).