> Kotlin is an unmaintainable soup of features
Are you sure you're not confusing Kotlin with Scala?
> For example, Kotlin has null safety and it lets you write code using errors-as-values style "either" types - but it has two completely separate syntaxes for these things, and so it's impossible to interoperate or reuse code between those two approaches
And that is a problem how? Stick to one style.
> In practice Kotlin codebases still use magical incomprehensible reflection (Spring Boot)
https://github.com/spring-projects-experimental/spring-fu/tr...
> and magical compile-time manipulation (Kapt)
There's nothing magical about it.