BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Sergio De Simone 关注 18 他的粉丝 ,译者 臧秀涛 关注 4 他的粉丝 发布于 2014年9月11日. 估计阅读时间: 4 分钟 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Swift的性能 by Guo Gary

提到了Swift的性能以及语言的更新,非常棒的新闻

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT