该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。* f6 }; ^0 ` y& @, z' L
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
/ T8 U9 g6 z$ u1 d/ h* z- \Rust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
* |$ s# V) c$ \: V4 D3 ~/ x9 I% XSwift保障体系' T& e, ?2 s* F' l: [
! c) I# X% B9 w" u% P) A9 l1 F
Swift可供所有人使用;
6 k: U8 E' G4 GSwift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;
$ V5 g. O( U( n- PSwift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。
& O; ]" f- t! Y0 y7 l" j和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。3 [. h4 d: C. x1 O% e7 G. y
+ C8 Z# N9 N# G+ ySwift功能特性 e& f1 e: C9 q. j
! C& [$ f; G! q- j* QSwift中并没有加入宏系统;其协议和扩展都源自Objective-C;
5 k# v9 |- r& l8 u4 B7 r2 CSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;
) ^6 V5 u# F/ `单继承类显示重写和内容,外加多种接口;
5 [+ b! L+ s* Q1 o) K+ C( @# @Lambdas表达式看起来和类Ruby块形式十分相似;
4 X4 `1 N$ `& J& v1 ]- ^& o3 fSwift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;
# _( M4 `5 d1 F/ W$ {# eSwift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;# I1 K9 O; K% ]
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
) W' p$ {+ `! T# Y& T% j/ g脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。
% Z4 f- s B; y4 O7 l# l; K' x# `% _2 C. O4 k/ q l+ T+ x
Swift的独特性
% B$ U' p' C* y) I
& k W3 B& ~+ I; m5 V, [% u) A9 wSwift支持默认检查算法功能;
& A* f+ r; T7 [: S' K ?, ASwift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;* [8 p: j2 E% u* d" R
Swift看起来并不像是个表达式语言;
+ W7 |4 [/ b. p5 HSwift使用class来创建类,类可包含字段和方法;3 S" P* {9 E5 e( R X; d' z
0 ^! ?4 j: j5 n
Swift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。
2 U" Q: A$ t9 I" @) I4 S( e. u除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。8 j. i$ U: c5 R
|
|