swift 的缺点:
1. 开放的功能太少啦,好多功能苹果根本不想让开发者使用,直接从编译器层面给拒绝了,比如想用 ctor ,swift 目前只能通过实验性功能 SymbolLinkageMarkers 然后 @
_section("__DATA,__mod_init_func")
2. 文件真的很臃肿,会链接一堆根本没有使用的库,同时底层依然需要依赖 objcruntime
3. c abi 交互真的非常麻烦
swift 的优点:
1. 简洁优雅,很多东西写起来和 kotlin 一样甜
2. 苹果大力支持,比较新的设备上/比较新版本的 Xcode 比如开发个支持 VisionPro 的程序,ide 只支持使用 swift 开发
objc/objc++现状:
新产品 ide 只支持使用 swift 开发,并不是真的只能用 swift 了,只是用其它语言稍微麻烦一点,但 swift gui 开发底层依然依赖 objcruntime ,苹果只是把创建 objc 项目的模版删除了,并不是完全不能用。
并且在可见的未来 objc 应该会被永久保留。百分之九十九的新 app ,它可能是 swift 编写的,但是底层依然强依赖 objc ,各种游戏引擎/gui 库都是底层强依赖 objc 。
很多人觉得 objc 已经死了不更新了,但实际上 objc 的状态就和汇编类似,绝大多数人都不会直接用它,但是少了它绝对不行,已经成了与底层功能交互的主要手段之一。
PS: objc 上次版本更新是在两个月前,基本每年都会有 3-5 次小版本更新,还是很频繁的,只是应该不会再加入新语法特性。