Swift更加开放,不再限于macOS与Ubuntu
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 并重新编译它的想法无法实现。