The Register 报道称,为努力扩大支持 Swift 编程语言的平台数量,Swift 开发团队表示,其即将推出的 5.3 版本的目标包括“增加对 Windows 和其他 Linux 发行版的支持”。作为苹果力推的一款面向对象(Objective-C)编程语言,新版支持 2018 年 10 月更新及以后的 Windows 10 平台。然而由于 SwiftUI 与苹果自家的操作系统紧密相关,它并不能帮你构建面向 Windows 的图形用户界面或重新编译。
他们提到 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 并重新编译它的想法无法实现。
需要指出的是,尽管目前可用 Windows Linux 子系统(WSL 1.0)来运行 Swift 编译器,但你会在运行时遭遇一个 REPL 不可用的警告。
Windows 和 Linux 上的 Swift 支持将有助于服务器端或非可视化代码的开发,比如 Tensorflow 机器学习建模和 Vapor 等项目案例。