正文
拥有清晰地目标是一种解放
。特别是在十二月和一月份这一段时间里, 我们把目标定为适合Swift 3的那些Proposal, 并且同时开展了好几个计划, 结果我们发现这已经大大超出我们能完成的范围了. 在后来的版本里, 我们有非常明确的目标(例如, 不再增加计划), 从而让我们节约更多精力去专注在那些重要的事情里。
让所有人的满意是不可能的
。特别是在讨论要选哪些Feature和定优先级的时候, 因为有些明显是低优先级的事情. 这是必然的, 因为不可能让所有有趣的东西在一年的开发里都塞进一个版本里. 所幸, 总会有另一个版本, 每一个新的版本都会成为一次大改进的其中一小步。
以此为背景, 让我们继续说下去!
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第一阶段目标