购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

推荐序

让雨燕飞翔

在2014年6月之前,如果我们在Google中输入“Swift”进行查找,搜到的是美国创作型歌手、大美女泰勒·斯威夫特。今天我们再去做同样的检索,搜索结果是一门编程语言,这门编程语言的名字就叫作“Swift”,它的Logo是一只极速飞翔的雨燕。

Swift是Apple公司在2014年WWDC大会上推出的一门新语言,用于在iOS/OS X平台上开发应用程序,之前独霸这个庞大平台的语言一直是Objective-C。可以说Swift是我所见过关注度最高的新语言,刚推出即万众瞩目,媒体和开发者在数天之内对Swift进行了集中的报道和讨论,英文手册迅速被翻译成中文,即使是谷歌2009年推出Go语言时也没有如此浩大的声势。时至今日,已经有大量的独立应用是基于Swift开发构建的。

2007年之前,Objective-C一直是Apple自家后院的小众语言,iOS移动设备的爆发让这门语言的普及率获得了火箭一般的蹿升速度,截止到今天,Objective-C在编程语言排行榜上排名第三,江湖人称三哥。Apple一直在不遗余力地优化Objective-C,包括把GCC的编译链替换成LLVM+GCC,又替换成LLVM+Clang,做语法简化、自动引用计数、增加Blocks和GCD多线程异步处理技术……既然已经全盘掌握了LLVM和Clang技术,为什么不开发一门新语言呢?于是Swift语言诞生了。

Swift的作者是天才的70后程序员Chris Lattner,他同时是LLVM项目的主要发起人与作者之一、Clang编译器的作者。Chris毕业的时候正是Apple为了编译器焦头烂额的时候,因为Apple之前的软件产品都依赖于整条GCC编译链,而开源界的大爷们并不买Apple的账,他们不愿意专门为了Apple公司的需求优化和改进GCC代码,所以Apple经过慎重的考虑后将编译器后端替换为LLVM,并且把Chris招入麾下。Chris进入了Apple之后如鱼得水,不仅大幅度优化和改进LLVM以适应Objective-C的语法变革和性能要求,同时发起了Clang项目,旨在全面替换GCC。这个目标已经实现了,从OS X 10.9和XCode 5开始,LLVM+GCC已经被替换成了LLVM+Clang。

Swift是Chris在LLVM和Clang之后第三个伟大的项目!

Swift是一门博采众长的现代语言,在设计的过程中,Chris参考了Objective-C、Rust、Haskell、Ruby、Python、C#等优秀语言的特点,Swift的语法特性最终形成。Swift是面向Cocoa和Cocoa Touch的编程语言,编译型,类型安全,生产环境的代码都需要LLVM编译成本地代码才能执行,但是Swift又具备很多动态语言的语法特性和交互方式,支持各种高级语言特性,包括闭包、泛型、面向对象、多返回值、可选变量、类型接口、元组、集合等。

很显然,这是一门准备取代Objective-C的编程语言,它将吸引更多的开发者加入苹果的软件生态圈,为iOS和OS X开发出更为丰富的App。如果你是App Store的开发者,推荐尽早学习和掌握这门苹果力推的新语言。对于大部分新事物来说,越早介入,收获越大。

Swift入门并不困难,Apple公司甚至为这门语言提供了所写即所得的Playground功能,不仅实现了很多脚本语言支持的交互式编程,而且提供控制台输出、实时图形图像、时间线(timeline)变量跟踪等功能,开发者除了可以看到代码的实时运行结果,还能根据时间线阅读某个变量在代码片段中值的变化。这真是太棒了!另外,阅读官方提供的《fte SwiftProgramming Language》也是快速入门的途径,Cocoa开发者社区甚至在第一时间提供了高质量的中译本。

问题的关键是入门了之后怎么办?当你读完教程学习了语法,自觉成竹在胸拔剑四顾的时候,突然发现Swift在实际的项目应用中会出现各种各样的问题,就像你手持一柄玄铁重剑,却无法洞悉剑诀的奥秘。如何让“雨燕”迅疾地飞翔?这就是《Swifter(第2版):100个Swift2开发必备Tip》这本书要解决的问题。

本书作者王巍是我非常尊敬的一位iOS开发者,他的网络ID是“onevcat”,大家都叫他喵神。王巍毕业于清华大学,在校期间就对iOS开发一往情深,曾经开发出《小熊推金币》《Pomo Do》等一系列优秀的iOS游戏和应用。工作和开发之余,王巍也在参与iOS开发社区的建设,比如发起和组织翻译项目“objc中国”,开源Xcode插件VVDocumenter项目等,这本《Swifter(第2版):100个Swift2开发必备Tip》同样是他对社区的贡献之一。

王巍是一个在技术上对自己有要求的程序员,在涉及的每个领域,他都希望能够做到庖丁解牛,游刃有余。既能洞悉全局,又可直达细节。王巍2014年赴美参加了Apple的WWDC大会。可以说,从Swift诞生的那一分钟起,王巍就开始学习和研究这门语言。他在自己的博文《行走于Swift的世界中》阐述了大量Swift的语法细节和底层实现机制,并对这篇文章进行了持续的更新,这篇文章在Swift社区获得了巨大的反响。之后,王巍持续学习Swift语言,并进行了编程实践和项目实战,他把自己的学习心得和编程技巧进行了梳理和完善,最终形成了这本《Swifter(第2版):100个Swift2开发必备Tip》。书中共有100个Swift编程技巧,几乎涵盖了Swift语言的所有细节,每篇独立成文,可拆可合,读者可以随时翻阅,也可以遇到实际问题后再来检索。

这本书最早的版本是电子书,我在它出版的第一时间就买了来读,之后随用随读,这本书让我对Swift语言有了更为深入的了解,也解决了我的团队在开发过程中的很多实际问题。所以,当获知王巍的这本书要出纸版的时候,我觉得我有责任让更多的人知道这本书。在目前这样一个知识版权认知匮乏的年代,优秀的原创作者总是值得尊敬,他们的图书作品也值得我们珍惜,我希望把这本书推荐给每一个iOS开发者,它值得我这么做。

目前王巍旅居日本,就职于即时通信软件公司Line。他依然行走在修行的路上,孜孜以求创意之源。祝愿在未来的日子里,王巍能为这个世界呈现更好的软件产品和技术图书。落花无言,人淡如菊,书之岁华,其曰可读。这大概就是王巍目前的写照。

作为开发者,我们要做的就是找到这个领域的灯塔,阅读、学习,然后Write the code,Change the world,并期待下一个收获的季节!

祝大家学得开心!

池建强
《MacTalk·人生元编程》作者
微信平台MacTalk出品人
2015年,春 e33oV9KF9wLujC22nHUmCmAOzTzu3mjxh6W4t2KmzGaF7SQeg50Zepxd2fpdUp3x

点击中间区域
呼出菜单
上一章
目录
下一章
×