1.1 Swift概述
Swift是一种为开发iOS和OS X应用程序而推出的全新编程语言,是建立在C语言和Objective-C语言基础之上的,并且没有C语言的兼容性限制。Swift采用安全模型的编程架构模式,使整个编程过程变得更容易、更灵活、更有趣。另外,Swift完全支持市面中的主流框架:Cocoa和Cocoa Touch,这为开发人员重构软件和提高开发效率带来了很大的帮助。在本节的内容中,将带领大家一起探寻Swift的诞生历程。
1.1.1 Swift的创造者
苹果Swift语言的创造者是苹果开发者工具部门总监Chris Lattner及其团队开发的,Chris Lattner是LLVM项目的主要发起人和作者之一,Clang编译器的作者。LLVM是一种用于优化编译器的基础框架,能将高级语言转换为机器语言。LLVM极大提高了高级语言的效率,Chris Lattner也因此获得了首届SIGPLAN奖。
2005年,Chris Lattner加入LLVM开发团队,正式成为苹果公司的一名员工。在苹果公司的9年间,他由一名架构师一路升职为苹果开发者工具部门总监。目前Chris Lattner主要负责Xcode项目,这也为Swift的开发提供了灵感。
Chris Lattner从2010年7月开始开发Swift语言,当时它在苹果内部属于机密项目,只有很少人知道这一语言的存在。Chris Lattner在个人博客上称,Swift的底层架构大多是他自己开发完成的。2011年,其他工程师开始参与项目开发,Swift也逐渐获得苹果公司内部的重视,直到2013年成为苹果主推的开发工具。
Swift的开发结合了众多工程师的心血,包括语言专家、编译器优化专家等,苹果其他团队也为改进产品提供了很大帮助。同时Swift也借鉴了其他语言的优点,例如Objective-C、Rust、Ruby等。
Swift语言的核心吸引力在于Xcode Playgrounds功能和REPL,它们使开发过程具有更好的交互性,也更容易上手。Playgrounds在很大程度上受到了Bret Victor的理念和其他互动系统的启发。同样,具有实时预览功能的Swift使编程变得简单,学习起来也更加容易,目前已经引起了开发者的极大兴趣。这有助于苹果吸引更多的开发者,甚至将改变计算机科学的教学方式。图1-1是Chris Lattner在WWDC14大会上对Swift进行演示。
图1-1 Chris Lattner在WWDC14大会上对Swift进行演示
1.1.2 Swift的优势
在WWDC2014大会中,苹果展示了如何能让开发人员更快地进行代码编写及显示结果的“Swift Playground”,在左侧输入代码的同时,可以在右侧实时显示结果。苹果公司表示Swift是基于Cocoa和Cocoa Touch而专门设计的。Swift不仅可以用于基本的应用程序编写,比如各种社交网络App,同时还可以使用更先进的“Metal”3D游戏图形优化工作。由于Swift可以与Objective-C兼容使用,因此开发人员可以在开发过程中进行无缝切换。
具体来说,Swift语言的突出优势如下所示。
(1)易学
作为一项苹果独立发布的支持型开发语言,Swift语言的语法内容混合了Objective-C、JS和Python,其语法简单、使用方便、易学,极大降低了开发者入门的门槛。同时Swift语言可以与Objective-C混合使用,对于用惯了高难度Objective C语言的开发者来说,Swift语言更加易学。
(2)功能强大
Swift允许开发者通过更简洁的代码来实现更多的内容。在WWDC2014发布会上,苹果演示了如何只通过一行简单的代码,完成一个完整图片列表加载的过程。另外,Swift还可以让开发人员一边编写程序,一边预览自己的应用程序,从而快速测试应用程序在某些特殊情况下的反应。
(3)提升性能
Swift语言可以提升程序性能,并同时降低开发难度,没有开发者不喜欢这样的编程语言。
(4)简洁、精良、高效
Swift是一种非常简洁的语言。与Python类似,不必编写大量代码即可实现强大的功能,并且也有利于提高应用开发速度。Swift可以更快捷有效地编译出高质量的应用程序。
(5)执行速度快
Swift的执行速度比Objective-C应用更快,这样会在游戏中看见更引人入胜的画面(需要苹果新的Metal界面的帮助),而其他应用也会有更好的响应性。与此同时,消费者不用购买新手机即可体验到这些效果。
(6)全面融合
苹果对全新的Swift语言的代码进行了大量简化,在更快、更安全、更好的交互、更现代的同时,开发者们可以在同一款软件中同时用Objective-C、Swift、C三种语言,这样便实现了三类开发人员的完美融合。
(7)测试工作更加便捷
方便快捷地测试所编写应用将帮助开发者更快地开发出复杂应用。以往对规模较大的应用来说,编译和测试过程极为冗繁,如果Swift能在这一方面带来较大的改进,那么应用开发者将可以更快地发布经过更彻底测试的应用。
当然,Swift还有一些不足之处。其中Swift最大的问题在于,要求使用者学习一门全新的语言。程序员通常喜欢掌握最新、最优秀的语言,但关于如何指导人们编写iPhone应用,目前已形成了完整的产业。在苹果发布Swift之后,所有一切都要被推翻重来。另外,编程语言的易学性,会让更多的开发者加入手机应用软件的开发当中,这或许不是一件好事。