We're working on improving its support for other use cases, with work to better support embedded[1], server[2], and AI[3] use cases, along with Linux[4] and Windows[5] support.
We're also putting a lot of energy into improving support for these scenarios in Visual Studio Code [6].
Would love to hear more about scenarios folk are looking at, as well as specific gaps that are blocking you adopting Swift for non-Apple platforms. We're building a roadmap now and would love to make sure our work items are comprehensive.
[1] https://github.com/apple/swift-evolution/blob/main/visions/e...
[2] https://www.swift.org/blog/sswg-update-2024/
[3] https://www.swift.org/blog/mlx-swift/
[4] https://www.swift.org/blog/adwaita-swift/
[5] https://www.swift.org/blog/swift-everywhere-windows-interop/
[6] https://marketplace.visualstudio.com/items?itemName=sswg.swi...
Today if I search for Swift jobs, it's a list of exclusively iOS app developer jobs.
The advantage for Swift would be that potentially more developers use the VSCode extension which would hopefully improve the quality and incentivise more of them to maybe contribute to it.
If it's already possible then maybe a section in the readme on how to achieve this? (e.g. how to open an iOS project folder and get completions for Apple's frameworks).
I think you would only need xcode-build-server [1] in order to get autocompletion in VSCode.
So far, every time I play a bit with it, the experience doesn't seem much better, as naturally most packages assume Apple platforms, and VSCode isn't XCode.
Has the issue with manually reaching out for OS APIs instead of Foundation already been fully sorted out? Having samples directly referring to Glib and similar, instead of standard Swift, wasn't that interesting.
Also the lldb issue with Python bindings not being found seems to still exist, even on the container images.
However, I also acknowledge that many things seem to have improved, so there are also quite a few positives.
SwiftUI is an incredibly powerful paradigm. It feels like the future compared to most GUI programming today. It is also possibly the most easily seen and best-known value of Swift today. Enabling and empowering the community to create similar abstractions outside of Mac OS/iOS would go a long way to making the language more commonly used, but I understand that's a responsibility that doesn't fall squarely on the Swift team. Case in point, the adwaita-swift and the swift-everywhere-windows-interop projects. The first looks fine (although it is just a "Counter" sample project) but the latter looks DOA/unviable. As a dev, I wouldn't even consider the latter and adwaita has the disadvantage of not being cross platform
Look at the sheer number of tools, languages and frameworks trying to solve the modern day "write once, run anywhere" of declarative guis. Tauri/Dioxus, React Native, Flutter, iced-rs (my personal favorite)... the list goes on. There's a real need here that Swift could help solve without forcing people into JavaScript or Rust. The former being too browser-focused (for better or worse, but I argue worse) and the latter having too steep a learning curve
I feel like a lot of the Swift-outside-of-Apple effort has been on server/embedded work, but in those domains, why wouldn't I choose Python/Node+JS or C/C++/Rust which already have a strong foothold, respectively? That's a much harder battle to fight from an adoption perspective IMHO
I even use Swift on a ARM raspberry Pi docker cluster.
Windows is officially supported for some time with networking and nearly all of foundation ported if that’s not complete yet.
The only real issue you have is at the UI level. There are some web and even ncurses libraries using SwiftUI like DSLs
Now with the new macro features you can get a lot more flexibility for cross platform builds.
C++ interoperability is also possible with latest versions. It was a hidden flag for a couple years. I’ve wrapped many C++ emulators in Swift over the last year with Cmake to Xcode projects.
Do you like Swift? Good, you better also like iOS development.
Dart? You better be happy with UI with Flutter.
Even with Rust to a degree... If I'm looking for jobs where I could exclusively work with Rust, it's crypto blockchain. Web listings might include Rust but usually come with Python, JavaScript or Go.
Even if you are lucky and you'll find one job that offers what you like, yourself painting into a corner and tie yourself to one employer.
"Product/Platform we are targeting" => set of allowed languages as per their SDKs, official support documents.
The approach "pick language" => "select problem" tends to only work at startup levels, or being very lucky with the IT department policies.
With that said, Swift enjoys better FFI by virtue of using LLVM and lower base memory footprint since it does not need to maintain data structures used by GC. Performance however will vary case by case, ARC generally has way higher upfront cost than GC, especially in multi-threaded scenarios but lends itself to an overall more deterministic memory usage, which is important on memory-constrained systems.