全栈算力,加速行业AI落地 了解详情
写点什么

替代 Objective-C?Swift 尚不成熟

  • 2014-06-04
  • 本文字数:1607 字

    阅读完需:约 5 分钟

在今年苹果的开发者大会上,最引人注目的当属新的编程语言 Swift 的发布。Swift 是一门苹果自主开发的编程语言,它由 LLVM 的创始人 Chris Lattner 在 2010 年开始着手设计,目标是在保证应用质量和性能的前提下,让应用开发变得更加简单、快速。苹果宣称 Swift 的特点是:快速、现代、安全、互动,且全面优于 Objective-C 语言。为了给 Swift 打好基础,苹果公司改进了编译器、调试器和框架结构,不难看出苹果在 Swift 的设计上也煞费苦心。社交媒体上一时间铺满了对 Swift 的讨论:

JavaEye 的创始人 Robbin 在微博中写到:“Swift 目前只是提供了一种脚本编程语法,编写代码的效率提高不了多少,对程序员来说,熟悉 Swift 语法也不过一天时间足够了。关键是要提供高级数据类型,简化 Cocoa 类库,否则用不用 Swift 都没区别。当代的程序员,主要学习成本不在编程语言的语法上,而在语言提供的特殊数据类型和庞大的类库上。”

CNET 的 Tim Stevens 认为 Swift 是一门具有巨大潜力的编程语言,它在结合了脚本语言与传统编译语言的优势的同时,又兼有更快的执行速度(从几项关键指标来看)。Swift 的脚本特性以及实时预览功能可以帮助开发者方便快捷地编写并测试应用程序。但 Swift 也没有想象中的那么美好,Objective-C 在开发应用方面相对比较成熟,并且有了完整的生态圈,Swift 想推倒一切重新开发,恐怕还需要一段时间。

资深 iOS 开发者郭亮认为Swift 对于准备学习iOS 开发的新手来说是个好消息,毕竟它的入门门槛比较低,但对于已经习惯了Objective-C 的上百万开发者来说,又是一件痛苦的事情!因为他们已经爱上了Objective-C。Swift 虽然门槛很低,但要真正熟练,道路依然荆棘,Protocol、Extension、继承、多态还有闭包,真的没那么简单。语言刚刚发布,还会有许多的不完善,其性能、效率还有待验证,并且相关资料非常少,应该只有苹果官方的文档,也没有开源社区的支持。所以Swift 短期内取代Objective-C 的可能性非常小,目前想用Swift 单独作为项目的开发语言,那将是灾难性的。

iOS 开发者黄兢成也在知乎上发表了自己的看法,他认为Swift 吸收了很多其它语言的语法,写起来比Objective-C 简洁得多,不过它的核心概念和Objective-C 差不多,比如引用记数、ARC、 属性、协议、接口、初始化、扩展类、匿名函数。至于大会上提到的可视化编程,他目前尚不清楚如何能较好的应用到实际项目中。Xcode 6 beta 版本对Swift 的语法提示支持也不好。Swift 在实际项目中的使用还需要一段时间,但他相信苹果发布Swift,绝不是玩玩而已。

CocoaChina 上的 xu54 认为 Swift 本质其实就是 Objective-C 的文本变种,对于这门全新的语言,苹果做的工作其实远没有我们想像的艰巨。LLVM 编译器做工作只是先把 Swift 翻译成 Objective-C 代码,然后再把 Objective-C 代码翻译成 C 语言代码,然后再把 C 语言代码翻译成汇编,最终翻译成机器码。至于为什么编译器厂商这么绕,不直接把自己的语言翻译成汇编和机器码,那是由于现有的语言编译器(Objective-C、C ) 已经非常成熟,而高级语言间的文本转换开发成本和维护成本都极其小。Swift 之所以要翻译成 Objective-C,是由于 Swift 仍然需要 Objective-C 中的 ARC、GCD 等环境。既然 Swift 其实就是 Objective-C, 对入门者而言远比 Objective-C 好学,对资深开发者来说又能节约很多无谓的低级重复的机械代码(这些代码在 LLVM 翻译成 Objective-C 时,编译器自动帮你写上),并且开发者关注的应该是业务逻辑,而不把精力分散在语法等低级问题上,语法消耗的时间越少,这门语言也就越成功,所以他觉得 Swift 必定会替代 Objective-C。

社区对 Swift 的评论好坏参半,Swift 的优势很明显,短板也很明显。新语言的成熟不可能一蹴而就,我们还需要有更多的耐心来等待 Swift 的成熟,不过我相信这个过程不会太久。苹果愿意舍弃成熟的 Objective-C,转而开发新的编程语言,这足以让我们看到一家世界级公司的魄力与创新力。

2014-06-04 01:087299
用户头像

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

关注

评论

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

一文搞懂CAN FD总线协议帧格式

不脱发的程序猿

汽车电子 CAN FD 一文搞懂CAN FD总线

面试突击90:过滤器和拦截器有什么区别?

王磊

大数据ELK(二十七):数据可视化(Visualize)

Lansonli

10月月更 Visualize

新书上市|豆瓣8.6,首部全面披露中国游戏发展史的奇书!

图灵社区

新书上市|豆瓣8.6,首部全面披露中国游戏发展史的奇书!

图灵教育

游戏

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

股市老人

Spring Boot「07」Loading initial data 02

Samson

Java spring Spring Boot 学习笔记 10月月更

元宇宙早已注定毁灭?《雪崩》中预言的末日病毒

脑极体

雪崩

架构实战营模块2-微信朋友圈高性能架构

冷夫冲

架构 架构训练营 架构实战营

分支规范和git提交规范

默默的成长

git 前端 10月月更

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

EOSdreamer111

CorelDRAW 2019,软件应用项目(二)

张立梵

设计师 CorelDRAW 2022 10月月更

【ArchSummit】阿里云原生微服务架构治理最佳实践

小明Java问道之路

Java 架构 全球架构师峰会 ArchSummit 10月月更

极客时间—架构实战营—第九期—模块二作业

阿梁

【算法】剑指offer-调整数组顺序&&数组出现超过一半的数字

芒果酱

c++ 算法 10月月更

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

鳄鱼视界

Vue 2x 中使用 render 和 jsx 的最佳实践 (2)

默默的成长

Vue 前端 10月月更

架构实战训练营模块2-朋友圈复杂度分析

阿姆斯壮

#架构实战营 架构实战训练营9期

微信朋友圈高性能复杂度分析

兜里贼缺钱

Kafka消费客户端协调器讲解(GroupCoordinator)

石臻臻的杂货铺

kafka 10月月更

【Go实现】实践GoF的23种设计模式:代理模式

元闰子

Go 设计模式 代理模式

八大排序 (上)

lovevivi

c 数据结构 10月月更

模块二作业

Diana S

#架构实战营

【愚公系列】2022年10月 Go教学课程 030-结构体继承

愚公搬代码

10月月更

架构实战营 - 模块二作业

Geek_92ba6f

架构设计 微信朋友圈

训练实战营模块二

Geek_408c99

八大排序(下)

lovevivi

c 数据结构 10月月更

Vue整合HighCharts和ECharts实现数据可视化

海风极客

Vue 前端 10月月更

【从0到1学算法】6.Select Sort算法

Geek_65222d

10月月更

Kafka监控与指标之UnderReplicatedPartitions

石臻臻的杂货铺

Kafk 10月月更

微信朋友圈的高性能复杂度分析

小虎

架构训练营

替代Objective-C?Swift尚不成熟_Apple_小盖_InfoQ精选文章