apple swift 初探

今天凌晨,苹果举办了wwdc14,自然又成了各大网站的头条。尽管使用作为mac os的用户已经有接近10年时间,但是对苹果的开发平台却一直没什么了解,一方面是因为并不认可苹果的用户哲学,另一方面由于长期从事c++开发,对objective-c的语法也什么好感,甚至觉得怪异(个人感觉)。

下午浏览新闻的时候,却发现wwdc14没有发布硬件产品,却有一门新的开发语言swift发布,按照苹果的说法是"innovative new programming language",不禁对这门语言产生了好奇。大致浏览了一下官方页面

https://developer.apple.com/swift/,花点时间看完了Swift Tour,发现Swift还是很有趣的,至少对我来说,比objective-c的吸引力要大的多。下面大致写一下初步印象吧,其中可能有一些错误认识,希望大家指正。

首先Swift还是一门静态语言,尽管融入了一些脚本语言的特性如:

  •   使用..和...来迭代集合
  •   函数作为"first class type"
  •   集合的自动类型推导
  •   具有多个返回值和返回tuple的函数
  •   类似于脚本语言解释器的交互式环境

但是其本质还是一门静态语言,最终还是要编译成native code。就我个人感觉,这是好事,因为静态语言的编译期错误检查和运行性能还是要远胜于目前流行的动态语言,尤其是对移动平台这种性能/功能比较敏感的情况更是如此。

其实上述特性大部分更多的是类似于语法糖的性质,能够减少一些繁琐的工作,但是却远远称不上“innovative"。就我个人而言,只有最后一条类似于脚本语言解释器的交互式环境能够称的上是innovative,当然,该特性得益于苹果的神器llvm。我最初接触到llvm是在配置vim的c++开发环境时,了解到了实时代码完成和错误提示插件ycm,其后端就是调用的llvm的生成信息。关于llvm的具体介绍,请看http://llvm.org/

有了交互式的运行环境,我们在做ios/osx的app开发时,就能像脚本语言一样输入代码并实时的得到运行结果,该特性不管是对于cocoa框架的学习,swift语法的学习,以及算法验证等,相对于传统的静态语言都有不可比拟的优势。想想以前要验证某个原型,算法,或语言特性,需要打开ide,新建工程,输入代码,生成然后运行,这些步骤往往比编码过程耗时要长的多。有了这个特性之后,就能像Lua或python一样,直接打开解释器输入代码就能看到结果。

总体而言,Swift还是很对我的胃口,后面一定要抽出时间多了解相关资料,希望能借此机会顺便了解ios的开发吧。

原文地址:https://www.cnblogs.com/hotzenplotz/p/3768908.html