写点什么

苹果发布新的编程语言 Swift

  • 2014-06-03
  • 本文字数:1399 字

    阅读完需:约 5 分钟

在 6 月 3 日凌晨举行的 WWDC 2014 大会上,苹果发布了新的编程语言 Swift。Swift 是一门基于 C 和 Objective-C 的编程语言,它被设计用于开发 iOS 和 OS X 的应用程序。Swift 采用了安全的编程模式并添加了新的主流功能使编程变得更加灵活、简单、有趣。Swift 沿用了 Objective-C 的命名参数和动态对象模型,并提供了对 Cocoa 和 Cocoa Touch 框架的支持。另外,Swift 采用了与 Objective-C 一样的编辑和运行环境 LLVM,因此它可以兼容 Objective-C,开发者也可以在开发过程中无缝切换。

Swift 支持代码实时预览(Swift Playground),开发者在左侧输入代码的同时即可在右侧实时预览代码执行结果。这也就是说 Swift 代码可以被实时编译并输出(同 Objective-C,Swift 会被 LLVM 编译为 Native Code 后运行),开发人员可以拥有更加流畅的编程体验。

据官方介绍,Swift 的运行速度飞快。比如在对复杂对象排序这一功能点上,它的运行速度均快于 Python 和 Objective-C。另外,Swift 允许开发者通过非常少的代码来实现更多的内容。在发布会上,苹果演示了如何通过一行简单的 Swift 代码来完成了一个完整图片列表加载的过程。

Swift 汲取了众多语言的优点,它在保证性能的同时,又不失灵活。下面是 Swift 语言的一些亮点:

  • 整合了闭包与函数指针
  • 元组以及多返回值
  • 兼容 Objective-C
  • 支持代码实时预览
  • 支持函数式编程
  • 协议和扩展

Swift 的发布在社区中引起了热烈讨论,以下是一些来自社区的观点:

来自 Kayac 的王巍认为Swift 是无数工程师和语言设计天才的努力的成果,吸收了众多语言的精华,是一门先进的编程语言。相比Objective-C,Swift 更加简单和易学,并且Swift 可以和原来的Objective-C 或者C 系的代码混用(注意:不同于Objective-C 和C++ 或者C 在同一个.mm 文件中的混编,Swift 文件不能和Objective-C 代码写在同一个文件中,需要将两种代码分开),所以这门语言应该值得开发者学习和使用。另外,按照苹果开发者社区的一贯的跟进速度,在不久的将来,Apple 很可能会果断放弃对Objective-C 的支持,而全面转向Swift。

来自Google 的 peng_gong 认为,Swift 有很多新特性,它吸收了大量其它编程语言中的元素,比如 C#中的属性、可空值语法和泛型,Java 的枚举类型,Objective-C 的协议和扩展,Haskell 风格的区间声明语法,Python 风格的当前实例引用语法,大杂烩的好处就是任何其它编程语言的开发者都不会觉得 Swift 陌生。Swift 简单且交互性极强的编程环境可以吸引更多的开发者来开发 iOS 和 OS X 的应用程序。

旧金山的 Web 开发者 Kevin Ingersoll 认为,对于 Web 开发者来说 Swift 的学习难度要比 Objective-C 低很多,以前他曾经想写 App,但是 Objective-C 的学习障碍令他望而却步,现在这个障碍消失了。

资深 Objective-C 开发者 Mike 则对 Swift 的推出感到烦恼。因为他喜欢 Objective-C,不想学习新的语言。对于他来说,Swift 相比 Objective-C 的优势尚不明朗。他对 Swift 的第一印象是为了创新而创新,他害怕新老开发者会在是否要使用 Swift 这个问题上造成分歧(老的坚持 Objective-C,新的用 Swift)。

苹果同时发布了支持 Swift 的 Xcode 6 Beta 版本,读者可以登录苹果开发者中心下载 Xcode 6 Beta。更多关于Swift 语言的介绍读者可以阅读 Swift 开发指南。另外,FullStack 在其 GitHub 上提供了 Swift 版本的 Flappy Bird,读者可以参考学习。欢迎读者在评论中与我交流 Swift 语言相关问题。

2014-06-03 04:534103
用户头像

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

关注

评论

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

Flutter SliverAppBar全解析,你要的效果都在这了!

yechaoa

flutter android 6月月更 SliverAppBar

模块化开发

Jason199

js 模块化 6月月更

直播带货平台包含了直播和娱乐模块,你知道是什么吗?

开源直播系统源码

软件开发 直播带货系统

使用 ABAP 操作 Excel 的几种方法

汪子熙

microsoft Excel Office SAP 6月月更

JavaScript 对象所有API解析

若川

JavaScript 前端 前端开发

Ubuntu下安装OpenJDK10

程序员欣宸

Java Openjdk 6月月更

在IDEA配置Tomcat你GET到了吗

迷彩

调试 IDEA tomcat构建 开发工具 Web 6月月更

面对 this 指向丢失,尤雨溪在 Vuex 源码中是怎么处理的

若川

JavaScript Vue 前端 前端开发 vuex

怎样能低成本构建一个电商平台

Geek_99967b

小程序 电商

一种低成本增长私域流量,且维护简单的方法

Geek_99967b

小程序 电商

OpenHarmony应用开发之二维码生成器

坚果

鸿蒙 OpenHarmony OpenHarmony 3.1 Release 6月月更

声网 VQA:将实时互动中未知的视频画质用户主观体验变可知

声网

人工智能 音视频

COSCon'22 讲师征集令

开源社

开源

如何使用 DataAnt 监控 Apache APISIX

API7.ai 技术团队

后端 监控 APISIX 网关 DataAnt

【使用Python实现算法】02 原生类型与内置函数

★忆先★

Python 算法题

要搞清楚什么是同步,异步,串行,并行,并发,进程,线程,协程

乌龟哥哥

6月月更

Prometheus 2.35.0 新特性

耳东@Erdong

release Prometheus 6月月更

Fabric.js 笔刷到底怎么用?

德育处主任

canvas 前端可视化 画布 FabricJS 6月月更

一种跳板机的实现思路

vivo互联网技术

权限 跳板机 PAM机制

面试官问:JS的this指向

若川

JavaScript 前端 前端开发

如何系统学习LabVIEW?

不脱发的程序猿

​LabVIEW LabVIEW机器视觉 ​LabVIEW工业控制 ​LabVIEW单片机 ​LabVIEW开发技巧

毕业总结

小虾米

「架构实战营」

fastposter v2.8.4 发布 电商海报生成器

物有本末

海报生成器 电商海报 海报生成 图片合成

面试官问:能否模拟实现JS的new操作符

若川

JavaScript 前端 前端开发

Scala 基础 (三):运算符和流程控制

百思不得小赵

scala 大数据 6月月更

SpringCloud - Ribbon核心源码解析

码农参上

微服务 SpringCloud spring 源码

SpringCloud - Feign核心源码解析

码农参上

微服务 SpringCloud spring 源码

去哪儿网(Qunar) DevOps 实践分享

laofo

DevOps cicd 研发效能 持续交付 工程效率

从小到大为何一谈学习就愁眉苦脸

宇宙之一粟

学习 6月月更

面试官问:JS的继承

若川

JavaScript 前端 前端开发

设计电商秒杀系统

小虾米

「架构实战营」

苹果发布新的编程语言Swift_Apple_小盖_InfoQ精选文章