该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。
; b( y% V/ d; q2 Z- S( v3 h然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
& U/ v. `" U$ |4 B# R1 [Rust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
! h- Z# m; @$ n6 r+ \Swift保障体系
8 _+ w3 J4 r* e, x
# i# P8 ~2 q c7 _% DSwift可供所有人使用;" s! ?5 J4 t% R- u: f! j
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
0 U6 q/ @3 m3 g+ i4 XSwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
0 N7 Z) Y) `/ F$ o# H) }和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。2 n! r/ u$ `8 k6 ?
. x7 T; s% g# o4 ^4 l/ ySwift功能特性
8 x% i( k1 T. v3 B4 e8 R- O0 L+ o& J: {& s: z& C6 L* x
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;
. u7 p* T+ ?9 h$ Y$ u2 Q+ z bSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
- {5 R) h. V+ L$ z& h8 H# h- c2 c单继承类显示重写和内容,外加多种接口;8 E3 A; ^8 r- f5 C. b% E
Lambdas表达式看起来和类Ruby块形式十分相似;
. V4 K* K" z0 m( Q+ `/ s! A; V% \Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;0 k) y% t& e6 h+ l8 N: N
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;
/ ]& l! L( y6 h" p: USwift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;; r7 e- Q7 R+ R/ }
脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。7 @# ]4 D5 ?' r6 z
/ t/ t+ T$ O" s+ q- \3 `Swift的独特性/ ]. _" R4 g9 i: d
! c, J. j' v0 b, vSwift支持默认检查算法功能;
`! ^8 e2 A3 ?; zSwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;6 w+ H1 w/ V9 {
Swift看起来并不像是个表达式语言;
+ h' x" o: I8 A0 a+ h( wSwift使用class来创建类,类可包含字段和方法;
: g9 J/ }1 @/ r! T* d: d
6 X0 Q7 I* D, L4 J+ J) |Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。2 A4 Z' v1 p* c- n! \5 z! x
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。- e. e5 r! {( G8 B) Q2 j% p+ e) ~
|
|