2014年,苹果在WWDC开发者大会上发布了Swift编程语言,整个技术圈都沸腾了。那一天,很多iOS开发者激动得睡不着觉——他们终于有了一门新的、现代化的、专门为苹果生态设计的编程语言。
Swift的出现,结束了Objective-C在苹果生态一家独大的局面。八年过去了,Swift已经从1.0迭代到了5.x,成为世界上最受欢迎的编程语言之一。今天我们就来聊聊Swift的故事,以及它为什么值得学习。

为什么要有Swift?
在说Swift之前,我们先来聊聊它的”前辈”Objective-C。
Objective-C是一门很老的语言,诞生于1980年代,比很多程序员的年龄都大。它的语法奇特、门槛较高,让很多新手望而却步。
更重要的是,Objective-C的语法跟当时主流的编程语言(C++、Java、C#)差异很大。一个Java程序员想转iOS开发,首先得花几个月时间学习Objective-C,这学习成本是很高的。
苹果显然意识到了这个问题。他们需要一门新的编程语言:既要保持Objective-C的性能和灵活性,又要让新手更容易上手,还要能吸引更多开发者加入苹果生态。
于是,Swift诞生了。
Swift的核心特点
Swift的设计目标很明确:安全、快速、现代化。
安全是Swift最引以为傲的特点。
在Objective-C时代,有一个著名的”悬空指针”问题:程序访问了一块已经被释放的内存,导致崩溃。这个问题很难排查,有时候程序运行几个月才崩溃一次,一崩溃就是灾难性的。
Swift通过”可选类型”(Optional)机制,从根本上杜绝了这个问题。你必须显式地处理可能为空的值,否则编译器会报错。这听起来有点麻烦,但实际上是在保护你。
另一个安全特性是”类型安全”。Swift会在编译时检查变量的类型,发现类型不匹配直接报错,不给你留到运行时才发现的机会。
快速是Swift的另一个核心优势。
Swift经过多年的优化,运行时性能已经跟Objective-C不相上下,在某些场景下甚至更快。对于需要高性能的应用(比如游戏、图像处理),Swift完全能够胜任。
现代化则是Swift最直观的特点。
跟Objective-C那些奇奇怪怪的语法比起来,Swift的语法更接近自然语言,代码读起来跟英语句子差不多。比如,遍历一个数组:
Objective-C写法:
for (int i = 0; i < names.count; i++) { NSLog(@"%@", names[i]); }
Swift写法:
for name in names { print(name) }
哪个更简洁,一目了然。
Swift能做什么?
Swift最初是作为iOS和macOS的开发语言推出的。但现在,Swift的应用范围已经远不止于此。
第一,iOS和macOS开发。
这是Swift的主战场。目前,App Store上已经有大量的App是用Swift开发的。苹果官方也推荐使用Swift来开发iOS和macOS应用。
第二,服务端开发。
Swift可以在服务器端运行。IBM推出了一套Swift服务端框架(Kitura),可以用来开发后端服务。一些大公司(比如LinkedIn)已经在用Swift做后端开发了。
第三,跨平台开发。
SwiftUI(Swift的UI框架)可以跨平台运行。一套代码,可以同时运行在iOS、macOS、watchOS、tvOS上。这对于开发者来说是一个巨大的效率提升。
第四,AI和机器学习。
Swift对TensorFlow有官方支持。Google正在推进Swift在机器学习领域的应用。虽然目前Python在这个领域还是老大,但Swift的潜力不可小觑。
第五,系统编程。
Swift也可以用来写底层系统代码。Swift语言的核心团队成员Chris Lattner,就是Linux内核的贡献者之一。
为什么要学Swift?
这个问题,我被问了无数次。我的回答是:学Swift,是一件”稳赚不赔”的事情。
第一,需求大。
苹果生态是全球最大的移动生态之一。iPhone、iPad、Mac、Apple Watch……这些设备的App都需要开发者来维护和更新。Swift开发者的需求,一直很旺盛。
第二,薪资高。
在国内,iOS开发的薪资普遍高于Android开发。在美国,Swift开发者的平均薪资也是名列前茅的。薪资高,说明市场稀缺,说明学好了能赚钱。
第三,门槛低。
Swift的语法设计非常友好,比很多编程语言都容易上手。如果你是一个完全的编程新手,Swift是一个很好的起点。
第四,前景好。
Swift还在快速发展中。每年WWDC都会推出新的Swift特性和框架。学Swift,你学的是一个”成长中”的技术,而不是一个”成熟但夕阳”的技术。
怎么学Swift?
对于想学Swift的朋友,我的建议是:循序渐进,不要急于求成。
第一步:学基础语法。
先买一本Swift入门书,或者跟着网上的教程,把Swift的基本语法过一遍。重点掌握:变量和常量、数据类型、控制流(if、for、while)、函数、闭包。
第二步:学面向对象。
Swift支持面向对象编程(OOP),这是开发大型应用必备的技能。重点掌握:类(class)和结构体(struct)、继承、协议(protocol)、扩展(extension)。
第三步:学SwiftUI。
SwiftUI是苹果推出的新一代UI框架,语法简洁、声明式、跨平台。学好了SwiftUI,开发iOS应用就是分分钟的事。
第四步:做项目。
光学不练假把式。找一个小项目,比如一个待办事项应用(Todo App),从零开始做一遍。遇到问题、解决问题,这个过程才是真正的学习。
第五步:持续学习。
Swift每年都有大版本更新。保持学习的习惯,跟上技术发展的步伐。这才是一个合格的开发者应该有的态度。
Swift vs Python:选哪个?
这是很多新手纠结的问题。我的看法是:看目的。
如果你的目标是做iOS/macOS开发,那毫无疑问选Swift。
如果你的目标是做AI、机器学习、数据科学,那选Python。
如果你的目标是做Web开发、后端服务,那两者都可以考虑,但Python在Web生态上更成熟。
如果你是完全的编程新手,想选一门语言入门,那我建议选Swift。因为Swift语法简洁、错误提示友好、编译器帮你检查问题,很适合新手。
结语
Swift编程语言,是苹果送给开发者的礼物,也是送给所有想学编程的人的礼物。
它让iOS开发变得更简单,让编程变得更安全,让代码变得更优雅。
无论你是想从事iOS开发,还是想学习一门新的编程语言,Swift都是一个值得考虑的选择。
这个世界需要更多的开发者。而Swift,可能是你成为开发者的最好起点。
本文来自投稿,不代表聚客号立场,如若转载,请注明出处:https://www.jukehao.com/6486.html