There's lots to love about Kotlin, but I think the killer feature is having nullability baked into the type system. I can't count how many times I've been saved from *runtime* errors by catching unsafe usage of a nullable variable at *compile time* in Kotlin.
Sadly, unlike many other features I got to use in Kotlin before they made their way to Java, I don't think we'll ever see this in Java. Seems too difficult to do in a backwards-compatible way.