17611538698
webmaster@21cto.com

Swift 开启新基础框架

作者 场长 分类 iOS 2023年01月16日

图片

背景

Apple 的 Swift 语言,正在启动一个新的开源基础框架。(基础框架的英文全称为Foundation Framework)

从此以后,这代表着开发者将在所有iOS项目中使用的将是原生的 Swift,不再像现在是包装的 Objective-C。

基础框架是“应用程序和框架的基础功能层”。它涵盖基本类型、集合、日期和时间实用程序、文件 API、进程和线程管理、错误和异常等。

Swift的新基础框架

Apple 在其平台的 Objective-C 中实现了 Foundation,但是 Swift 在 2016 年开源时,需要为其它平台实现。

Apple 这样解释说:“Apple 平台上 Foundation 的很大一部分实现是由另一个名为 CoreFoundation 的框架提供的”,它用 C 语言编写的并且非常容易移植,因此在开源中交叉了平台版本。

Apple 负责 Swift 的高级软件工程经理托尼·帕克 (Tony Parker)介绍了这个新项目和它的运作方式:

“今天,我们宣布一个新的开源基金会项目,它是用纯 Swift 编写的,适用于 Swift 开发的移动端项目”。

新的基础框架将全面提高iOS 运行性能,因为 C 和 Swift 之间的“转换成本”将被彻底消除。

此外,Swift Foundation还将提供更精细的包、一个没有系统依赖性的新 Foundation Essentials 包、一个单独的 Foundation Internationalizion 包与一个新的 FoundationObjC Compatibility 包。

Parker 以Apple之名义,向开发者们宣布,新的Swift的基础框架现在已经公布在 GitHub 上。

GitHub地址:https://github.com/apple/swift


社区反响

Swift 社区对此消息持非常积极的态度。

一位Swift开发者说:“作为一个明确回避 Foundation(出于所有已知原因)的人,我发表一个简短的正面评论——这看起来是一种非常实用的方法。”

开发者还有一个常见型困惑,就是是新项目如何与 Apple 系统上的 Foundation 相关联,目前的状态是,好像模糊地存在一些分别。

Parker对此解释说:“Darwin Foundation(我们称其为‘Foundation framework’以区别于它)将是该包的超集,因为它将包括所有我们无法删除或重构的实现,作为这项工作的一部分(使用 Objective-C 或出于某种原因,我们决定将其从包中省略),”他还表示,“现有的 swift-corelibs-foundation 存储库将继续存在”,以便开发者应对兼容时之需。

在之后,开发者在为 Apple 系统编译时,可以选择使用 Swift 或 Darwin 两种版本。

“Darwin”是 macOS、iOS 和其它 Apple 操作系统的基础。例如,最新 macOS Ventura 上的 uname 命令返回“Darwin Kernel Version 22.2.0”。

Foundation 的本地 Swift 实现将非常有利于这门语言,但目前仍主要用于 Apple 的移动端系统开发。

Swift 在 Redmonk 编程语言排名中排在第 11 位,它目前已经超过的 Objective-C ,但目前暂没有其它上升之迹象。

图片

Redmook编程语言排行榜

Redmonk 排行榜的分析师 Stephen O'Grady 表示:“如果Apple 像 IBM 和其他公司强力推动,让Swift成为服务器端语言,那么它的上限几乎是无限的,”,但是可惜的是目前这种情况并没有发生。

一位开发者这样评价 Swift 语言:

“Swift 已经是一门非常强大的语言,尽管它与 Apple 的生态系统关系过于密切。若连同为 Swift 6(和 C++ 互操作)制定的所有权宣言,应该会让它更容易在任何地方使用。”

一些开发者也表示严重同意,Swift 语言在安全性和性能方面与 Rust 语言有很多共同之处,但比Rust更加易于使用。

人们有一种直觉,Swift 在业界仍有未实现的潜力,它除了用于编写 Apple 应用程序之外,能否再做一些开心和改变,这是一个悬而未决的问题。

作者:场长

评论