Why Android should switch to Go
thomashunter.name
thomashunter.name
You also call Java a systems language. I'm not sure i agree in that view since you don't have direct access to the hardware it runs on. You're still running on JVM which does jit compilation of your code. Java is a high level language falling into the came category as the .NET languages and Python.
I would still very much see Go on android as a fully supported language. Go is beautiful.
For mobile, I'd use reference counting, with an incremental collector working on the cycles. (And encourage the pros to use weak references.)
For mobile I would just use an incremental garbage collector with heavy usage of stack allocation and interior objects. Or use a reference-counted system and disable the GC entirely (leaking cycles).
Incremental GC has been done. It wouldn't be super efficient, which is why one would encourage the pros to use weak references.
Another consideration is Android was fighting for market share from Apple. Forcing Go on developers would just create another barrier to switching.
Go's ARM compiler (5g) still needs quite a bit of work before it can be used on Android. Right now, even the canonical "Hello World" program fails to work on a lot of Android phones.
There is too much momentum behind Dalvik that it would be near suicide to discontinue support. However that doesn't mean Android can't support both Java and Go in the future, but there must be a compelling reason to switch.
There are regular discussions on the golang-nuts mailing list about Go on Android: https://groups.google.com/group/golang-nuts/search?q=android
I certainly hope for Go as a core Android language.
So you could make your "platform" a HTML5 environment supporting NaCl, which is more or less what ChromeOS is. But that's not Android, and doesn't really have a migration path from the existing Dalvik frameworks.