知乎程序员:Swift语言是个很好的Objective-C替代者

知乎程序员:Swift语言是个很好的Objective-C替代者

本文是知乎程序员“孙竟同学的看法,作者提到:首先,它不是一门玩具语言,其次,一些被指出的缺点其实并不存在,或者并不严重,此外,对于想转行做 iOS 或 OS X 的开发者来说,Swift 是个很好的 Objective-C 替代者。

【首先,它不是一门玩具语言】

去看看它的文档明白了,feature 非常丰富(我敢保证你们在半天内是看不完的)。再看它的库,Apple 把 Cocoa 的 API 都用 Swift 写了个封装,而不是完全一致的。

下面是文档里的例子

Objective-C:

UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

Swift:

let myTableView: UITableView = UITableView(frame: CGRectZero, style: .Grouped)

所有参数都重写了有没有?如果不是想取代 Objective-C,干嘛还去重写,你直接用那冗长的参数不就完了?不过现阶段底层仍然调用的是 Objective-C 的 API,而不是直接用 Swift。

【其次,一些被指出的缺点其实并不存在,或者并不严重】

1、数据结构少?还有原生的 tuple 和 enumeration 没提到,此外还能用 Objective-C 的 NSSet,至少总量上比 Objective-C 多了几种。

2、没有多线程?可以用 GCD 的 API,也被移植到 Swift 了。

3、没有私有属性?很多语言都没有,都靠使用者自觉。

4、只能与 Objective-C 互动?C 也是可以的。

5、没有异常处理?Objective-C 里基本也不用。

补充一个缺点:不支持复杂的宏,只支持 #define。很显然,这些缺点对很多开发者 / 团队来说不算大问题

【此外,对于想转行做 iOS 或 OS X 的开发者来说,Swift 是个很好的 Objective-C 替代者】

这里没空一一列举 Swift 的优点了,文档里可以找出很多。简单来说,Objective-C 只会更坑。苹果也说 Swift 是「A complete replacement for both the C and Objective-C languages.」甚至你用 XCode 6 新建一个项目,在选择语言时,Swift 也排在 Objective-C 上面。最后,如果不是做 iOS 或 OS X 开发,Swift 算不上一门很好的语言。