掌握Swift:它的演变和性能

作为一个对这个不断发展的生态系统充满热情的长期移动开发人员,我一直对尝试遇到的任何新框架或语言感兴趣。 与移动平台的十年合作给了我很多机会,成为突破性进展的见证人。

对于任何Apple开发人员来说,Swift语言绝对是向前迈出的一步,并且直到Objective-C降级为“旧版代码”类别才不久。 今天,我们将探讨Swift的历史,Swift是一种年轻而有前途的语言。

雨燕简史

如今,Swift已成为Apple开发人员的标准编程语言。 自2014年发布以来,Apple开发者社区张开双臂欢迎它来替代Objective-C,这是与其他平台的主要语言相比,大多数人都认为过时的语言。

比较不同的语言和平台通常会变成偏好和品味的战斗,结果和观点因作者的技术偏好而有偏差。 但是,Objective-C的一个优点是没有人可以否认,这是一个很大的优点:性能。

实际上,在Swift首次亮相时,许多论坛上提出的第一个问题是“性能如何?”。 人们担心,更优雅的语言的价格会明显降低性能,并且大多数人不会接受这种交换。

更高版本的改进

因此,与Objective-C相比,Swift慢吗? 是的,是的,速度很慢。 正因为如此,许多早期采用者拒绝了该语言,并鼓励社区坚持使用Objective-C,因为它们的生产声明太慢而无法完成。

幸运的是,Apple通过Swift 1.2的发布迅速扭转了局面,上面提到的同一位作者就此发表了一篇新文章,只是这次的性能还算不错。 这两篇文章都值得一读。

在更高版本(版本2和3)中,Swift进行了一些重大更改。 这些更改对于使语言变得成熟和一致非常必要。 从长远来看,Swift变得更简单,更可预测且语言更加一致。

语言增长的崇高目标,但并非没有代价。 几乎每个Swift版本都具有重大更改,需要对任何应用程序源代码进行大量调整才能使其能够在新版本中进行编译。 再一次,听到了社区的抱怨,随着Swift 4的到来,Apple设定了这个新版本的主要目标, “为Swift 3代码提供源代码稳定性。”

从代码迁移的角度来看,Apple文档的一份声明指出,Swift 3和Swift 4代码之间的差异预计将比从Swift 2.2到Swift 3的跳转小得多。

那么,Swift 4呢?

Swift 4将提供一种编译模式(-swift-version 3),使那些还没有准备好采用此新版本引入的重大更改的人可以更轻松地进行操作。

Swift 4发行版的总体目标是收敛并与核心目标保持一致,并达到成熟度,以在将来提供更稳定的发行版。 “随着发行版的融合,将变更纳入4的标准将变得越来越严格。” -swift.org/blog-。

为什么选择Swift over Objective-C?

  • 可维护性:减少了样板代码,相对于Objective-C的标头和实现文件,使用了单个文件。 这样可以减少代码,从而减少所需的维护。
  • 更好的内存管理:虽然Objective-C具有自动引用计数功能,但并非所有API(例如Core Graphics)都实现了它。 Swift为所有API提供自动内存管理。
  • 代码更安全:这是简化指针处理的结果。
  • 可读性:显然,Swift比Objective-C更易于阅读。
  • 支持名称空间:集成多个项目时不再发生名称冲突。
  • 动态库:减小了应用程序的大小,灵活性并提高了加载时间的性能
  • 性能:对Swift的持续改进使该语言在许多标准基准测试中均紧随C ++。

重要里程碑

Swift在过去几年中取得了一些重要成就:

  • 2015年6月,Apple通过Apache 2.0许可证将其开源
  • 支持在Android上运行Swift代码!
  • 服务器端开发

很高兴看到语言和平台以自然的方式不断发展,将每次迭代都集中在一个特定的目标上,同时解决社区的关注。

此演进过程适用于大多数与技术相关的场景。 尝试一些新的突破性创新并不容易。 创新总是伴随着批评,但是协同作用才是造就优质产品的关键。

正如本文标题所言,这就是我所说的迅速发展。