该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。5 \4 H1 c- H B* K: k' I0 x
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
, O1 l, a0 V& z5 p" \& NRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
0 J9 M j J5 Q4 r5 ?3 w0 X- bSwift保障体系! O: A. [- `0 I) _, h+ u1 {7 ?
. A! C* N% J0 {
Swift可供所有人使用;9 ~. {9 P( T1 n
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;; q: P- j0 [8 w5 m
Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。( s# C: S G/ E& X& T5 V
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。/ U) u& t" O2 ]: V3 u0 D. G9 r
' v3 M E4 p# t6 ?$ _
Swift功能特性; I5 t7 g7 `$ B& ?" ^# D2 j, E' S; B
& x/ K8 ^3 W# Z+ N( W7 _ J3 Q
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;: Y+ S( G6 j/ x% x7 W
Swift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
# O) J2 ]5 u* ^5 ~7 R8 w单继承类显示重写和内容,外加多种接口;
2 h+ G: G# z9 k% a8 iLambdas表达式看起来和类Ruby块形式十分相似;
, }! l- Z% }. ~8 \6 ISwift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
0 R0 ?- g; w& Q( |& A, [Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;
6 y5 r% J3 p! G% b5 RSwift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
. ~# v W+ K# b" d1 d( y6 J8 o8 Y% ]脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
" h9 h$ Y! q! s
+ r% X0 h+ k C. ?% M" V+ ~2 |Swift的独特性
1 [1 c7 ^. }& V, J& d
6 q% r$ J7 g. l$ M9 QSwift支持默认检查算法功能;& m5 g! Z" _# n' t4 S
Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
1 L8 @- `3 n& r& v) qSwift看起来并不像是个表达式语言;
, ^* |. v( c NSwift使用class来创建类,类可包含字段和方法;! ]1 n% N' F& F& ?% M3 B9 l7 y) [. P, M
( y5 c' M. k( q' j
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。7 k, P3 \7 ~3 Q2 N5 Y) p0 G
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。5 k9 m# Z' T- R- L2 g) Z) H8 g
|
|