Foundation 的未来
Foundation 框架几乎用于所有 Swift 项目。它为字符串、集合和日期等基本要素提供了基础功能层,并为编写优秀的 Swift 代码设定了规范。
今天,我们有一些关于 Foundation 未来的激动人心的公告。
走向开放
当 Swift 开始其作为开源项目的生命旅程时,我们不仅希望开放语言本身,还希望开放围绕它的生态系统。 Foundation 在过去几十年软件的成功中发挥了重要作用,并且从一开始就是 Swift 开发者体验不可或缺的一部分,我们知道它必须包含在开源产品中。
swift-corelibs-foundation 项目帮助在 2016 年启动了 Foundation 的开源 Swift 版本,在预先存在的开源 C 语言实现的 Foundation 之上封装了一个 Swift 层。
在过去的几年里,Swift 在技术上(例如 ABI 稳定性)和社会上都得到了发展,吸引了一个多样化的参与者社区,他们因对 Swift 的兴趣而聚集在一起。
随着这种增长,现在是时候重新评估开源 Foundation 的策略了。
更进一步
今天,我们宣布一个新的开源 Foundation 项目,它使用 Swift 编写,专为 Swift 而生。
这实现了许多技术目标
- 不再有封装的 C 代码。 借助 Foundation 的原生 Swift 实现,该框架不再需要支付 C 和 Swift 之间的转换成本,从而提高了性能。 以包的形式开发的 Swift 实现也使 Swift 开发者更容易检查、理解和贡献代码。
- 提供更小、更细粒度的包选项。 重写 Foundation 提供了一个机会,使其架构与不断变化的用例相匹配。 开发者希望保持其二进制文件大小较小,新的 FoundationEssentials 包将提供 Foundation 中最重要的类型,且没有系统依赖项,以帮助实现这一目标。 当您需要处理本地化内容(如格式化的日期和时间)时,将提供单独的 FoundationInternationalization 包。 其他包将继续提供 XML 支持和网络功能。 新的 FoundationObjCCompatibility 包将包含对于某些应用程序有用的旧版 API。
- 统一 Foundation 实现。 任何 API 的多个实现都存在行为差异的风险,并且在跨平台移动代码时最终会导致错误。 这个新的 Foundation 包将作为 Foundation 单一规范实现的核心,而与平台无关。
这也实现了一个重要的社区目标
- 开放贡献流程。 当用户社区可以参与并成为开发者社区时,开源项目才能发挥最佳作用。 将提供一个新的开放贡献流程,使所有开发者都能够为 Foundation 贡献新的 API。
共同前进
我们很高兴开始与大家在 Swift 论坛上讨论这些计划。 该项目本身将于 2023 年在 GitHub 上启动。