高效,可控,安全的 Concurrency。
整个 Concurrency 功能的结构和思路 https://github.com/SwiftOldDriver/WWDC21/pull/13#issuecomment-862922860:
社区会作为一个 Trouble Maker 的角色去不停地挑刺,提出问题和自己认为可行的解决方案,最典型的就是 Chris Lattner,并且随着方案迭代,代码的实现,慢慢地也会发现一些问题,例如 Actor 最初被定义为 Class with State Isolation,但实现慢慢深入,一些最初支持 actor class 的人也觉得 actor 没有继承,与 class 撇清关系会更好。
SwiftUI 的 UI 原语是基于 AppKit / UIKit 的,自身缺乏 UI 原语。
(UI 原语泛指从自身数据结构到 Native 绘制的过程/接口)
做小控件得心应手,但处理页面结构乏力,如果哪天 SwiftUI 可以用来实现 UINavigationController 或者 UITabBarController,才算是真正迈向成熟。
数据驱动的 UI 框架目前在移动客户端实际上还存在很多空白,在 Web 上很多事情都是因为大家可以接受 reload 所以才被解决。
短期内可能 SwiftUI 都不会有很大的改进,苹果需要花很长的时间,才能组织起一套 SwiftUI 自身的 UI 原语,实现所有 UINavigationController 和 UITabBarController 的功能。
SwiftUI 想要跨平台缺乏着力点:
- React Native / Weex 都有统一的 UI 原语 —— Virtual Dom
- Flutter 则是 Skia,一套高效的跨平台渲染引擎
- Flutter Web 之所以到了 2.0 才推出出,就是因为它需要额外支持 Dom(亦或者是让 Skia 提供 Canvas 接口)
社区最能讨论的大多是 API 设计,而刚好这个提案就踩中了这个点。
- _dynamicReplacement https://www.desgard.com/ios/swift/2019/07/27/swift-method-swizzling.html
- _functionBuilder
- multiple trailing closure
我们应该怎么看待开源项目和商业公司的关系?或者说,开源是否意味着民主化?