Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Renaissance meets Kotlin #428

Open
zavidnyi opened this issue Nov 6, 2023 · 0 comments
Open

Renaissance meets Kotlin #428

zavidnyi opened this issue Nov 6, 2023 · 0 comments

Comments

@zavidnyi
Copy link

zavidnyi commented Nov 6, 2023

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:

  1. 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.
  2. 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant