Swift 1.0发布:一门语言的演进历程

Apple宣布,适用于iOS的Swift 1.0已经达到GM状态,开发者现在就可以开始提交使用Swift编写的应用了。Apple提到,该语言将继续“引入新特性、改进性能并精练语法”,就像该语言自6月份的WWDC 2014发布以来所经历的变化那样。

\\

在适用于iOS的版本达到GM状态之前,Swift已经经历了数个Beta版本,除了修复一些不可避免的Bug,还逐步精练了该语言的语法和语义,同时提高了性能。

\\

Swift的语法和语义

\\

每次发布Beta版本时,Apple都会更新官方的《Swift Language Reference》,以便与语言的新特性保持同步。另一方面,Xcode的发布说明中详细列出了Swift在相邻Beta版本之间发生的变化,不过其中夹杂着Xcode的所有修改。

\\

这时候Karol S. Mazur创建的GitHub仓库SwiftInFlux就派上用场了,它支持以结构化方式一览Swift的所有修改。而且这个仓库特别有意义的地方在于,对于Swift的某些修改,它们意味着什么,为什么要加进来,我们可以看到Swift的创建者Chris Lattner的意见。

\\

除了以简洁的方式列出Xcode的每个Beta版本对Swift所做的修改,该仓库还收集了一些修改请求,它们或者是在Apple开发者论坛讨论过的,或者是通过Radar报告给Apple的。在1.0之后版本的进一步开发中,Swift可能会引入一些重要特性,如抽象方法、访问控制、C++支持和返回nil的初始化器等,不过Apple方面对此没有任何承诺。

\\

Swift的性能

\\

在Swift最初对外宣布时,Apple鼓吹速度是该语言最值得注意的特性之一,相对于Objective-C有40%的性能增加。不过几个开发者进行的一些最初测试显示,结果并非如此,除非使用-Ofast编译器优化选项(不过该选项会去掉所有的运行时安全检查),否则有些情况下的性能还不如Python。这一发现引发了在线讨论,有些开发者暗示Swift还处于发展之中,并评论说,Beta版本存在性能问题并不是稀罕事。

\\

确实,所有的性能问题早在上个月初发布的Xcode 6 beta 5中都已经修复了。根据开发者Jesse Squires的报告,在Xcode 6 beta 5中,仍然使用测试最初发布版本时所用的测试算法,Swift的性能首次在所有算法中都超过了Objective-C。开启新的-Ounchecked优化选项,甚至会得到更好的结果,该选项替代了-Ofast,这样其真正行为看上去就更为明显了。

\\

Mike Ash撰文详尽地分析了Swift胜过Objective-C的原因,他考虑到的因素有:得益于静态分派的更快的方法分派,由语言支持的更多内联函数调用的机会,因为不必在所有方法调用上处理_cmd隐式参数而带来的更高效的寄存器使用效率,指针别名分析可以优化多个指针指向同一内存区域的情况。

\\

适用于OS X的Swift

\\

适用于OS X的Swift尚未达到GM状态,不过这是因为它要依赖Yosemite SDK。Apple介绍说,当Yosemite达到GM状态时,适用于Mac的Swift也将达到GM状态。在此期间,开发者可以下载Xcode 6.1的Beta版本,使用Swift构建Mac应用。Apple在宣布Swift时提到,到Yosemite达到GM状态时,Xcode 6.1还将对Swift做些改进。可以预见会存在不兼容问题,不过不管语言定义方面有何修改,“因为今天的应用中嵌入了一个Swift GM运行时版本,所以未来可以继续很好地运行”。

\\

查看英文原文:Swift Turns 1.0: The Evolution of a Language

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值