Kotlin is Not (Only) Android
Tags: android, kotlin
Published: 2019-10-28 20:58:41

> "Kotlin does for Java and the JVM what Spring did to J2EE” 
      — Spring creator at SpringRod


I have noticed that **Android** and **Kotlin** are increasingly becoming **synonyms,** especially in the minds of IT recruiters.

It's a *very* *understandable* *error.* They are doing a different job and a good recruiter is not required to know everything that we know, he needs to do his own job well. 

But it is wrong:

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/t2d0l9biyo6n9ong0ujz.png)

As you can see on this schema, Kotlin has a larger share of usage in Android than on the JVM. But since the JVM is a bigger platform, the number of Kotlin developers that do Android or something else is roughly similar.

# In the Android world, Kotlin is replacing Java

The background on this is that the Android world is becoming fast **Kotlin first.** 

Also there is a very tempting parallel with the Apple/iOS world where **Swift** is replacing **Objective C.** 

Apple is pushing Swift.

It seems that Google is pushing Kotlin in the exact same way.

Some early articles even used this parallel explicitly:

["**Kotlin, the Swift of Android**"](https://blog.gouline.net/kotlin-the-swift-of-android-d664f8997e7f)

... but it's not so simple

## Kotlin was designed for Java and the JVM, not for Android

Kotlin was created by [JetBrains](https://www.jetbrains.com/), not for Android but for Java and the JVM.

That's a big difference with Swift/iOS. 

The programmers interested in Swift and in iOS/macOS are basically the same.

On the other hand, while Android is a big platform, **Java and the JVM is an even huger platform.**

This explains neatly that while Kotlin is a big hit on Android, there are still as many or more Kotlin developers that are **not** programming for Kotlin. 

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/jhposybjpbolwbfe13qc.png)

Source: [https://www.jetbrains.com/research/kotlin-census-2018/](https://www.jetbrains.com/research/kotlin-census-2018/)

## Kotlin on Android is all about product-market fit

So why was Kotlin a big success on Android if it was not designed for it?

Simple, it's a classic example of product-market fit. 

JetBrains did not target Android developers.

Android developers world realized themselves quite clearly years ago that programming for Android was broken and needed to change. 

I wrote about it here

{% link https://dev.to/jmfayard/android-s-billion-dollar-mistake-327b %}

So Android developers were actively seeking new solutions, trying out everything until they found something that sticks. And one of those things was Kotlin.

That's the context of what you have read

> Google is now pushing Android as an official language on Android

It was not in fact like Swift which was invented and pushed by Apple for iOS developers.

Instead Kotlin was intended to replace Java, the Android developers discovered and used it first.

Then the Android Framework team decided to follow them.

**I am certainly glad they did.**

It does open new hopes for making developing for Android less painful. 

And also it made the signaling much easier. 

This is why dear recruiters you have heard the message that it was OK to use Kotlin in Android.

But in fact it was totally OK even before this was announced.

# The Java/JVM world is in a very similar position today

Today it's perfectly OK to use Kotlin on the JVM.

It's just that as an IT recruiter you may not be told explicitly to recruit for Kotlin backend developers.

I propose this rule of thumbs:

> **if** Java is a good solution to a given problem, 
**then** Kotlin is a great solution to the same problem

In particular Kotlin is a great choice for backend developers. 

It has its own very interesting native frameworks.

- https://ktor.io/
- https://www.http4k.org

And also it is pushed by the Big Guys from Spring and Spring Boot

{% youtube j2OEtSO2gvM %}

Kotlin coroutines are changing the game because you don't have to choose between simple code and non-blocking code anymore. Why not both?

{% speakerdeck 24436c7d39c44bb0b58556438db9f905 %}

# Recap

- There is a lag between when developers start using a technology and when recruiters are told to hire for that technology
- Android is becoming Kotlin first and 50% of Kotlin developers do Android
- The Kotlin+Android devs are highly visible and hard to find. If I were looking for an Android developer, I would focus on good Android developers that are currently using Java. Those can be more easily to learn Kotlin. Learning Android on the other hand is hard.
- Keep in mind that 50% of Kotlin developers do something else than Android. Those people gets a lot of job offers for doing Android and are getting annoyed by it. So if your company is Kotlin-first on the backend, you may want to do more marketing about it.