|
该用户从未签到
|
近20年来,苹果一直把Objective-C作为主要的编程语言,而在今天举行的全球开发者大会上,苹果推出了一个全新的编程语言Swift。据悉,苹果此次发布的Swift兼容Objective-C语言,从其开发者指南中,我们看到Swift从Python和javaScript中吸取了许多东西,从而让Swift更易读,或者说更为“口语化”。: {6 j6 a# h( _# N8 g$ x) L/ b
然而,对这类语法更为简洁的语言,许多人会质疑其运行效率。对此苹果指出,Swift在许多方面性能都比Objective-C好。
+ e5 b" e3 M3 F, g% i, VRust语言创始人Graydon Hoare在看完Swift的指南后,写出了自己对这个新编程语言的看法。以下为译文:
5 J/ D$ ~4 Z0 U _+ Q* v6 PSwift保障体系
3 \) V8 c6 y9 J6 L" r( {* {4 ^, ~# ~$ n$ E$ { a
Swift可供所有人使用;
. `2 [( F1 W2 l8 fSwift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题;Swift采用安全编程模式,且加入多种新功能,使编程更简单、灵活;0 C* M7 H# W8 a6 e( `2 ~) Z
Swift广泛地借鉴了C#语言和Rust语言。对此,我很有意见。: _ m Z2 v d) o
和许多其他的编程语言一样,Swift可被LLVM编译为本地代码,且运行速度特别快,可供很多原生设备使用。
1 @' d) c0 Z$ h) u4 b. h
& c) r! ?" @- U. `( e- }Swift功能特性
6 K0 B: U% G3 t& e
' e' x0 X5 A7 I6 ISwift中并没有加入宏系统;其协议和扩展都源自Objective-C;
! o8 c# [% _, TSwift采用var声明变量和let声明常量;结合if和let,可方便处理可空变量;1 G- G- \) x$ x$ G7 E* d
单继承类显示重写和内容,外加多种接口;
2 e9 r1 w; {; `: E! @3 xLambdas表达式看起来和类Ruby块形式十分相似;
, [, U. {: ?$ ]2 q4 ASwift没有显示指针,而是像C#语言一样,依赖于值类型/引用类型;: K" t6 m) D( Q {* q# I
Swift是一个没有globs的基本模块系统,以进口或重命名分类,通过属性,支持重新导出功能;# o. @( [3 e Q. Y5 [
Swift支持本地类型推断、整理数值类型,但不支持隐式强制转换,所有的代码需要转化为显式类型;
$ [( p8 D1 C* N脚本语言支持词典文字,简单的脚本可做大规模的工作,可在多核计算机、集群、网格、云和超级计算机上运行。) }% g; i) U) J. D
; \# y& O) |, _+ r) q
Swift的独特性
4 Y6 E% _( k& V" C" B1 z X. h9 U, S, \! k- ~9 L+ X% a6 P( E
Swift支持默认检查算法功能;
% [# _) T$ s$ D9 C- n" A+ ]Swift使用[]操作符声明数组和字典,数组还有独特的延伸语义功能;但不清楚是否允许程序员自己执行迭代器协议;
; ~8 e, {# h" ?( J- ?Swift看起来并不像是个表达式语言;' E- @! T7 g% y5 }7 \% F
Swift使用class来创建类,类可包含字段和方法;
& P- i6 {$ V0 v, V* e: p# k
8 h2 \6 O) ~( J9 h$ S( d6 L; ZSwift采用Objective-C的命名参数和动态对象模型,提供了对Cocoa框架和mix-and-match的互操作性。基于这些基础,Swift引入了很多新功能,如结合面向过程和面向对象。! b$ k" B7 W! y5 `8 U
除了代数类型、选择类型和偶然会发生的“”runtime error外,Swift没设其他处理错误的讨论区。) v1 L$ r9 u; ]. b
|
|