苹果的Swift语言3.0版本将预计在今年年底之前发布。这个版本的主要目的是提供更加其语言本身和标准库稳定的字节码接口。为了达到这一目的,新版本的Swift也会致力于提高语言的统一性,采用更加标准的实现。其中有些重构可能不得不涉及到打破Swift 2.X原有的设计。新版本带来的改变主要集中于以下几个方面:
- 更稳定的ABI:提高字节码接口(ABI)的稳定性,从而提高字节码的向后兼容性。这可能涉及到运行时的数据接口,命名规范,调用惯例等等,甚至语言本身的一些特性。重构ABI同时也会扩展标准库,包括它们的数据类型和核心算法等等。成功的ABI意味着,使用未来版本Swift编译的应用和库依然可以兼容现在的程序,即使他们是使用旧的3.0版本的源代码。
- 适用性:解决二进制接口问题——如果程序依赖的某个库发生了改变,必须重新编译整个程序。比如,添加了一个新的属性、覆盖了一个类的方法,并不需要重新编译和这个类有关的所有子类。这个问题带来一些必须思考的其他问题,比如:什么改变可以动态适应?这些可以使用的类库是如何实现的?如何保持高性能?
- 扩展性:使得Swift支持的平台更多,确保用户可以使用Swift写出兼容性高的代码。期望能在所有平台上运行。
- 类型系统重构和文档:重构多种类型,更新文档。同时也涉及到类型系统的转换规则和编译器的类型检查的实现。主要目的是使类型系统更小、更简单,使规则更加严格,某种意义上就像一个类型检查一样。
- 完善泛型:现在很多Swift很多的库都使用了泛型,特别是标准库。然而,现在的Swift还有很多泛型的特性没有实现,包括递归协议约束、使当前的约束扩展遵循一个新的规则等等。但是Swift 3.0支持标准库需要的这些泛型特性,因为这影响到标准库的ABI。更多有关泛型的信息,可以阅读Douglas Gregor有关完善泛型的报告
- 注重语言本身:作为一个年轻的编程语言,Swift的发展非常迅猛。但是毕竟时间仓促,这门语言还有很多不合适的特性。Swift 3将会优化和删除一些特性,以提高更多的统一性。
- API设计指南: Swift重要的库是如何用的,就和Swift语言的代码是如何写的息息相关。API设计指南提供了优秀的API设计指导。Swift 3的标准库和核心库将会更新以适应指南。
原文地址:Swift Programming Language Evolution
翻译:赖信涛
责编:孙思由CSDN重磅打造的2016中国云计算技术大会(CCTC 2016)将于5月13日-15日在北京举办,大会特设“中国Spark技术峰会”、“Container技术峰会”、“OpenStack技术峰会”、“大数据核心技术与应用实战峰会”等四大技术主题峰会,以及“云计算核心技术架构”、“云计算平台构建与实践”等专场技术论坛。80+位一线互联网公司的技术专家将到场分享他们在云计算、大数据领域的技术实践,目前大会剩票不多,欲购从速。详情请点击 CCTC 2016大会官网。