写点什么

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

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

关注

评论

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

Deltatech Gaming Ltd. 携手 F5 缔造更安全的在线游戏体验

F5 Inc

安全 游戏 waf

缤纷三月,安势信息邀您共话企业开源风险治理

安势信息

开源 安全合规 清源CleanSource SCA 安势信息 开源风险治理

软件测试 | 接口自动化测试超时处理

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

测试

软件测试/测试开发 | 这些常用测试平台,你们公司在用的是哪些呢?

测试人

软件测试 自动化测试 测试开发

软件测试/测试开发 | 测试人员必须掌握的测试用例

测试人

软件测试 自动化测试 测试开发 测试用例

HarmonyOS Connect认证测试

HarmonyOS开发者

HarmonyOS

软件测试 | From请求

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

测试

软件测试 | JSON Schema断言

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

海量并发低延时 RTC-CDN 系统架构设计(下)

网易云信

实时音视频

软件测试/测试开发 | 黑盒测试方法论—边界值

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

详解神经网络基础部件BN层

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

怎么写一份好的接口文档?

Liam

Java API 免费API接口 API接口 API接口文档

抽丝剥茧!为您揭秘ChatGPT背后的数据库

华为云开发者联盟

数据库 华为云 ChatGPT 企业号 2 月 PK 榜 华为云开发者联盟

ChatGPT 可收费的那种产品该如何实现?一点尝试 | 社区征文

非喵鱼

Java openai ChatGPT

软件测试 | JSON响应断言

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

测试

CodeArts Snap:辅助你编程的神器

华为云开发者联盟

云计算 华为云 企业号 2 月 PK 榜 华为云开发者联盟

手把手教大家在 gRPC 中使用 JWT 完成身份校验

江南一点雨

Java gRPC

软件测试/测试开发 | 黑盒测试方法论—等价类

测试人

软件测试 自动化测试 测试开发 测试用例 测试方法

软件测试 | Header cookie处理

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

测试

软件测试 | 接口测试文件上传测试

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

测试

软件测试/测试开发 | 做为测试,那些不得不掌握的测试技术体系

测试人

软件测试 自动化测试 测试开发

热点2023第十五届上海国际智慧工地展览会

InfoQ_caf7dbb9aa8a

BlueShore Financial 通过 F5 筑起财务安全防线

F5 Inc

自动化 金融 WAAP

Bytebase:让数据库管理和协作变得无缝

天黑黑

MySQL 云原生 dba 数据库管理工具

架构训练营模块六作业

gigifrog

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵社区

Linux shell脚本编程 shell脚本

2023年1月用户体验GX评测:商业银行抢抓新春营销旺季,多措并举持续提升用户体验

易观分析

金融 银行 经济

软件测试 | 接口自动化测试代理配置

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

测试

【网易云信】海量并发低延时 RTC-CDN 系统架构设计(下)

网易智企

IM RTC 实时音视频

大数据应用场景下,标签策略如何实现价值最大化?

袋鼠云数栈

标签体系

《Linux命令行与shell脚本编程大全》有奖书评活动!

图灵教育

Linux shell脚本编程

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