renaissance
renaissance copied to clipboard
Renaissance meets Kotlin
Introduction
Renaissance is quite a diverse and popular benchmarking suite for JVM, which covers Scala and Java with popular libraries and use cases. However, it lacks benchmarks for a trendy JVM language - Kotlin. This work aims to solve this issue by creating and integrating the Kotlin benchmark in the form of a simple server application using Ktor.
Why Ktor?
The benchmark goal is to utilize as much of the code in the specific language (to be precise, JVM bytecode compiled from a specific language) in the popular use case. Having that in mind, here are the reasons for the usage of Ktor:
- Most frameworks for server-client applications like Spring or Retrofit are written in Java and only provide some shortcut wrappers in Kotlin. If we write an application using such a framework, the resulting bytecode mostly comes from Java, which is not what we want. Ktor, on the other hand, is written in Kotlin, so all of the resulting bytecode would be coming from the Kotlin compiler.
- Having either a server or a client that would send/receive HTTP requests is common throughout all kinds of user and business applications - such as web, mobile, and desktop apps or some cloud services. At the same time, Kotlin is becoming increasingly popular for Multiplatform application development (where server/client code is utilized a lot), with companies like Netflix using it. That is why a server application is perfect for the benchmark.