一 从语法角度,他的优势点
最近,除了N多的基于Swift的服务端开发框架,笔者不由深思,到底该这么评价Swift呢?不可否认,在iOS的开发领域,Swift是比OJC拥有着优势,那么在通用语言这个层次上比较时,它又如何呢?Apple 在推出 Swift 时就将其冠以先进,安全和高效的新一代编程语言之名。前两点在 Swift 的语法和语言特性中已经表现得淋漓尽致:像是尾随闭包,枚举关联值,可选值和强制的类型安全等都是 Swift 显而易见的优点。
1. Comparison
oc | java | c# | c++ | swift |
python | |
值对象 | 有 | 没有 | 没有 | 有 | 有 | 有 |
指针(缺陷) | 有 | 没有 | 没有 | 有 | 没有 | 没有 |
内存管理 | 引用计数 | 垃圾回收 | 垃圾回收 | 智能指针(缺陷) | 引用计数 | 垃圾回收 |
多返回值 | 没有 | 没有 | 没有 | 没有 | 有 | 有 |
脚本语言特性 | 没有 | 没有 | 没有 | 没有 | 有 | 有 |
移动端支持 | ios | android | 游戏 | 游戏 | ios | 较少(缺陷) |
近来Swift与Rust都挺好的,一个背靠Apple,一个是Mozilla的亲儿子。不可否认这二者都是工程领域的集大成者,不过笔者认为Swift是会比D或者Rust具有更大的可用性与吸引力,当然,他们的瞄准的目标点也不一样。D与Rust适合于那些长期使用C++并且已经适应了要去掌握N多的语法与概念的,但是想要使用些更加清晰明了与安全的语言。这类型的开发者往往从事着类似于游戏引擎、编译器、加解密库、HTML渲染引擎等等类似的工作。
Swift呢,更多意义上是一门面向于应用编程的语言,它很容易上手,在某些方面它应该与Go、Java、Python以及C#相提并论。不过Swift比这些会更容易开始学习,它的helloworld只需要一行代码就好了,并且它是支持函数的(不像Java那样完全的OO)。你不需要学习任何的类与对象的知识就可以开始撰写简易的Swift的代码。基于此,Swift是更合适用作一种教学语言的,它还有像脚本语言一样的交互环境,也就是REPL以及Xcode本身提供的PlayGround。
综上所述,Swift拥有着被广泛使用以及当做第一学习语言的潜质。并且,Swift并不是像PHP那样的语法特性较少的语言,它拥有足够的深度来满足Rust或者D这样的用户的需求。与Go相比的话,Go背靠Google,也是个非常容易上手的语言,并且号称自带并发。Swift在语法层次上会更加高级,并且Swift并没有使用GC机制,因此可以与C更好地相兼容。也就是说,你可以用Swift编写任何的库来供任何语言使用,只要这些语言可以使用C的库。这些特质保证了Swift拥有着比Java、C#、Python、Ruby以及Go更广阔的适用范围。后面这几个家伙,因为有GC的存在,不适合为其他语言提供基本库。我也很喜欢Go,但是毫无疑问,S