Nice article. Now that I’ve spent some time with Kotlin, I thought I might add something you missed: debugging Kotlin is absolutely horrific and broken in about a billion ways. Here are a few:
- Setting a breakpoint in the “wrong” place causes the application to crash on launch. The “wrong” place is usually in a nested function call or a lambda. This cost me about 2 days of productivity.
- Some breakpoints just won’t hit no matter what you do to try to get them to work. This cost me several days of productivity.
- Stepping into lambda functions is a nightmarish, Kafka-esque process. You may eventually get to your code, but you have to go through 20 std lib functions first. This cost me a few days of productivity.
Even with all that said, I still love Kotlin, which should tell you how great the language is.