In terms of the prospect of a cross-platform GUI, SwiftUI is taking a similar direction to Flutter and React Native. I see no other serious alternatives from the likes of Go or Rust at the moment. As far as Apple is concerned, they have total control of the direction of the language and they pick and choose which components to open-source.
Apple is clearly the main force behind Swift at the moment, which has some good sides (at least the language is evolving), but is pushing the tech toward a certain direction at the detriment of others (IMHO). Apple is mostly building frontend tech, and swift initial goal was to also be a great force for server-side tech (which means great cross-platform experience).
As an example, i don't think apple is ever going to release a server side framework, or a cross-platform GUI framework able to create android app. The only swift/android project i know on github (https://github.com/readdle/swift-android-toolchain) is using a swift fork to disable objective-c features that don't work well on other platform. That's telling.
I don’t think Apple releasing a server-side framework would help, as nobody would be using it.
Also, there is the Swift Server Work Group (https://swift.org/server/), where two out of six members have an Apple email address. They recently wrote a kind of “state of the union” that, in my view, shows progress is made towards using Swift on servers (https://swift.org/blog/sswg-update/)
As to a cross-platform GUI framework: I don’t see them doing that, just as I don’t see Microsoft or google doing that.
? Flutter and Xamarin already exist.
Yeah.
I think something useful has a much better chance of coming out of the community than Apple. Let Apple focus on what they're good at and leave the server-side stuff to the people who breathe it every day.
Maybe not, but there is this: https://github.com/apple/swift-nio
But look at what Lattner's concurrent manifesto aimed at two years ago : https://gist.github.com/lattner/31ed37682ef1576b16bca1432ea9...
We still don't have async / await, and that was just step 1.