| I've been using kotlin in the backend for a few years now, in a team of more than 50 engineers. The experience is for the most part pleasing, and I'm sure you will find a lot claims supporting that, so I'll focus on the things that I don't like: * people tend to abuse some of the features (like extension functions), which sometimes does more harm in terms of readability * Kotlin offers means to do quasi-functional programming, and people tend to write horrible one liners just for the sake of it. * most tooling seems stuck in Java 8. So you are stuck in that ecosystem (you can, though, compile with Java 8 and run in java 11 of course). * for mid-sized applications where it makes sense to use DI, using kapt is sometimes a pain (it's better this days, but still I hate the thing) * even though the jetbrains support is first class, it is still considerably slower then pure Java code.
* very personal: I've come to miss Java's verboseness. * some tools don't integrate well with it (yet)... So do not expect things like static analyzers to be good or even existent. |