While being interoperable, Kotlin code is far superior to Java code. Like Scala, Kotlin uses type inference to cut down on a lot of boilerplate code and makes it concise. (Type inference is a better feature than dynamic typing as it reduces the code without sacrificing the robustness of the end product). However, unlike Scala, Kotlin code is easy to read and understand, even for someone who may not know Kotlin.
Kotlin's data class construct is the most prominent example of being concise as shown in the following:
data class Employee (val id: Long, var name: String)
Compared to its Java counterpart, the preceding line has packed into it the class definition, member variables, constructor, getter-setter methods, and also the utility methods, such as equals() and hashCode(). This will easily take 15-20 lines of Java code.
The data classes construct is not an isolated example. There are many others where the syntax is concise and expressive. Consider the following as additional examples:
Kotlin's default values to function parameters save the need to overload the functions
Kotlin's extension functions can be used to add domain-specific functionality to existing classes, making it easy for someone from the domain to understand