ABI 的稳定,会让 Swift 在 Apple 平台上有更大的发展。不过由于历史原因,在系统支持和兼容性方面,我们还会面临一些问题。Swift 官方博客也专门发了一篇文章 Evolving Swift On Apple Platforms After ABI Stability 来进行阐述,来看看他们是怎么说的。
随着 Swift 5 的发布,Swift 的 ABI 也终于稳定下来,并作为 macOS、iOS、tvOS 和 watchOS 核心组件提供。ABI 的稳定所带来的好处很多,最明显的就是 Swift 写的应用不再需要带着 Swift 运行时库一起分发,大大减小了应用的体积。操作系统层面也能更好地集成和优化 Swift 运行时,从而让 Swift 程序启动更快,获得更好的运行时性能,同时降低内存的消耗。而且 Apple 也可以在未来版本的系统中使用 Swift 来提供平台级的 framework。当后续版本的 Swift 能提供模块稳定性时,第三方也可以发布 Swift 编写的二进制 framework。
不过也正是由于 ABI 的稳定,Swift 不再是开发人员工具链的一部分。因此,后续采用新的 Swift 运行时和标准库功能的项目,可能需要新版本的系统。其实 Objective-C 也有这个问题,需要在新的语言特性/框架和老版本系统之间做权衡。
什么类型的语言功能和演进提议可能仅限于未来的操作系统版本?
任何需要新的 Swift 运行时或标准库支持的功能都可能受操作系统可用性限制。这包括