Hacker News new | ask | show | jobs
by taesis 3129 days ago
AFAIK, it's popular on Android because it provides e.g. Java 8 stream-like functionality without needing support for that baked into ART, which is something. Additionally, it supports compilation to Javascript [3] and early support for JVM-less execution ("native") [4]. No new abstractions or ideas, though; the language designers were aiming to make something that formalized current best practices, not lay down new ones.

Beyond that, it's nothing that you couldn't cobble together without the standard Guava + Commons + Lombok + Quasar/EASync etc. libraries and plugins that you'd use on every project written in Java, as well as that terseness you mentioned that makes people excited (see Kotlin data classes [1] vs Lombok data classes [2], if/try returns values and destructuring [5], coroutine support for lightweight threading and generators [6], null safety w/o optionals and smart casting, etc. [7]).

In my opinion, it's hard to know what value those features provide without actually trying them out yourself. If you want to be certain that you're not missing something, I'd suggest writing up a little script to try out some of its features.

edit: Just noticed the other responses on this thread. It's also very useful for starting fights with Scala developers, apparently.

[1]: https://kotlinlang.org/docs/reference/data-classes.html

[2]: https://projectlombok.org/features/Data

[3]: https://kotlinlang.org/docs/tutorials/javascript/kotlin-to-j...

[4]: https://kotlinlang.org/docs/reference/native-overview.html

[5]: https://kotlinlang.org/docs/reference/control-flow.html

[6]: https://kotlinlang.org/docs/reference/coroutines.html

[7]: https://kotlinlang.org/docs/reference/null-safety.html