Some features can very well be implemented ontop of a language.
The Kotlin designers are exceptionally good at finding the minimum required language support to enable higher level libraries to enable modern software development.
09/28/2021, 11:13 AM
It's the old batteries included discussion. There's no right or wrong here, it's a design decision. Kotlin and Rust are going down the no batteries included road and try to provide an extensible language that allows anyone to extend the language in any direction. Personally I prefer this route. Go and Python are on the other side of the spectrum.
09/29/2021, 2:45 PM
Avaje Inject provides a very nice DI library using source code generation/kapt. The latest versions make me think there's not much for language integration to add.
09/29/2021, 3:09 PM
it is not kmp
09/29/2021, 3:15 PM
No, it's a Java library. If you want to make native binaries with it you'd need to use GraalVM, or run the generated code through j2k
(I personally don't have much interest in KMP for this sort of reason - too many useful libs that aren't available and you can make native binaries in other ways)
09/30/2021, 9:28 AM
the most “no batteries” of all languages has always been LISP 😉