Swift团队已经开始了一个新的开源项目,使Foundation能够在Swift应用开发服务之上实现。通过一个全新的基于Swift的框架,新的基金会旨在从几个方面提高性能,包括消除Objective-C和Swift之间的转换成本,允许模块化和清理代码,并提供性能改进的机会。
由于Foundation是在Swift中实现的,因此框架不会产生C和Swift之间的转换成本,从而获得更快的性能。
苹果公司在Swift论坛上的高级工程师托尼·帕克(Tony Parker)解释说,性能上的好处可能相当可观。
Swift实现的Calendar执行速度比C实现快1.5到18倍。
以下是实现一系列技术目标的方法:
打包的C代码不再可用。
使用Foundation框架的原生Swift实现,框架将不再受C和Swift之间转换成本的影响,由于转换成本的降低,它可以提供更快的性能。
Swift App Development的实现作为一个包开发,也简化了对Swift开发人员的检查、理解和贡献代码。
统一实施基金会。
大量的API实现会导致不同的行为,最终在不同平台之间移动代码时会出现错误。这个新的Foundation包将创建一个单一的、规范的Foundation包,允许在所有平台上部署与平台无关的Foundation。
启用更小、更详细的包。
可以通过重写来使基金会的架构适应不断发展的用例。为了帮助开发人员实现这一目标,FoundationEssentials包将提供基本的Foundation类型,不依赖于系统,从而在不影响性能的情况下减小二进制文件的大小。
您可以使用单独的Foundation国际化包来处理本地化的内容,比如格式化的日期和时间表示。还会有其他支持XML和网络的包。
FoundationObjCCompatibility包中包含了几个遗留api,这对一些应用程序很有帮助。
苹果正在重写Foundation,使Swift成为Foundation在所有平台上的基础,而不是C、Objective-C和Swift层。它将有可能消除Swift语言中已经存在的NSCoding和NSKeyedArchiver,用Codable取代它们。
这一声明引发了Swift论坛的许多评论,大多数人建议应该重新考虑几个现有的api, Swift类型,如可编码的或结构化并发,应该足够强大,完全取代Obj-C类型,后者计划从基础层移除。
除了Foundation重写,苹果还邀请了Top快速应用程序开发服务供应商加入定义项目中期未来的讨论。
暂无评论