swift的缺陷和机会
WWDC2014最大的震撼恐怕就是swift了(虽然对我来讲,metal更震撼)。昨晚2点多看完后,完全睡不着了,看新出的那本guide,看了个7788后,很激动,比起ObjectiveC,swift确实是更现代的一门语言。Xcode下好后,第一时间体验了下。结果怎么说呢,心情很复杂。
以上是前言。
语言本身的好处就不说了,会有无数的人来评判。现在来说说最大的问题,swift只能和ObjectiveC交互,而不能和C/C++直接交互,这意味着什么呢:
- 没有gcd (更正一下,现在已经有gcd的swift接口了,多谢楼下)
- 没有coreanimation
- 没有coretext
- 没有STL
这个列表还可以继续下去。所以swift其实能干的事情比想象中的少的多的多。你基本就被限制在了UIKit系里了。
另一个问题是,swift不支持异常。所以当你调用ObjeciveC的时候,必须保证ObjectiveC的异常不会抛出。可选的方法应该就是把异常转换成error code,不然程序就直接挂了。这个问题,怎么说呢,很恶心。
就第一个问题来讲,其实给大家带来了一个非常大的机会,就是把所有C接口的东西都包装成ObjectiveC的module,做library赚人品,赚钱,赚名声,喜欢什么就看你们的了,反正我第一时间肯定是要移植GCD的。
最后,希望Apple能提供更多的library给swift,一个语言好不好用,和语法有关系以外,和library的丰富程度也是极其相关的。