Kotlin is an open-source, statically typed programming language backed by JetBrains. Kotlin combines OO and functional features and is focused on interoperability, safety, clarity, and tooling support. It currently targets the JVM and JavaScript, and it's an officially supported language on Android.

- Stackoverflow.com Wiki
3 articles, 1 books. Go to books ↓

Kotlin is 100% interoperable with Java. In other words, it can be used together with Java in the same project. So you can refactor parts of your Java code to Kotlin and it won't break. In addition to that, it is concise, expressive, and has great tooling.

In Java, a common way to define an object with optional constructor parameters is to use telescoping constructor pattern. When we use telescoping constructor pattern, we define a separate constructor for every set or arguments that we can use.

What exactly is a “JVM language”, what is Kotlin? Isn’t only Java meant to run on the JVM? Kotlin provides many features that aren’t available in Java such as proper function types, extension functions and data classes. How is this even possible?