(I'd love to see native Android apps in Python (or Nim) but that's probably never going to happen. Failing that I could live with a language like Swift.)
Swift has a lot of developer growth, cross-platform library possibilities, and a two optimization pass compiler (SIL and IL).
Also, I wouldn't say the rust language definition is less stable than Swift's, which is still very much in flux (with changes such as the removal of C-style for loops in the pipeline or just released)
Also, Swift doesn't do garbage collection. That may cause problems when trying to build a shared GUI famework.
I really don't see how this is the case; do you consider Microsoft's Project Islandwood[1] to be a move to undermine iOS? Both seem like an attempt to offer developers more choice and a reason to work on the platform. If this is to undermine anything, I think it would be the various 'hybrid'-webapp solutions as writing a Swift app seems like a better way to "write once, run anywhere" than a JavaScript hybrid solution.
> And it's not like Google have commit rights or control over Swift. It's sad how they haven't really learned from the Oracle case.
I don't see how not having commit rights is an issue. The licensing terms of Java are/were very different from Swift. Getting behind an Apache-licensed open-source language does not necessarily mean Google is not free to control their own version of the language (why would they?). I don't see the copyrightable API issue coming up with Apple and Swift because of how the open source Foundation has been encouraged (and I really think Apple wouldn't mind / will encourage open-source ports of other Frameworks).
[1]: https://developer.microsoft.com/en-us/windows/bridges/ios
...cant we have Go instead Google?
What's your theory behind that?
The only one I can think of is that if they make it easy to write an app for both, and Apple does not accept the app or an update, you haven't suffered a complete loss.
Do GUI frameworks require garbage collection? Cocoa doesn't.
But the current Android frameworks are written to function with GC, so if Google wants to support Swift or any other non-GC language, they would have write and maintain a second framework along side the old Java one.
They could, as you indicate, build two frameworks instead, but it would be a challenge to keep parity between them, both in look and feel and in functionality.
Having both opinions look the same is less important on mobile than on the desktop, but feel is important. For example, click delays should be very, very similar, selection methods should be the same, etc.
Functionality would be an even bigger challenge. If they ever release new functionality, say a new kind of control, for one framework first, and for the other a few months later, it would appear as if they do not consider the two languages to be primary languages on their platform.
So, one GUI framework, IMO, would be the best solution, not on technical, but on social/political grounds. As thevibesman suggests in a sister comment, having the non-GC framework instantiate a JVM is a solution, but only technically. Again, that would make the non-GC language look like a second-class, bolted-on thing.
Finally, all of the above applies non-GUI functionality (for example, if functionality gets added to the address book, it must become available in a GC and a non-GC API) and to third-party developers selling libraries to Android developers, too.
While it is likely that this is how it could play out, it is certainly possible to have a garbage collected language and a managed memory language working together in the same program (e.g. a manual memory managed C program can start an internal JVM and pass data between the two languages).