Kotlin is a general purpose, open source, statically typed “pragmatic” programming language for the JVM and Android that combines object-oriented and functional programming features. It is focused on interoperability, safety, clarity, and tooling support.
At first glance, Kotlin looks like a streamlined version of Java. It is that, but it’s also a full-blown functional programming language, with higher-order functions, anonymous functions, lambdas, inline functions, closures, tail regression, and generics. And it’s still an object-oriented language, which makes porting Java classes simple.
Kotlin was designed to eliminate the danger of null pointer references and streamline the handling of null values. It does this by making a null illegal for standard types, adding nullable types, and implementing shortcut notations to handle tests for null.
— Martin Heller