so if kotlin can bring java 8 features/improvements to a platform that is stuck on an older JVM (and not even the "true" JVM, but another implementation of it), then does that mean these features are not dependent on the runtime? If that's the case, these "java 8" features could be implemented into the Java language without needing to change the runtime?
If that is true, why are these changes not being brought to Java itself, if they can be done without a change to the runtime?
Take for example Lambdas. Android has no invokedynamic, so every lambda has to be compiled to a class with a method. Android only allows 65k methods overall per linked unit, so that quickly becomes an issue.
Kotlin, on the other hand, can do much more intelligent transformations (look at its inline functions).
I'm not sure if this is the case, but often it is _possible_ to implement something in, e.g., the stdlib, in a way that is _functional_, but with the right VM support it might be much more performant.
If that is true, why are these changes not being brought to Java itself, if they can be done without a change to the runtime?