The big looming problems I can see now, without any obvious solutions:
- Yes in some senses Kotlin is not just a better Java, but Kotlin's standard library is basically Java's standard library + some thin extensions, so in other senses it is. All existing Kotlin code is full of
import java.stuff, and I'm guessing 95%+ also imports open source Java libraries. Kotlin Native could perhaps reimplement some of the Java standard library, but out of the box, if you grab some arbitrary Kotlin code it isn't going to run on Kotlin Native unless there's an AOT Java compiler included. Same is true for Kotlin JS of course but the limited browser environment means people expect an anemic standard library anyway.
- "Native" often implies "no GC", especially in the embedded realm. All existing Kotlin code expects GC to be present. Perhaps Kotlin Native will still be a GCd language. If it's not, then at that point without a GC and without the Java standard library, they'll basically be two separate languages.
So it'll be interesting to see what design decisions JB makes here.
By the way, just as a reminder, you can combine Kotlin and "small standalone native binaries" today. Look at the Avian examples:
One of the projects I keep trying to find time for is a tool to make creating such binaries brain-dead simple.