I would say, you can use Swift on Windows to do real work (use VS Code as IDE on Windows), except the following two points:
- async/await does not work reliably on Windows because of a missing piece in LLVM,
- static linking does not work (yet) on Windows when using the Swift Package Manager, so distribution of a program is a bit more complicated.
(@compnerd: Maybe I am a bit too demanding here, but I think the first issue is really important and pressing.)
The question of a GUI is a more complicated one, Swift/win32 mentioned above does work, and for cross-platform GUIs GTK might be a good choice, but do not expect a „simple“ solution along the lines of SwiftUI for Windows (or Linux) yet.