《Swift与Cocoa框架开发》做者Paris Buttfield-Addison:你的编程生涯能够从Swift开始!

非商业转载请注明做译者、出处,并保留本文的原始连接:http://www.ituring.com.cn/article/205611程序员

Paris Buttfield-AddisonSecret Lab的联合创始人、移动应用工程师,以及游戏设计师。Secret Lab是一家游戏开发公司,他们致力于使技术变得简单又有趣。Paris拥有计算学博士学位,同时也是一位历史学士。他以前做为产品经理为硅谷的Meebo公司工做,这家公司在2012年被Google收购。他撰写了一系列关于iOS和游戏开发的技术书,其中包括《学习Objective-C与Cocoa框架》,《iOS游戏开发攻略》,《Swift与Cocoa框架开发》,以及《Unity移动游戏开发》。编程

图片描述

问:做为一位历史专业的学士,你是怎么变成一位iOS高手以及游戏开发专家的?安全

除了学习中世纪历史外,我还有其余几个计算专业的学位(荣誉学位以及博士学位)。我发现学习历史的背景让我对科技的理解和不少人都不同,我认为历史颇有趣。服务器

问:在Swift 2.0以后,《Swift与Cocoa框架开发》这本书是否过期?书中有没有哪些地方须要修改?微信

Swift 2.0有一些语法变化,可是这门语言的哲学却没有任何改变。《Swift与Cocoa框架开发》仍然颇有用,若是出现任何过期的地方——咱们会发布一个针对这本书的变动日志,当你用Swift 2.0进行编程时,这份日志会告诉你有哪些地方和印在书中的代码不一样,咱们会在不久以后把这份变动日志发布在咱们的博客上(http://secretlab.com.au/blog/| e9b49d8ef7816e77c1d19efe698550cb6 |)。同时咱们也在筹备另一本书,叫作《学习Swift》,这本书是最新的,而且覆盖了Swift 2.0的内容。框架

问:在你看来,开源会对Swift的生态环境以及它和Android的关系形成什么影响?函数

我认为变化不会太大。上一个苹果开发者语言Objective-C在iOS出现以前是很是晦涩的,而Swift吸收了不少经验。我认为,若是说开源Swift会带来任何变化的话,那就是人们可能会开始用Swift来写服务器软件,这样Swift就会造成一个更大、更好的社区。工具

我不认为这件事对于iOS和Android的关系会形成影响;如今来看,Java是一种很老的语言,甚至能够说是一种遗留语言,而Swift是现代的。若是Google把Android环境更新为现代化的语言(好比Swift)会是一件很酷的事——事实上,Google已经有了一种现代语言(Go),只是如今还没把它用在Android上!性能

问:Swift从其余语言那里吸收了哪些成分?你最喜欢Swift的哪些特性?学习

Swift从Rust和Python这样的语言中借鉴了不少东西。我最喜欢的Swift特性是它在内在安全性方面作出的努力;要想用Swift犯错并不容易,由于它强制执行了不少“优秀风格”。

Swift的设计初衷就是成为一门安全的语言。C语言中的许多缺陷(好比意外使用null指针)都很难在Swift中遇到。Swift很是重视强类型化,除了一些极为特殊的状况以外,它是不容许对象为null的。

问:为何不少公司还没在生产环境中应用Swift?

由于Swift是崭新的,并且正在经历改变。Swift 2.0已经发布,我怀疑(但没法肯定)苹果不会再改动不少了,这就意味着Swift会被更多移动开发者用在他们的产品应用中。就像比特代码同样,App Store本身会为下载或购买应用的用户编译和链接应用,因此能够说Swift对于将来应用来讲是相当重要的。

问:Swift在将来会完全取代Objective-C吗?你建议初学者先学Objective-C仍是先学Swift?

对于咱们来讲Swift已经彻底取代Objective-C了!对于真正的开发者来讲,这种替代随时均可能发生。这是重要的一步。对于初学者来讲,如今已经没有必要再去学Objective-C了!

Objective-C曾经是一门功能很是强大的语言。它与C++的主要区别是它是一种动态语言。在任何一门面向对象的语言中,都须要将函数绑定到它们处理的具体数据,而这一绑定要么在编译代码时进行,要么在运行时进行。C++使用静态绑定,这会提升运行时性能,但下降了灵活性。Objective-C采用动态绑定,它要稍慢一些,但大大加强了语言的灵活性。

然而,Objective-C也有本身的问题。由于它是以C语言为基础的,因此它从父语言那里继承了大量古怪的特性,好比预处理器和指针运算。这些功能尽管很是强大,但会下降代码的可读性和安全性。苹果公司在保持Objective-C的现代化方面作得很是出色,但即便是这门语言的死忠粉也认为这门语言有些过期了。

因而Swift应运而生了。Swift是一门新的语言,旨在让iOS和Mac应用程序的开发变得更轻松、更快速、更安全。它的设计目标是更容易掌握,且在防范程序员错误方面比Objective-C作得更好;事实上,苹果公司将它描述为“没有C的Objective-C”。由于Swift是用LLVM(Objective-C使用的工具集)生成和编译的,并且使用了Objective-C运行时,因此咱们能够编写一个同时使用C、Objective-C和Swift的App。

问:在学习Swift以前,是否有必要学习C语言?

不须要!你能够把Swift做为开始,这是一种伟大、有趣、简单,并且安全的语言。当你想要理解程序的内在工做方式时,你能够稍后再学习C语言。

问:一位iOS开发高手须要掌握什么样的知识框架?

我也会作不少设计——构建好的移动应用(或者现今任何形式的应用)须要好的设计感!学习设计吧,由于设计可以更好地影响他人。


更多精彩,加入图灵访谈微信!

图片描述

相关文章
相关标签/搜索