该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。; _# J# T3 K3 _3 M2 y7 x' J7 P7 y
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。- ^5 R, g( z; ]4 ^
Rust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
- A* s, v9 [; RSwift保障体系 w/ J; M& q6 p" r. R
0 V* i, A8 V4 I/ z" g& s- I
Swift可供所有人使用;* v, J) ]! l, k+ c0 K5 n
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;7 O$ V! Z5 P/ ~& c, A5 s
Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。7 D! T1 V, c* O, H( p! S1 ]2 f
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
/ s+ a3 i6 A$ A5 p# M# q$ m
7 `( Q1 b% @4 ~Swift功能特性5 l. m9 N; C6 v5 F9 }
: z9 V! W) n: `3 uSwift中并没有加入宏系统;其协议和扩展都源自Objective-C;
9 L# |# ?7 @8 O$ ^. i# ^ a9 @Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;+ g7 _/ t( B" B
单继承类显示重写和内容,外加多种接口;
1 M; I5 {* |) K- n+ y' GLambdas表达式看起来和类Ruby块形式十分相似;2 Q) d/ t, l& x2 |. N2 @$ i
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;: a" X( ~: d B
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;8 \! o0 y9 W. j" D+ {3 `' t, ~
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
# Q3 C$ M* g0 F4 _脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
; V" d1 U" H1 x0 v( k
$ r3 ?6 v3 p- {8 pSwift的独特性
) w: A! @$ q5 K+ H" ]+ o6 ^; p: J
Swift支持默认检查算法功能;9 k% y5 q6 z1 t6 r( n1 x6 Y
Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
; c0 \0 d: b+ e% d2 O5 ~Swift看起来并不像是个表达式语言;
( L: I& g5 P" M5 |Swift使用class来创建类,类可包含字段和方法;
% c: J7 P' X" K5 ]' m1 W2 `5 h
3 q7 c1 k- c2 c6 MSwift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
0 a7 [8 r' h0 ~( I' t除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。% Z7 M1 w# E( q* R" W( W1 q
|
|