Swift 將增加對Windows 和其他Linux 發行版的支持
Swift開發團隊表示,其即將推出的5.3版本的目標包括“增加對Windows和其他Linux發行版的支持”。他們提到Swift 5.3將包括重大的質量和性能增強。更重要的是,此版本還將擴展Swift可用和受支持的平台的數量,特別是增加對Windows和其他Linux發行版的支持。
蘋果開源了Swift 編程語言,但除了自家的平台,似乎沒有動力去擴大對其他平台的支持,所以Swift 跨平台的進展比較緩慢,目前僅支持macOS 和Ubuntu。
正因如此,不少社區成員十分積極將Swift移植到更多平台。例如,IBM在服務器端方面為Swift貢獻了Kitura框架,但由於令人失望的使用情況,IBM在2019年12月放棄了對它的大部分支持。儘管如此,目前仍然有一個官方的 Swift Server工作組(SSWG),其主導的項目包括Swift NIO(事件驅動的網絡框架)。此外,還有知名的 Vapor 框架,這是一個可在macOS和Ubuntu上運行的Web開發框架。
對於Windows平台,曾經有過一個開源的 SwiftForWindows 項目來支持在Windows中提供易於使用的開發環境,不過現在似乎已宣告死亡。除此之外,還可以使用Windows的Linux子系統(WSL)運行Swift編譯器,但會存在一個問題——交互式命令行REPL(Read Eval Print Loop)在WSL 1.0中不起作用。所以,對於希望在Windows上使用Swift的開發者來說,在Docker容器中運行Swift工具鍊是行之有效的一個解決方案。
好消息是,目前針對Windows的原生Swift官方路由已經完善。該項目被稱為 swift-build 而不是swift-windows,因為它涵蓋了Linux和Docker以及Windows。受支持的Windows 10最低版本為10.0.17763.0(2018年10月更新)。
事實上,早在1月份發布的Swift 6發展路徑文檔中,開發團隊就表示要擴展可用和支持Swift的平台數量。現在在宣布Swift 5.3的開發目標公告中,特別指出了“添加對Windows和其他Linux發行版的支持”。
在Windows 和Linux 上提供更好的 Swift 支持將有助於服務器端或非可視化代碼的開發,比如Tensorflow 機器學習建模和Vapor 等項目案例。
不過仍然有一個棘手的問題,那就是GUI 應用程序。因為SwiftUI 與蘋果操作系統綁定在一起,此問題也許會有解決方案,但不幸的是,將macOS 和/或iOS 的Swift 應用程序帶到Windows 並重新編譯它的想法無法實現。