在今年的苹果开发者大会上,最引人注目的莫过于新编程语言Swift的发布。Swift是苹果公司自主开发的一种编程语言。它由LLVM的创始人ChrisLattner于2010年设计,目标是在保证应用程序质量和性能的同时,使应用程序开发更简单、更快速。Apple宣称Swift的特点是:快速、现代、安全、交互,全面优于Objective-C语言。为了给Swift打好基础,苹果对编译器、调试器和框架结构进行了改进,不难看出苹果在Swift的设计上也是煞费苦心。一时间社交媒体上对Swift充满了讨论:JavaEye创始人Robbin在微博上写道:“Swift目前只提供脚本编程语法,编写代码的效率不会有太大提升,熟悉Swift语法一天就够了,关键是要提供高级数据类型,简化Cocoa类库,不然用不Swift都没区别,当代程序员,主要的学习成本不在编程语言的语法上,但语言中提供了特殊的数据类型和庞大的类库。”CNET的TimStevens认为Swift是一门很有潜力的编程语言。它结合了脚本语言和传统编译语言的优点同时也有更快的执行速度(就几个关键指标而言)。Swift的脚本特性和实时预览功能可以帮助开发者方便快捷的编写和测试应用程序。但是Swift并没有想象中的那么好。Objective-C在开发应用程序方面相对成熟,有完整的生态系统。Swift可能还需要一段时间推翻一切,重新开发。资深iOS开发者郭亮认为,Swift对于准备学习iOS开发的新手来说是个福音。痛苦的事情!因为他们已经爱上了Objective-C。虽然Swift的门槛很高low,真正精通的路还是荆棘,Protocol,Extension,继承,多态,闭包真的没那么简单e还有很多不完善之处。其性能和效率还有待验证,相关资料也很少。应该只有苹果的官方文档,没有开源社区的支持。因此,短期内Swift取代Objective-C的可能性很小。目前,单独使用Swift作为项目的开发语言,后果不堪设想。iOS开发者黄景诚也在知乎上发表了自己的看法。他认为Swift吸收了很多其他语言的语法,写起来比Objective-C简洁很多,但核心概念和Objective-C类似,比如Referencecounting、ARC、properties、protocols、interfaces、initialization,扩展类,匿名函数。至于大会上提到的可视化编程,他还不知道如何才能更好的应用到实际项目中。Xcode6beta版本也不能很好地支持Swift的语法提示。Swift要在实际项目中使用还需要一段时间,但他认为Apple发布Swift绝对不是玩玩的。CocoaChina上的xu54认为,Swift的本质其实是Objective-C的文本变体。对于这种全新的语言,苹果所做的工作其实远没有我们想象的那么难。LLVM编译器只是先将Swift翻译成Objective-C代码,再将Objective-C代码翻译成C语言代码,再将C语言代码翻译成汇编,最后再翻译成机器码。至于为什么编译器厂商兜兜转转,不直接把自己的语言翻译成汇编和机器码,是因为现有的语言编译器(Objective-C、C)已经很成熟了,文本之间转换的开发成本高级语言和维护成本极低。Swift之所以需要翻译成Objective-C,是因为Swift在Objective-C中还需要ARC、GCD等环境。由于Swift其实就是Objective-C,对于初学者来说比Objective-C更容易学习,而且可以为有经验的开发者省去很多不必要的低级重复机械代码(这些代码是LLVM翻译成Objective-C.编译器会自动给你写),开发人员应该把精力放在业务逻辑上,而不是把精力分散在语法等低级问题上。语法消耗的时间越少,语言就会越成功,所以他认为Swift一定会取代Objective-C。对Swift的评价褒贬不一,Swift的优点很明显,缺点也很明显。新语言的成熟不是一蹴而就的。我们还需要有更多的耐心等待Swift的成熟,但相信这个过程不会太长。Apple愿意抛弃成熟的Objective-C而开发一门新的编程语言,这足以让我们看到一个世界级公司的勇气和创新精神。
