阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

回顾 Swift 3,展望 Swift 4

  • 2016-08-14
  • 本文字数:1275 字

    阅读完需:约 4 分钟

在 Swift 3 late 2016 版本临近发布之际,苹果公司开发者工具部门高级总监 Chris Lattner 发给“Swift-evolution”邮件列表一篇长文。文中对 Swift 3 的开发过程进行了回顾,并给出了对 Swift 4 的期望。

在对 Swift 3 的回顾中,Lattner 主要侧重于说明开源软件开发的成效及所存在的缺点。他特别指出,相对于“封闭式设计”而言,“开放式设计”速度慢且更难预测,但是最终结果却是“显著地改善”了。对于开发而言,使开发社区专注于有限数量的主题上,以及使核心团队参与到最前线的关系讨论中,这两者是至关重要的。此外,Lattner 还指出,在开发中具备明确的目标将有助于工作重点的确定,并可避免出现在设计范围之外完成的子项目。

基于上述观点,Lattner 阐明了 Swift 4 所将具有的两个首要设计目标,即“自 3.0 版本起,交付具有源码稳定性承诺的版本,以及为标准库提供 ABI 稳定性”。鉴于此,可预见核心团队直到 2017 年春都将忙碌于第一阶段。该阶段的工作主要是针对影响现有 ABI 或者是导致现有标准库特性发生重要改变的特性。下面列出了核心团队在第一阶段中将优先实现的一些特性:

  • 源码稳定性,例如编译器选项 -std=swift3,使用该选项可有条件地启用更多的目前正在开发但尚不稳定的功能;
  • 适应性,提供在不影响 ABI 稳定性的前提下使公用 API 持续演进的方法;
  • 标准库所需的通用改进,例如:条件性符合(conditional conformances)递归协议约束(recursive protocol requirements),以及其它的一些改进;
  • 对字符串的重评估,目的在于改进 Swift 的字符串编程模型,使得该模型做到与 Perl 字符串处理一样的好。
  • 内存所有权模型(可选项)。该模型受 Cyclone Rust 的内存所有权模型启发,目的在于实现性能的可预测性和确定性。更多细节可参考这里

一旦第一阶段的进展达到顶峰,第二阶段将根据所剩余的时间对新特性进行界定和规划。在第二阶段中会考虑以下特性:

  • 反射,包括一个面向用户的、用于数据和方法反射的 API;
  • 一流的并发,包括:actor、同步 / 等待、原子性、内存模型及其它一些相关主题。不幸的是,据拉特纳所说,在 Swift 4 版本中将无法按时实现这个新的并发模型;
  • 更多的通用改进。但正如泛型声明中所述,这些改进并非是 ABI 稳定性所特需的;
  • .swiftmodule 稳定性,以便于被第三方的二进制框架所使用;
  • 新的脚本语言特性,例如:正则表达式、多行文字的字符串等;
  • 属性行为,目的是在语言内核之外,提供一种定义 lazy、observers、synchronization 等属性行为的灵活模型。

Lattner 最后指出,还有许多在第二阶段中需要考虑的特性,例如:子模块、数值类型间的隐式类型提升、C++ API 的引入、健康宏系统、尾部调用约定、支持枚举类型、“throws”类型化、用户自定义属性、抽象方法或类、更好的 SIMD 支持、数据并行支持、高级类类型等。

核心团队预期在 2017 年秋季能发布 Swift 4。

查看英文原文: Looking Back on Swift 3 and Ahead to Swift 4


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-08-14 19:004001
用户头像

发布了 227 篇内容, 共 71.4 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

电商通用型商品中心设计

京东科技开发者

构架 企业号 3 月 PK 榜 电商中心 SKU 类目

深入探讨Python Tornado框架:原理与异步实现

阿呆

Python tornado Web

Activity初窥门径

智趣匠

android App Activity

Sync包Mutex的原理阐述

Jack

golang

易观千帆 | 2023年2月证券APP月活跃用户规模盘点

易观分析

金融 证券 经济

拯救脂肪肝第一步!以飞桨3D医疗影像分割方案MedicalSeg自主诊断脂肪肝

飞桨PaddlePaddle

深度学习 计算机视觉 语义分割 PaddlePaddle

IDC报告:安擎AI服务器同比增长29.2%,三行业位居第一

科技热闻

AIGC时代:未来已来

华为云开发者联盟

人工智能 华为云 AIGC 华为云开发者联盟 企业号 3 月 PK 榜

以前端视角,漫谈「云端」

京东科技开发者

云计算 前端 云技术 企业号 3 月 PK 榜

看完这份SpringBoot神级文档,面试真的可以为所欲为

三十而立

Java IT java面试

企业号 4 月 PK 榜,火热开启!

InfoQ写作社区官方

热门活动 企业号 4 月 PK 榜

一文读懂mysql锁

Paincupid

MySQL MySQL锁 mysql锁原理 mysql如何上锁 msyql锁分类

vivo 手机云服务建设之路-平台产品系列04

vivo互联网技术

系统设计 稳定性 数据安全 用户数据 手机云服务

阿里内部进阶学习SpringBoot+Vue全栈开发实战文档

三十而立

使用 DataEase 展示服务器运行状态

搞大屏的小北

Linux监控 Linux监控脚本 监控展示 监控大屏

轻松搞懂云成本优化:FinOps,2023年一定要懂的热点趋势!

博文视点Broadview

标星90K,这份Leetcode刷题手册在GitHub爆火!完整版开放下载

架构师之道

Java 编程 算法

AI又火了,这一次云厂商能赚到钱吗?

脑极体

云计算 AI 云厂商

职场「OKR」,魔幻又内卷

Java 架构 职场 OKR

秒懂算法 | Treap树

TiAmo

数据结构 算法 节点 旋转法

「高频必考」Docker&K8S面试题和答案

王中阳Go

Docker 高效工作 学习方法 面试题 Go 语言

“ChatGPT们”的淘金时代

OneFlow

世界备份日|有“备”而来,才能不为数据安全“蕉绿”

云布道师

存储

pulsar:创建更多租户 VS 创建更多namespaces

李code

架构 pulsar 调优 业务

碳基大模型--人一生处理多少个token?

FN0

人工智能 AIGC ChatGPT

从人工智能角度看人肉智能

FN0

AIGC

个人开发者应该如何选购云服务

光毅

AIGC热门技术岗平均年薪超百万,脉脉林凡认为白领可能先于蓝领失业

科技热闻

MobPush 厂商通道SDK集成指南

MobTech袤博科技

机器学习实战系列[一]:工业蒸汽量预测(最新版本下篇)含特征优化模型融合等

汀丶人工智能

数据挖掘 机器学习 数学建模

重现一条简单SQL的优化过程

GreatSQL

MySQL greatsql greatsql社区

回顾Swift 3,展望Swift 4_开源_Sergio De Simone_InfoQ精选文章