iOS DeveloperiOS 开发

[译]回顾Swift 3, 展望Swift 4

2016-08-01  本文已影响389人  kemchenj

原文: Looking back on Swift 3 and ahead to Swift 4
作者: Chris Lattner
译者: kemchenj

大家好,

Swift 3的正式版已经接近完成状态了, 是时候来回顾一下发布之前的事情, 从中汲取经验, 并且用来整理一下我们(Swift社区)在今年做的事情了. 总的来说, Swift 3无疑将会是一个Amazing的版本, 我们做到的很了不起, 谢谢每一个为这件事情贡献力量的人. 比起马上推进那一堆新计划, 更重要的是让我们每个人从整个大局来看, 了解自己做到的这些了不起的事情.

Metapoint: 这份邮件很长而且覆盖了很多主题, 比起直接回复, 最好还是重新开一个对话来对单独的一个话题进行讨论, 在主题上标上[Swift 4]就好了.

Swift 3回顾

每年Swift的开发都会跟前一个版本完全不同, 我预计Swift 4也会延续这个习俗, 为了每一年都要有所收获有所提升, 我总结了一下这些关于Swift 3开发过程中的观察和回顾:

以此为背景, 让我们继续说下去!

Swift版本计划

下一年, 核心团队预计可以完成两个Swift的大版本: 2017年春季推出Swift 3.x, 还有同年秋季发布的Swift 4. 除了大版本之外, 我们也保证会更新一些小版本(例如 Swift 3.0.1)来修复bugs, 或者是核心库需要的服务, 或者其他Swift.org的计划.

Swift 4版本规划

从Swift 3的经验来看, 我们知道我们必须有所选择. 对于Swift 4来说, 一个主要的目标就是保持Swift 3.0到4.0的代码稳定(API稳定), 并且把标准库的ABI稳定下来. 由此, 核心团队决定把开发计划分为两个阶段:

第一阶段:

专注代码稳定和ABI稳定的工作, 对于这份工作保持合理的专注. 这意味着任何不会从根本上更改现有Feature的ABI, 或者对于标准库不会有破坏性的修改在这个阶段都不会考虑(就是说这个阶段要进行的修改都是破坏性的). 例如, 泛型功能里的Condition Confomance是一个附加功能, 但因为它的增加会对标准库产生很多影响, 所以这就会是第一阶段的任务. 另一方面, 语法方面的支持对于现有ABI或者标准库都不会有大改变, 所以不太适合在第一阶段完成.

第一阶段的工作很重要(下文有更多细节), 所以我们春季之前都会比较忙碌.

第二阶段:

设计和实现会在第一阶段完成的七七八八, 我们会根据剩余的时间去完成一些比较大型的feature, 我觉得我们应该能有时间去推进下边表里的一部分Feature, 不过得到我们了解具体剩余的时间才能知道是哪一部分.

除了新Feature之外, 我们也需要重新评估一下那些我们已经接受了的, 会对代码有破坏性, 但还没加入到Swift 3里的提案. 这些提案没必要一定要定下来, 我们需要考虑Swift 4的目标, 根据每个提案的具体情况进行评估.

最后, 这跟Swift-Evolution没有特别的关系, 只是我个人想要质量和性能兼备, 核心团队想要继续提高质量, 包括修复bugs和提高error和warning的算法. 性能优化也是我们开发中一直在做的事情, 包括提高代码质量, 提高标准库的实现, 加快编译速度等等. 所有这些工作都可以同时进行.

Swift 4第一阶段目标

为了专注于代码和ABI稳定, 核心团队对于第一阶段的规划有一个初步的讨论. 这几个Feature是我们在第一阶段定为最优先的:

这里面每一个部分我们都有一些想法了, 但距离一份完整的提案还有很长的一段的路. 我预计, 也希望这些想法能今早进入Swift 4的主要讨论里. 甚至, 我们还没有完整的了解这些将会如何影响ABI稳定, 随着我们的了解加深也许会有更多其它具体的影响. 最后, 我们也许会专注于某个会能够对Swift包管理器或者其它Swift.org计划具有很多价值的Feature.

Swift 4第二阶段 可能的努力方向

就像我前面提到的, 在这个时间点我们是不可能知道第二阶段的时候我们的进度, 因为我们并不知道这段时间会有多长. 为了能够在正式版来临之前修复更多bug, 以及让这一个版本的生命周期变得更长, 核心团队更倾向于在Swift 4开发的时候延续Swift 3的开发周期.

所以说, 我觉得我们应该能够完成相当一部分新Feature, 我对这件事情很乐观. 给你一些它们的概要, 我整理了一份列表, 但记住, 这不是一份计划或者承诺, 这只是一份普遍要求的feature的列表:

就这样, 一份很长的邮件, 包含了一些我们关于明年要做的事情的想法. 还有一件特别的事情就是我知道Swift 3还没完成. 当破坏性的修改完成之后, 还需要时间去修复bug和其他一些优化, 这些都很重要.

我觉得现在花点时间来讨论一下我们明年的开发计划还是很有帮助的, 然后把第一阶段的feature的概念全部理顺, 我们只应该去写那些容易理解的特殊设计. 看到一大堆提案在那里摆着, 然后没有足够的时间去跟进它们, 核心团队不想陷入这样的境地, 我们只想处理那些摆在我们面前, 大型的, 重要的, 优先级高的计划.

Thank you. 再强调一次, 如果你想要深入探讨某个话题的话请重新开一个分支.

-Chris

上一篇下一篇

猜你喜欢

热点阅读