Swift 是苹果在 2014 年的 WWDC(全球开发者大会)上推出的新的 iOS 开发语言。
Swift 是一种现代语言,相比于 Objective C 来说有许多新语言的特性,也更容易上手。
之所以还有很多大厂不使用 Swift 作为开发,主要还是因为许多历史原因。
首先,Objective C (以下简称 OC)兼容着很多旧的系统,多少年来他一直都没有什么大的变化。而 Swift 在诞生初期经历过很多的版本迭代,向下兼容性也并不好。可以这么说,Swift 3.0 之前的版本基本上每次升级就意味着重写一次代码。 Swift 之父在 Swift 推出 2.0 之后跳槽去了谷歌,对语言本身的稳定性也影响至深。
其次许多优秀的第三方库都是用 OC 实现的,比如著名的网络库 AFNetworking,SDWebImage 等。Swift 虽然这几年发展迅猛,也推出了对应的第三方库(比如 Alamofire,Kingfisher 等),但是开发人员需要一定的学习成本,企业在这些转化的过程中也需要付出一定的成本。可以这么说,如果不是新项目,大部分的企业还是选择用 OC 来作为主流开发语言。
大厂有很多线上正在使用的项目(历史包袱),仍然在使用 Objective C,完全使用 Swift 重构需要投入大量的人力物力,虽然 Swift 很优秀,但是重新上线意味着许多隐患。不到万不得已是不会冒这个风险的。
那么话说回来, Swift 真的有那么优秀吗?
笔者作为一个 iOS 五年多开发经验的人员,去年开始学习并使用 Swift,从体验感来说只能用两个字来形容:真香。
新的特性让开发人员可以更好的关注项目的设计和代码的书写,不用再被 OC 冗长的命名和陈旧的调用方式而困扰。
OC 没有命名空间,就导致很多类名需要加前缀,非常二。
OC 没有可选类型,需要加大量的 if else 判空,稍有不慎就藏 bugSwift 的枚举类型非常的强大,可以帮助开发者更好的表达业务逻辑Swift 的 extension 比起 OC 的 category 方便太多,包括协议和枚举在内的多种方式都可以使用扩展来实现。Swift 的设计本身更适合函数式编程,也更适合面向接口编程,更容易装逼
除此之外还有很多对比,不一而足。
如果没有历史包袱,真的是十分推荐大家学习 Swift