Swift开发团队表示,其即将推出的5.3版本的目标包括“增加对Windows和其他Linux发行版的支持”。
他们提到Swift5.3将包括重大的质量和性能增强。更重要的是,此版本还将扩展Swift可用和受支持的平台的数量,特别是增加对Windows和其他Linux发行版的支持。
苹果开源了Swift编程语言,但除了自家的平台,似乎没有动力去扩大对其他平台的支持,所以Swift跨平台的进展比较缓慢,目前仅支持macOS和Ubuntu。正因如此,不少社区成员十分积极将Swift移植到更多平台。例如,IBM在服务器端方面为Swift贡献了Kitura框架,但由于令人失望的使用情况,IBM在年12月放弃了对它的大部分支持。尽管如此,目前仍然有一个官方的SwiftServer工作组(SSWG),其主导的项目包括SwiftNIO(事件驱动的网络框架)。此外,还有知名的Vapor框架,这是一个可在macOS和Ubuntu上运行的Web开发框架。
对于Windows平台,曾经有过一个开源的SwiftForWindows项目来支持在Windows中提供易于使用的开发环境,不过现在似乎已宣告死亡。除此之外,还可以使用Windows的Linux子系统(WSL)运行Swift编译器,但会存在一个问题——交互式命令行REPL(ReadEvalPrintLoop)在WSL1.0中不起作用。所以,对于希望在Windows上使用Swift的开发者来说,在Docker容器中运行Swift工具链是行之有效的一个解决方案。
好消息是,目前针对Windows的原生Swift官方路由已经完善。该项目被称为swift-build而不是swift-windows,因为它涵盖了Linux和Docker以及Windows。受支持的Windows10最低版本为10.0..0(年10月更新)。
事实上,早在1月份发布的Swift6发展路径文档中,开发团队就表示要扩展可用和支持Swift的平台数量。现在在宣布Swift5.3的开发目标公告中,特别指出了“添加对Windows和其他Linux发行版的支持”。
在Windows和Linux上提供更好的Swift支持将有助于服务器端或非可视化代码的开发,比如Tensorflow机器学习建模和Vapor等项目案例。
不过仍然有一个棘手的问题,那就是GUI应用程序。因为SwiftUI与苹果操作系统绑定在一起,此问题也许会有解决方案,但不幸的是,将macOS和/或iOS的Swift应用程序带到Windows并重新编译它的想法无法实现。