1. Concise
Drastically reduce the amount of boilerplate code you need to write.
2. Expressive
Write code to express intent as opposed to surfacing implementation details.
3. Safe
Avoid having to work with pesky null reference exception checks.
4. Versatile
Suitable for any type of application. Even for sharing code between JVM/JS.
5. Interoperable
Leverage existing frameworks and libraries of the JVM with 100% Java Interoperability.
6. Tooling
Command Line Compiler or First Class IDE Support. Freedom to choose.