生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

苹果发布新的编程语言 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:534004
用户头像

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

关注

评论

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

架构师训练营——第13周作业

jiangnanage

第13周数据分析

陆不得

Docker Compose 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker Docker-compose redis集群 redis cluster

第13周学习总结

刘卓

架构师训练营第十三周作业

子豪sirius

手握阿里P8亲传Redis和MongoDB利器,怕什么面试官

小Q

Java 数据库 redis mongodb 面试

达达双云双活实践

夜读AI

容器 微服务 openresty 多云架构 双活容灾

开始编译第一个typescript实例

程序员学院

Java typescript 大前端

第13周作业

刘卓

week13 作业

Geek_196d0f

架构师训练营-week13-学习总结

晓-Michelle

极客大学架构师训练营

大数据思考

朱月俊

公有云常用数据分析指标

leis

Week13 总结

leis

windows10 CUDA环境搭建

yuanhang

tensorfl

从零开始搭建完整的电影全栈系统(三)——restfulApi的编写

刘强西

RESTful 电影api

synchronized实现原理及代码证明各种锁

Darren

源码 synchronized 轻量级锁 偏向锁 Monitor

第十三次课

架构师训练营——第13周学习总结

jiangnanage

oeasy 教您玩转linux 之 010209 装酷利器 hollywood

o

【在云端 003】 星星之火,可以燎原——云时代的IoT

Bora.Don

云计算 IoT AIOT

java安全编码指南之:Number操作

程序那些事

java安全编码 java安全 安全编码规范

PageRank

GalaxyCreater

Spring 5 中文解析核心篇-集成测试之TestContext(中)

青年IT男

Spring5 JUnit

极客大学架构师训练营 0 期 week 13 学习笔记

chun1123

大数据 学习

week13 小结

Geek_196d0f

Google 搜索引擎之PageRank 算法

莫莫大人

极客大学架构师训练营

极客大学架构师训练营 0 期 week 13 作业

chun1123

数据分析 PageRank

大数据应用场景

朱月俊

MySQL中修改数据表存储引擎的三种方法

Matrix Chan

MySQL 运维 数据表引擎

云栖大会边缘计算分论坛倒计时7天,这2点值得期待

阿里云Edge Plus

边缘计算

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