I’m curious what your experience was. I liked Kotlin for the almost one to one conversion from Java. However, I still “think in Java”, the key things that I found good in Kotlin are
- compile time null checking (in a way it forces you to think about it)
- lack of checked exceptions since it reduces boilerplate code.
However, null
checking is usually something I would think about regardless, but that just comes with experience.
Checked exceptions may be annoying, but a lot of frameworks are already getting rid of it. Short of Java NIO and Concurrent which still have IOException and ThreadInterruptedException. There are still a lot of old baggage but those aren’t too bad to deal with once you know how. It could be worse that you didn’t think about it and at run time it just bombs the whole request. But then it is also worse when you have less experienced developers catching the exception and not doing anything with it or not chaining it up.
At the moment, my main qualm with Kotlin is tooling support, specifically in Eclipse with WTP which provides Java EE support. I guess it’s a way for us to be forced to pay for IntelliJ Ultimate Eclipse + Maven(M2E) + WTP with Kotlin
Because of the tool limitation and that also applies to almost every other JVM language not just Kotlin, I usually end up with Java because it is tested better.