返回 登录
0

Apple发布Swift 2.0,年底前将开源

http://img.my.csdn.net/uploads/201506/09/1433809070_5754.jpg

WWDC上,Apple的软件研发副总裁Craig Federighi宣布了这一消息。他还表示Swift将是未来20年Apple应用软件和系统开发的主要语言。Apple的其他官方说法,也明确Swift是C和Objective-C的继任者,这大大提升了Swift语言的地位。

开源是Swift的设计者Chris Lattner本人早就有的想法,现在得偿所愿,业界之大幸。他毕竟是LLVM的开发者,流着开源的血液啊。

事实上,Apple虽然以封闭、保密文化著称,但开源却是有历史的,可以参考我好几年前写的文章“苹果的另一面:开源软件重镇”

Swift 2.0增加的主要特性包括泛型、更快的调试模式、更快的编译、新的错误处理机制、C函数指针API、注释里Markdown格式等等。由于改进了SDK,平台API显得更为自然。

Apple的官方博客Swift网页更详细地介绍了具体的改进:

语法改进 使用do, guard, defer和repeat关键字来控制流程;函数与方法的命名规则统一;协议扩展和默认实现;if语句和for循环里可以使用扩展的模式匹配了。

更现代的语言 命名参数、推断类型、模块、内存自动管理都使代码更清晰,表达力更强,程序员的工作更流畅。闭包与函数指针统一,结构支持方法、协议和扩展,map和filter等函数式语言模式,元组和多返回值。

开源 包括编译器和标准库,将支持Linux这种非Apple平台,许可证将采用符合OSI标准的协议(这个范围非常大,有些非常不友好,包括Apple自己的APSL)。不过,Apple也明确表示接受和鼓励来自社区的贡献。

与Objective-C能很好地互操作 对已有的OC代码的更新,也可以采用Swift了。

新的错误处理机制 引入其他语言的开发者已经非常熟悉的try, throw和catch块,但又与原有的NSError兼容。

http://img.my.csdn.net/uploads/201506/09/1433821581_9454.png

注释支持Markdown语法 支持版式丰富的注释文本,甚至可以嵌入图片,显示在Xcode的Quick Help里。

更好的安全性 let定义常量和var定义变量,变量强制使用前初始化,数组和整数都会自动检查溢出,内存自动管理,基本消除了C等传统语言的许多常见安全问题。另外,系统默认Swift对象的值不能为nil。

了解更多语言特性方面的更新,Swift官方语言指南的更新历史是个好入口。

值得注意的是,Apple宣布Swift不仅支持iOS和OS X,也将支持Linux。接下来,会有Swift on Rails或者Swift.NET甚至Swift on Android出现吗?Swift社区可是相当生猛的……

Hacker News上的讨论很多都是在说Swift的各种可能性。

评论