Probably more importantly, it runs on the JVM and is designed to interoperate with existing Java code. (FWIW, I actually think they made a major mistake in how they handle null Java objects, and that Kotlin did better here; but Kotlin is much newer.)