Swift2021⽣态调研报告
回顾 2020
在去年的⼀⽂中, 我们分析了整个⼤环境的现状,在⽂章发表后得到了⼤家的⼴泛关注,时隔⼀年,我们再来看看有什么变化吧?
Swift 语⾔
版本变化
⾸先从去年的 5.2 版本,到现在即将发布 5.4 版本,Swift 经历了 2 个⼩的版本变化,分别是 5.3 和 5.4
其中 5.3 版本给出了以下⼏个语⾔特性:
SE-0276[1]:catch 语句在捕获 error 的时候,可以更加灵活⾃由,例如⼀次捕获多个 error 或者对 error 的值进⾏绑定。
SE-0279[2]:⽀持多个尾随闭包,这个特性主要是为 SwiftUI 准备的。
SE-0266[3]:enum ⽀持 comparable 协议,并根据顺序⾃⾏决定⼤⼩
SE-0269[4]:在某些场景下可以避免 self 关键字的声明
SE-0281[5]:通过 @main 关键字定位程序⼊⼝swift语言怎么样
SE-0267[6]:在函数的泛型和扩展中就可以使⽤包含 where 关键字的语句
SE-0280[7]:protocol witness 匹配模型在枚举值中的加强
SE-0277[8]:新增 Float16 的数据类型
SE-0268[9]:didSet ⽅法优化和语义更新
⾸先在 SE-0271[10] 中,Swift Package Manager 在资源⽂件的⽀持上有了进⼀步的提升,同时,在 SE-0278[11] 中,SPM 对本地化资源的⽀持也有了改进,⽽且在 SE-0272[12] 中,SPM 终于⽀持了⼆进制形式的组件。在 SE-0273[13],SPM 允许我们对特定的 target 进⾏特殊的依赖配置。
其中在未来的 5.4 版本⼜新增了以下⼏个语⾔特性:
SE-0287[14]:提升了隐式成员表达式的类型推断能⼒。
SE-0284[15]:在函数中可以定义多个可变参数。
SE-0289[16]:在 5.1 就公布的 Function Builder 功能正式命名为 Result Builder,并在原先的基础上进⾏了完善。
SR-10069[17]:嵌套函数⽀持重载
SE-0294[18]:新增 executable 类型的 target,使得 SE-0281[19] 新增的特性更易于使⽤。
property wrapper 除了可以作为属性外,还可以在函数⾥作为本地变量。
On the road to Swift 6
在 2021 年的 1 ⽉,Swift 社区的 Ted Kremenek[20],他的另⼀个⾝份是 Manager of the Languages and Runtime Team
@Apple,在 forum[21] 公布了⼀则名为《On the road to Swift 6》[22]的⽂章
在这篇⽂章⾥,提到了⼀些对 Swift 6 的规划,从⼤⽅向来说,Ted 提了三点:
1. 加速整个 Swift 软件⽣态的发展:包含兼容更多的开发平台,简化软件的安装部署和⼤⼒发展各类⼯具库。
2. 打造极致的开发体验:包括更快的构建速度,更好⽤的调试⼯具,更灵敏的代码补全和更丰富的诊断信息。
3. 结合开发者的反馈进⼀步发展语⾔特性:包括完善 API 的设计,拓展其在底层系统,服务器和机器学习⽅⾯的应⽤场景,同时对某些
主流的语⾔特性提供⽀持,例如并发特性和内存相关的特性。
同时 Swift 的核⼼团队也发⽣了⼀些变化,Saleem Abdulrasool[23] 和 Tom Doron[24] 作为新成员加⼊到核⼼团队,⽽ [Dave Abrahams] 则退出了核⼼团队。
这⾥稍微提⼀下的,Tom 是 SwiftNIO 的核⼼开发,同时在 SSWG(Swift Server Work Group) 项⽬中也是主要的发起者,⽽ Saleem 是 Swift to Windows 的核⼼发起者,这两个变动结合着最开始的三个⼤⽅向,可以看出整个核⼼团队是⾔⾏⼀致的。
另外关于 Swift 6 的公布时间,Ted 的原话是这样的:
Instead of announcing a specific timeline for “Swift 6”, the plan is for the community to be a part of seeing these efforts progress, with focused efforts and goals, and we release Swift 6 when those efforts culminate.
所以这样看来,Swift 6 还是有⼀段时间才能与我们见⾯,毕竟⼈家说了 when those efforts culminate!
那反过来看,Swift 5 还将会是近期使⽤的主要版本。(PS:希望今年的 WWDC 21 不要被打脸)
技术社区
语⾔排⾏榜
同样我们来看⼀看编程语⾔排⾏榜 TIOBE[25] 和 PYPL[26] 的情况,在 TIOBE 的排⾏榜中,Swift 在今年的排名是第 15 名,⽽Objective-C 已经彻底排在了 20 名之外了。
⽽在 PYPL 的排⾏榜中,Swift 和 Objective-C 的热度还是较为接近的。
从社区的语⾔排⾏榜来看,虽然乍⼀看,感觉还是 Swift 和 Objective-C 共存的⼤环境,但其实背后也反映出,Swift 已经被⼤部分开发者所接受了。
社区活跃度
同样通过 GitHut 2.0[27] 这个⼯具对 GitHub 进⾏分析。
下⾯四张图的 Y 轴分别代表了 Pull Requests ,Pushes,Stars,Issues 的数量,蓝⾊的线代表 Objective-C ,浅橙⾊的线代表
Swift。
可以发现,在 Pull Request ⽅⾯,Swift 占⽐约 0.595%,⽽ Objective-C 占⽐约 0.335%
同时 Push ⽅⾯,Swift 占⽐约 0.476%,⽽ Objective-C 占⽐约 0.310%

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。