该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。$ H3 B3 X% O1 ?% \5 w( r& G
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
8 `; `; \0 q* p/ pRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
% R1 L1 K$ ^- k7 C1 n# GSwift保障体系- Y" r3 Z/ ?' }0 V0 q
" e7 k7 m+ J( v/ r
Swift可供所有人使用;$ v5 O S( u8 V# y% k3 p) n
Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;% u: {7 z: o1 u2 [: `( s* X: ^
Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
" W% b- {2 e% b" R和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
0 ]8 p8 F! Y( Y% R. w8 F9 k5 F; p
8 Y, M: v+ V VSwift功能特性' w% a2 Z4 i# L4 V
; W) f" F1 l: ?8 j4 U- y* ~6 W; T9 g
Swift中并没有加入宏系统;其协议和扩展都源自Objective-C;
; b3 D3 T& O* `4 W# M) y2 hSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;! \; k+ Z& C3 ^" B. g# S
单继承类显示重写和内容,外加多种接口;* Y- r3 I7 s, e9 E/ L( A
Lambdas表达式看起来和类Ruby块形式十分相似;& k8 C3 J: P) {1 d
Swift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;/ b0 k5 |3 U8 Q! P
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;/ \8 r' B, h3 N5 B% q. W6 B
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;% F# b1 ^5 m1 U F4 ?, n6 {' p
脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。7 T. S$ L& I& R
8 L& T, i w+ F2 w& H3 uSwift的独特性
) {& s- n/ W4 R+ i& w. O3 ]
: K& \& Z, l9 h% P, ]* ?Swift支持默认检查算法功能;# P; Q9 Y( a* U$ X
Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;+ m" l1 \. K' D; W. v2 c. w
Swift看起来并不像是个表达式语言;$ h* S; O7 ^3 t
Swift使用class来创建类,类可包含字段和方法;; N7 J) A$ S1 S% e+ ` I1 X0 k
1 p! z# H$ L) N& Y: b4 ]& \Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
; \' {# m+ L5 S3 @5 T4 X, L7 i* X除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。
, B% M" b" a) K |
|