iOS开发者知识普及,Swift 挑战 Objective-C,谁会笑到最后?

前言:前端

目前全球共有超过 7 亿台 iPhone 处于活跃状态,全球约有2000万名 iOS 开发者,这造就了 iOS 做为全球第二大移动设备平台的状态。程序员

虽然安卓系统的全球市场占有率超过 iOS 系统,但在诸如美国、法国和英国的区域性市场中 iOS 系统仍然占据主导地位。所以许多公司专一于 iOS 平台进行软件开发,由于他们将 iOS 平台视做关键投资机会。面试

若是你的公司也正计划跟随 iOS 软件开发,那么你须要做出一个相当重要的决定。你须要为你的产品选择合适的技术组合。你的目标是什么?若是是原生应用开发而不是跨平台软件,你会选用哪一种编程语言?久经考验的 Objective-C 仍是 Swift?编程

做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻
,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!但愿帮助开发者少走弯路。

为了帮助你做好这个抉择,咱们来看一看使用 Swift 语言进行 iOS 开发会有哪些优点和弊端。后端

关于这种编程语言,你必须了解哪些信息?使用 Swift 会有哪些风险?为了开始讨论 Swift 语言的优缺点,咱们先回顾一下 Swift 的发展历史。安全

Swift - 它的历史和背景故事服务器

Apple 于 2014 年的 WWDC(Worldwide Developers Conference 全球开发者大会)上首次推出了 Swift 这种编程语言,它是可用于 iOS、macOS、tvOS 以及 watchOS 平台开发的第二种官方编程语言。就在去年 9月份,Swift 已经更新到 4.0 版本,此次更新带来了不少改变和兼容旧版本的模式。网络

在强调 iOS 8 SDK 发布的官方新闻稿中,Apple 对这个新编程语言的描述以下:编程语言

“ Swift 是一种适用于 iOS 和 OS X® 的全新而强大的编程语言,有了它,开发者能够更轻松地建立精彩的应用程序。Swift 专为 Cocoa® 和 Cocoa Touch® 设计,将汇编语言的高效表现与热门脚本语言的交互性完美融合。ide

通过精心设计,Swift 可帮助开发者消除各类常见编程错误,从而写出更安全、更可靠的代码。

同时,该语言可与 Objective-C® 代码共存,让开发者能够轻松将 Swift 集成到现有的应用程序。Xcode® Playgrounds 可即时显示 Swift 代码输出,赋予编写 Swift 出色的互动性。”

年纪轻轻的 Swift 语言在 TIOBE “全球最流行的编程语言” 榜上迅速攀升至第 11 名。至此 Swift 语言已经超过它的前辈 Objective-C 7 名,实现了它的初始目标。Swift 之因此能在如此短的时间内全球流行,缘由之一是 Apple 这个品牌享誉全世界。即使如此,要与一种通过 30 多年考验的编程语言竞争并赢得百万名开发者的信任绝非易事。

因此,让咱们仔细分析一下 Swift 的优缺点—它被选做 iOS 开发的主流语言的诱因以及限制其发展的短板。

使用 Swift 语言开发 iOS 软件 — Swift 语言的优势

易读性 — 易维护性

Swift 代码与人们平常使用的英语很是类似,这得益于借鉴自 C#、Python 和 Ruby 的句法,这三种的编程语言以优雅句法而著称。相比之下,Objective-C 的句法与 C 的使人恐惧的句法很是接近。

所以,具有简化的句法和语法的 Swift 语言更为直白易懂,其表达方式也更加灵活。实际上,Apple 对 Swift 语言的简单很是有信心,甚至经过 Swift Playgrounds 这个 iPad 应用程序中的游戏鼓励小朋友们学习开发应用程序。

在解释 Swift 语言的优点时,连线杂志的资深撰稿人 Cade Metz 的描述以下:

“ Swift 的优异之处在于它是为普通程序员设计的。它的设计适用于全部使用情景,甚至是最简单的移动应用,Apple 还为它专门开发了名为 “Playgrounds” 的工具,这个工具在自学编程时异常有效。”

他进一步分析了 Swift 语言与 Google 的 Go 语言迥然不一样的发展规划。(Google 于 2009 年推出 Go 语言,时至今日这种编程语言仍然在吸引开发者的道路上艰难前行),在此他引用了 Paul Jensen — 一名编程语言分析师的见解:

“ 对于 Google 的 Go 语言,没有真正值得开发者选用它的理由……Swift 则对开发者颇有吸引力(它的直白易懂、简单明了优于 Objective-C)“

此外,有别于 Objective-C,Swift 抛弃了以前双文件形式(以 .h 为后缀的头文件 + 以 .m 为后缀的实施文件的组合定义类),为开发者省去了额外的操做。Swift 去除了模版式的重复工做,同时辅助开发者改进代码质量、它所提供的语言特点以及备注形式。

Swift 言简意赅

Swift 的目标之一是编程语言的简练性。单就字符串内插这一项而言,使用 Swift 语言最多可将使用 Objective-C 编写的移动应用的代码量减小 70%。更少的代码意味着开发和测试更为快速—所以能够下降维护成本、减小资源耗费。

易于扩展

直观明了的代码可加快开发速度。除此以外,你的产品仍是面向将来的,你能够为它添加新特性。亦即你的产品具有易扩展性。进一步说,出于长期的投资规划,你须要意识到相对于 Objective-C 而言,Apple 更可能支持 Swift。

与 Objective-C 的互操做性

虽然这方面不是 Swift 的绝对优点,这个特性必然是有价值的。Buffer 公司(译者注:这是国外一家社交媒体管理平台)的一名 iOS 开发者 Jordan Morgan 在他的博客中写道:

“ 毫无疑问 — Swift 是一种标志着将来的新工具。Objective-C 已经开始老去,并且终将丧失它的流行度。可是就现阶段而言,他们俩须要能和平共处……Objective-C 创建在一个逐渐过期的编程语言之上,只是为现代技术从新改造了而已。”

正如 Morgan 所说,Swift 并未彻底取代 Objective-C,由于 Objective-C 目前是并将持续做为许多移动应用的组成部分,也将须要持续的维护。Swift 能彻底与它的前辈互通,所以二者能够在同一个程序、文件或者一行代码中共存。

安全性和改进的性能

正如它的名字所暗示的,Swift 诞生于对迅速的追求。它强调速度和性能,最初这两方面上它比 Objective-C 提升了 40%。经过达成的多个里程碑以及开发者们执行的测试,这一点已经很是明显了。

Swift 的另外一个优点是安全性。得益于它的强悍性和静态数据类型的特色,Swift 帮助开发者在编译前发现程序错误并及时修复错误。并且 Swift 具备智能的针对空指针的安全措施能够规避由无效的数据引用致使的编译错误。

跨设备支持

Swift 不只支持 iPad 和 iPhone,还支持包括 Apple Watch、Apple TV 和 Mac 在内的全套设备。

用于全栈开发的潜力

IBM 将 Swift 应用于云服务开发的努力目前很是成功。Swift 在服务器端可与最流行的后端技术对接。与全栈 Javascript 开发同样,在应用程序的前端和后端同时使用 Swift 能带来普遍的代码共享和重用性 — 提升开发速度的同时减小开发投入。

自动内存管理

在博客 Security Innovation (安全性创新)中, Kevin Poniatowski 于 2014 年发表的博文中成功预测:

"我坚信 Swift 自动管理内存的特点将获得 Objective-C 开发者的欢迎。这个特性可以消除一些很是严重的代码缺陷,例如很是烦人且有很大潜在危害的 ‘释放后使用’ 这类编码错误"

旨在防止内存泄漏、优化程序性能,Swift 的全部 API 都采用了自动引用计数。简而言之,它自主管理内存使得程序以最高效地利用资源。不须要开发者手动设置内存,Swift 的惯用工具能够在开发者为适应此变化改写代码时提供支持和指导。

来自 IBM 和 Apple 的企业支持

Apple 与 IBM 协做投入 Swift 的发展和利用。Swift 所以得到了最活跃的开源群体。事实上,Swift 是 Github 上最受关注的编程语言之一。

Swift 有不少优势,尤为是和它的前辈 Objective-C 相比,尽管如此它也受到一些短板的牵制。

使用 Swift 语言开发 iOS 软件 — Swift 语言的缺点

缺少与旧版本语言的兼容性 (部分解决)

因为新版本的发布会引入巨大变更,Swift 一般被视做不稳定的。许多开发者抱怨 Xcode 对更新 Swift 代码版本的帮助并不能修复全部问题,因此将项目迁移至新 Swift 版本很是费时且成本较高。

速度问题

这个语言的早期版本有不少速度问题,不过,如上所述,速度问题随着新版本的推出有了很大改进。

一个新语言

Swift 的开发目前仍属于起步阶段,它须要很长时间才能发展成熟、发现并修复它的问题区域。“原生” 的库和工具在数量上仍然很是有限。并且由于它的新颖程度,使用 Swift 的开发者也数量有限。尽管如此,Swift 的开发者群体正迅速壮大,对 Swift 开发者的需求也在增长。

Swift 语言会标志着 iOS 开发的发展方向吗?

虽然处于发展初期,Swift 已经创造了不少成功案例。实际上,Swift 的每一次更新,都带来了极大改进: 更好的版本兼容性减小了向 Swift版本 过程当中的摩擦,Swift 包管理器的改进、API 优化以及其它新增特点。

使用 Swift 的大公司有领英、Coursera、Pandora、推特、Fitbit 以及 Vimeo 等大牌公司,Facebook 和优步对这个语言也从新萌生了兴趣。所以伴随采用率的提高,Swift 有望最终取代 Objective-C 成为 iOS 开发的首选语言,

做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:638302184,无论你是小白仍是大牛欢迎入驻
,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!但愿帮助开发者少走弯路。

文章来源于网络,若有侵权,请联系小编删除!

相关文章
相关标签/搜索