限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

Swift 2.0 发布:即将开源,支持 Linux

  • 2015-06-08
  • 本文字数:1004 字

    阅读完需:约 3 分钟

在 6 月 9 日凌晨举行的 WWDC 2015 全球开发者大会上,苹果发布了 Swift 2.0,并宣布将于今年年底开源 Swift 语言。Swift 2.0 引入了很多的新特性以确保开发者可以更快、更简单的构建应用,这些新特性包括更好的性能、新的异常处理 API、可用性检查、支持 Linux 等。苹果将会在新发布的 iOS 9 中全面支持 Swift,iOS 9 beta 也会在今天对所有注册的苹果开发者开放。

Swift 2.0 包含了许多的新特性以及改进,在本周的 WWDC 大会上苹果将会深入介绍这些新特性。同时,在苹果的开发者博客上,官方也对其中的某几个新功能做了介绍:

异常处理模型:新的异常处理模型使用了开发者最为熟悉的 try、catch、throw 关键字,并且还将完美支持苹果的 SDK 以及 NSError。

可用性:通过使用新的 SDK,开发者可以操作平台的新功能,但某些老的操作系统可能并不支持这些新特性,所以开发者就需要额外的检查。在处理类似的兼容问题上,Swift 非常的得心应手。如果目标操作系统不支持某个 API,那在编译时 Swift 将会报错。同样,开发者也可以使用#available 来确保代码块可以运行于正确的操作系统版本上。

协议可扩展:协议(Protocol)用于统一方法和属性的名称,而不实现任何功能。Swift 2.0 增加了协议扩展,在标准包中可以使用它。当使用全局函数时,Swift 2.0 已经为方法添加了统一的类型,这样开发者就可以使用函数链,以提高代码的可读性。

除了这些新特性之外,另外一个重磅消息是苹果将在今年晚些时候开源 Swfit。苹果的软件研发副总裁 Craig Federighi 在 WWDC 大会上表示 Swift 将会是未来的主流开发语言,它应该得到更为广泛的应用。但在大会上苹果并没有过多的解释关于 Swift 开源的更多信息,苹果曾在 2005 年开源过 WebKit ,如果不出所料,Swift 项目的开源管理和运营模式应该和 WebKit 类似。目前可以确认的信息包括:

  1. Swift 的源代码将会基于某个 OSI 组织批准的开源协议进行开源。
  2. 苹果将会允许并鼓励社区开发者贡献代码。
  3. 未来 Swift 将会重点支持 OS X、iOS 和 Linux 三个平台。
  4. 源代码将会包括 Swift 编译器以及标准库。

Swift 开源的消息在 Hacker News 上引起了激烈讨论。总体来看,开源可以更好的促进 Swift 的发展,一方面开发者可以直接向 Swift 贡献代码,另外开源可以更好的帮助苹果构建其生态系统。另外,关于 Swift 的详细内容读者可以参考阅读 InfoQ 的 Swift 专栏,更多关于 WWDC 2015 的内容读者可以阅读《 WWDC 2015 大会十大看点总结:Swift 要开源了》。

2015-06-08 17:5110222
用户头像

发布了 219 篇内容, 共 146.8 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

7 步保障 Kubernetes 集群安全

SEAL安全

Kubernetes 云原生 Kubernetes 集群 企业号十月 PK 榜 审计日志

HummerRisk V0.4.1发布:新增依赖文件检测功能,优化 AWS 检测规则组,优化资源态势等内容

HummerCloud

云计算 云安全 云原生安全 10月月更 安全合规

谈谈曾经做的一个测试报告平台(2)

MegaQi

测试平台 10月月更

Vue的开发模式与webpack🔥

渔戈

前端 Vue3 10月月更

前端经典面试题合集

loveX001

JavaScript

React源码分析4-深度理解diff算法

goClient1992

React

数通路由交换之网络基础(一)

Python-派大星

10月月更

DOM,Diff算法与Key机制

beifeng1996

React

MASA Framework 缓存入门与设计

MASA技术团队

.net MASA Framewrok MASA

React源码分析3-render阶段(穿插scheduler和reconciler)

goClient1992

React

【kafka运维】Topic的生产和消费运维脚本

石臻臻的杂货铺

kafka kafka运维 10月月更

Go语言入门—06切片

良猿

Go golang 后端 10月月更

计算机网络 ,什么是Internet?什么是协议?TCP/UDP的区别以及优缺点 分组交换与电路交换的区别以及优缺点

Python-派大星

10月月更

软件测试 | 测试开发工程师必读经典好书清单

测试人

软件测试 测试开发 测试工程师 测试书籍

软件测试 | 测试开发 | 校招面试真题 | 显式等待与隐式等待的区别?与强制等待的方式分别是什么,有什么区别?

测吧(北京)科技有限公司

测试 测试开发

直面数字化挑战,戴尔PowerEdge R750最全面的通用服务器

科技热闻

Python列表和元组有什么区别

芥末拌个饭吧

后端 python 3.5+ 10月月更

以指标驱动业务决策,Kyligence 亮相 Gartner IT Symposium/Xpo™ 峰会

Kyligence

数据分析 指标中台 OLAP技术

《Go语言学习路线图》让你少踩坑,高效学,Let’s Go!

王中阳Go

golang 学习方法 技术专题合集 10月月更 “程”风破浪的开发者

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

有奖测评 | 今天种下{1},明天就会收获一片{11.11}——程序员日暨11.11狂欢季来啦

京东科技开发者

云主机 测评 双十一 京东云 程序员日

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

输入到页面展现到底发生什么?

loveX001

JavaScript

Java中的super和this关键字详解

共饮一杯无

Java 10月月更 super和this关键字

常见的网路设备和网络参考模型,以及常见的网络层协议及数据通信过程

Python-派大星

10月月更

软件测试 | 测试开发 | 测试开发工程师必读经典好书清单,抽奖赠书送福利!

测吧(北京)科技有限公司

测试

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

阿里前端二面高频react面试题

beifeng1996

React

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

即时通讯技术文集(第3期):高性能网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯IM

一文梳理vue面试题知识点

bb_xiaxia1998

Vue

Swift 2.0发布:即将开源,支持Linux_Linux_小盖_InfoQ精选文章