For the JVM, it compiles to Java bytecode and it’s completely interoperable with Java. This means you can write Kotlin and Java in the same project and they’ll work hand in hand. Intellij (Jetbrains IDE for Java) even allows direct conversion of Java code to Kotlin.
For a lot of developers, it’s become a language that remedies a lot of problems that have plagued Java for a while. Since Java was built a long time ago, it lacks some built in language features (Which languages like C# have) that make Asynchronous development easy. It’s not the most concise language either.
Java and the JVM are battle-tested but there are a lot of modern features languages like C# and Python offer that’ll make Java developers jealous. Developers these days want to type less characters and still accomplish more (We’re greedy like that).
It’s become especially useful to Android developers as features like extension functions have allowed developers to write useful abstractions (see) that make code much more concise and readable. The features it offers made an increasing number of developers start building apps with it even way before Google made it an officially supported language for Android development. The number of developers gravitating towards it may have even forced their hand.
There are a lot more features and I could start writing about them but that’ll make for a really long post. There’s a lot of content on the internet surrounding the language and they shouldn’t be too hard to find.
In terms of language features, Kotlin hardly brings anything new to the table. It just found a way stir up a perfect mix. Since i found it, I’ve been looking for ways to put it where I’d normally put Java.
Java finally has a child with Python and that kid can do everything Java does, plus a few more super powers.