The Kotlin vs Java issue

Published on

While doing some reading on how Kotlin fits into current software architectures, I noticed something going on with Kotlin promotion as a modern and powerful programming language, something that I find myself totally disagreeing with. That is:

Kotlin, mainly by means of most of its community and advocates, tries a little too much to be better than Java instead of winning its own piece of pie. By doing this it will be doomed to always be associated with Java and never find its own personality, thus will always dwell in Java’s shadow.

Even if the following words make up to sound as a rant against people promoting Kotlin, please note that this is not the case. I think Kotlin advocates do a tremendous job, but I also think that avoiding always making Java parallels will greatly benefit Kotlin’s reputation. Also, this text is not meant to judge any programming language but it is meant to present an opinion on how Java parallels will hurt Kotlin on the long run.


There are tones of articles, videos and just plain old comments available that depict topics like “Why is Kotlin better than Java”, “Kotlin vs Java” or “Kotlin over Java for Android/backend development”. This media presents in more or less detail how Kotlin is a much more superior language than Java (and just from time to time, how Java is dead and Kotlin is its killer). This is not only ok but also great as it brings focus to the language itself, as long as they’re stating facts. We know (or at least should know) what to expect when we start reading such articles.

But when articles with names like “Why choose Kotlin for backend development” depict the same Java differences as the only reasons why Kotlin should be chosen, that’s when I think we start having issues. In fact, one of the things I see most often goes somewhere along the lines: “Kotlin should be used for backend development because it reduces the boilerplate code of Java”. I think this is either a wrong approach or a useless article written for the sake of being written.

Kotlin is Kotlin

First of all, there is a place and time for the Kotlin vs Java discussion. Why devs or organizations should choose Kotlin is not always about Java, but about Kotlin itself.

It is certainly true Kotlin is built on the foundation of Java technologies, and it is designed to be fully interoperable with Java code, so it’s only natural for this connection to be pointed out. However, Kotlin is a fully-fledged programming language in its own right, with its own unique capabilities and features. It is not just a modified version of Java or a “Java dialect”.

So, while it is helpful to understand that Kotlin is based on Java and can be used in conjunction with Java code, it is also important to recognize that Kotlin is a standalone language with its own strengths and capabilities. An example of such a feature is Kotlin’s coroutines that allow asynchronous and non-blocking code, improving the overall performance of backend systems. Moreover, Kotlin offers other features that make it a great choice for backend development, such as its support for functional programming paradigms, its extension functions and properties, and its null-safety features. All of these features make Kotlin a powerful and flexible language that can be used for a wide range of backend development tasks.

Kotlin vs others

Comparing programming languages is not a bad thing. When being in doubt about what programming language to chose, such comparisons may be very useful. Furthermore, it’s important to acknowledge that Kotlin doesn’t exist in a vacuum. While it is essential to recognize Kotlin’s standalone strengths, it is also necessary to consider how it stacks up against other programming languages.

But this comparison should revolve around the scope of the development, not the technology itself. For example, if speed is very important and the choice is between Kotlin and Python, one may chose Kotlin.


So, while it’s important to acknowledge Kotlin’s connection to Java, it is equally important to recognize that Kotlin is a standalone language with its own unique capabilities and strengths. By focusing solely on how or why Kotlin is better than Java, Kotlin risks becoming just a Java alternative, rather than a flexible and powerful in its own right.

Therefore, when promoting Kotlin, it’s important to highlight its unique features and capabilities, and to emphasize how it can help developers solve specific problems or achieve specific goals. By doing so, Kotlin can establish its own identity and reputation and become a language of choice for developers who are looking for a powerful, flexible, and modern programming language.